luv

Workshop wiki

luft-portraits.lisp

captures/luft-portraits.lisp

system luv/showcase · 56 definitions · on GitHub

in-package#:luv.showcase

Reproducible luft plates and short upright cuts. Still images own the exact scene and camera being studied; films keep motion and cleanup in luft's existing film owners. #Z5NDTA #SY26PO #2TQEBB

luv:define-captureluft-miter-study
:figurez5ndta:kind:image:extension"png":layout:landscape:description"The orthographic miter family: stepped mountain, mixed stars, and wall terminations."
pathname
let
unwind-protect
progn

The canvas loop owns another thread, so configure its global renderer state before it starts rather than dynamically binding these specials around start-viewer.

setfviewer
luft.render:start-viewer:solid:bevel-widthluft:+mesh-bevel-width+:camera
luft.render:make-fly-camera:position:yaw2.0899425:pitch-0.33
:title"LUFT miter study":width1280:height720
defuncapture-luft-material-contact
pathnamepositionisometric-heighttitle&key
yaw2.2455373
pitch-0.5165006
player-pbevel-profilesolidsurface-mesh
wireframe0.0
inspection-ink-p
let
unwind-protect
progn
setfviewer
luft.render:start-viewer:solid
let

Material plates isolate the solid renderer. A lighting plate deliberately keeps the separate SDF player pass.

unlessplayer-p
setf
slot-valuescene'luft.render::player-p
nil
scene
:bevel-widthbevel-width:bevel-profilebevel-profile:surface-meshsurface-mesh:camera
luft.render:make-fly-camera:positionposition:yawyaw:pitchpitch
:titletitle:width1100:height800
luv:define-captureluft-material-contact-study
:figurem4t3rl:kind:image:extension"png":layout:landscape:description"The sanctuary stairs and foundations where cut stone bears on grass and soil."
pathname
capture-luft-material-contactpathname20.0"LUFT material contact study"
luv:define-captureluft-stylized-lighting-study
:figurel1ghts:kind:image:extension"png":layout:landscape:description"The sanctuary, traveler, and terrain under LUFT's shared stylized sun."
pathname
capture-luft-material-contactpathname20.0"LUFT stylized lighting study":player-pt
luv:define-captureluft-material-contact-closeup
:figureer7hst:kind:image:extension"png":layout:landscape:description"The earth-set foot of the sanctuary's west turret at fillet scale."
pathname
capture-luft-material-contactpathname6.0"LUFT material contact closeup":yaw0.90:pitch-0.5165006
luv:define-captureluft-material-contact-stairs
:figures8tair:kind:image:extension"png":layout:landscape:description"A tight oblique view across the sanctuary stair and terrace contacts."
pathname
capture-luft-material-contactpathname7.0"LUFT stair material contacts"
luv:define-captureluft-material-contact-west-foot
:figurew3stft:kind:image:extension"png":layout:landscape:description"The opposite sanctuary foot, viewed across turf toward the west turret."
pathname
capture-luft-material-contactpathname8.0"LUFT west foundation contacts":yaw0.90:pitch-0.5165006
luv:define-captureluft-material-contact-bridge-foot
:figurebr1dge:kind:image:extension"png":layout:landscape:description"The lower bridge piers where stone meets exposed banks and undersoil."
pathname
capture-luft-material-contactpathname7.0"LUFT bridge foundation contacts"
luv:define-captureluft-material-ridge-beacon
:figureb3acon:kind:image:extension"png":layout:landscape:description"The ridge beacon's locally framed limestone courses and earth-set foot."
pathname
capture-luft-material-contactpathname10.0"LUFT ridge beacon material frame":yaw2.2455373:pitch-0.5165006
luv:define-captureluft-material-bevel-policy-high-country
:figurew1d4th:kind:image:extension"png":layout:landscape:description"A material bevel experiment: broad terrain at width four and crisp sanctuary stone at width one."
pathname
capture-luft-material-contactpathname14.0"LUFT material bevel policy - high country":yaw2.3561945:pitch-0.545:bevel-profile
luv:define-captureluft-material-bevel-policy-mountain
:figurem1xwth:kind:image:extension"png":layout:landscape:description"The authored mountain under terrain-four, architecture-one, and mixed-contact-two bevel cohorts."
pathname
capture-luft-material-contactpathname32.0"LUFT material bevel policy - mountain":bevel-profile
luv:define-captureluft-material-bevel-policy-contact
:figurej01nts:kind:image:extension"png":layout:landscape:description"The sanctuary's authored low wall protecting width-one stairs from the terrain-four field."
pathname
capture-luft-material-contactpathname7.0"LUFT material bevel policy - contact":bevel-profile
luv:define-captureluft-material-bevel-policy-contact-construction
:figurewsek3c:kind:image:extension"png":layout:landscape:description"The unprotected material-width contact with triangle construction ink enabled."
pathname
capture-luft-material-contactpathname7.0"LUFT material bevel policy - contact construction":solid:bevel-profile:wireframe1.0
macrolet
define-uniform-contact-capture
namewidth
`
luv:define-capture,name
:figurewsek3c:kind:image:extension"png":layout:landscape:description,
formatnil"The production material contact under uniform bevel width ~D."width
pathname
capture-luft-material-contactpathname7.0,
formatnil"LUFT uniform width ~D - contact"width
:solid:bevel-width,width
define-uniform-contact-captureluft-bevel-width-one-contact1
define-uniform-contact-captureluft-bevel-width-two-contact2
define-uniform-contact-captureluft-bevel-width-four-contact4
defuncapture-luft-sanctuary-tower
pathnamebevel-widthtitle

Frame the sanctuary's ridge-beacon tower at one luft bevel width.

capture-luft-material-contactpathname10.0title:yaw2.2455373:pitch-0.5165006:solid:bevel-widthbevel-width
luv:define-captureluft-sanctuary-tower-bevel-one
:figuret0w1r1:kind:image:extension"png":layout:landscape:description"The sanctuary ridge-beacon tower under a uniform one-eighth-cell bevel."
pathname
capture-luft-sanctuary-towerpathname1"LUFT sanctuary tower - bevel 1/8"
luv:define-captureluft-sanctuary-tower-bevel-two
:figuret0w2r2:kind:image:extension"png":layout:landscape:description"The same sanctuary ridge-beacon tower under a uniform quarter-cell bevel."
pathname
capture-luft-sanctuary-towerpathname2"LUFT sanctuary tower - bevel 1/4"
luv:define-captureluft-sanctuary-tower-bevel-four
:figuret0w4r4:kind:image:extension"png":layout:landscape:description"The same sanctuary ridge-beacon tower under a uniform half-cell medial bevel."
pathname
capture-luft-sanctuary-towerpathname4"LUFT sanctuary tower - bevel 1/2"
defuncapture-luft-material-bevel-stair-boundary
pathnameboundarywireframetitle
capture-luft-material-contactpathname9.0title:yaw1.5707964:pitch-0.588:solid:bevel-profile:wireframewireframe
luv:define-captureluft-material-bevel-stair-open
:figurewsek3c:kind:image:extension"png":layout:landscape:description"The unprotected production stair, centered as the baseline for authored support geometry."
pathname
capture-luft-material-bevel-stair-boundarypathname:open0.0"LUFT material bevel - open stair"
luv:define-captureluft-material-bevel-stair-open-construction
:figurewsek3c:kind:image:extension"png":layout:landscape:description"The unprotected stair baseline with triangle construction ink enabled."
pathname
capture-luft-material-bevel-stair-boundarypathname:open1.0"LUFT material bevel - open stair construction"
luv:define-captureluft-material-bevel-stair-border
:figurewsek3c:kind:image:extension"png":layout:landscape:description"The production stair with an authored one-cell stone border level with every tread."
pathname
capture-luft-material-bevel-stair-boundarypathname:border0.0"LUFT material bevel - stair border"
luv:define-captureluft-material-bevel-stair-border-construction
:figurewsek3c:kind:image:extension"png":layout:landscape:description"The one-cell stair border with triangle construction ink enabled."
pathname
capture-luft-material-bevel-stair-boundarypathname:border1.0"LUFT material bevel - stair border construction"
luv:define-captureluft-material-bevel-stair-low-wall
:figurewsek3c:kind:image:extension"png":layout:landscape:description"The production stair protected by a one-course ascending masonry wall."
pathname
capture-luft-material-bevel-stair-boundarypathname:low-wall0.0"LUFT material bevel - stair low wall"
luv:define-captureluft-material-bevel-stair-low-wall-construction
:figurewsek3c:kind:image:extension"png":layout:landscape:description"The authored low-wall stair with triangle construction ink enabled."
pathname
capture-luft-material-bevel-stair-boundarypathname:low-wall1.0"LUFT material bevel - stair low wall construction"
luv:define-captureluft-bevel-limit-width-one-construction
:figurewsek3c:kind:image:extension"png":layout:landscape:description"One cell below the medial limit at width one, retaining faces, edge bands, and corner patches."
pathname
capture-luft-bevel-limit-cellpathname1"LUFT one-cell bevel width one"
luv:define-captureluft-bevel-limit-width-two-construction
:figurewsek3c:kind:image:extension"png":layout:landscape:description"The same cell at the ordinary width two, with narrower faces and broader bands."
pathname
capture-luft-bevel-limit-cellpathname2"LUFT one-cell bevel width two"
luv:define-captureluft-bevel-limit-width-four-construction
:figurewsek3c:kind:image:extension"png":layout:landscape:description"The same cell at the medial width four, where faces and edge bands have contracted away."
pathname
capture-luft-bevel-limit-cellpathname4"LUFT one-cell medial bevel width four"
defuncapture-luft-material-bevel-transition
pathnamewireframetitle&key
contract-t-junctions-pt
isometric-height2.5
split-neighborhood-p
let*
multiple-value-bind
meshwidth-censusdiagnostics
luft.render:make-material-bevel-meshsceneprofile:contract-t-junctions-pcontract-t-junctions-p
declare
ignorewidth-census
let*
source-mesh
ifsplit-neighborhood-p
luft:surface-mesh-split-neighborhoodmesh
first
getfdiagnostics:candidate-splits
mesh
display-mesh
if
pluspwireframe
source-mesh
capture-luft-material-contactpathnamepositionisometric-heighttitle:yaw2.0899425:pitch-0.36:solidscene:surface-meshdisplay-mesh:wireframewireframe
luv:define-captureluft-material-bevel-transition-uncontracted-construction
:figurewsek3c:kind:image:extension"png":layout:landscape:description"The isolated five-cell mixed-width surface with collapsed triangles omitted but its medial T-junction deliberately unrepaired."
pathname
capture-luft-material-bevel-transitionpathname1.0"LUFT uncontracted medial T-junction":contract-t-junctions-pnil
luv:define-captureluft-material-bevel-transition-clean
:figurewsek3c:kind:image:extension"png":layout:landscape:description"The isolated five-cell 1/2/4 transition after exact T-junction contraction."
pathname
capture-luft-material-bevel-transitionpathname0.0"LUFT isolated material bevel transition"
luv:define-captureluft-material-bevel-transition-construction
:figurewsek3c:kind:image:extension"png":layout:landscape:description"The isolated five-cell 1/2/4 transition with triangle construction ink."
pathname
capture-luft-material-bevel-transitionpathname1.0"LUFT isolated material bevel transition construction"
luv:define-captureluft-material-bevel-t-junction-uncontracted-closeup
:figurewsek3c:kind:image:extension"png":layout:landscape:description"A topology-ink closeup of the long edge meeting two short edges after a medial triangle collapses."
pathname
capture-luft-material-bevel-transitionpathname1.0"LUFT uncontracted medial T-junction closeup":contract-t-junctions-pnil:position:isometric-height1.35:split-neighborhood-pt
luv:define-captureluft-material-bevel-t-junction-contracted-closeup
:figurewsek3c:kind:image:extension"png":layout:landscape:description"The same topology-ink closeup after the long neighbouring edge is split at the collapsed triangle's middle vertex."
pathname
capture-luft-material-bevel-transitionpathname1.0"LUFT contracted medial T-junction closeup":position:isometric-height1.35:split-neighborhood-pt
defuncapture-luft-manifold-spikes
pathnamewireframetitle
let*
capture-luft-material-contactpathname6.5title:yaw0.7853982:pitch-0.45:solidscene:surface-meshdisplay-mesh:bevel-width2:wireframewireframe
luv:define-captureluft-manifold-spikes-clean
:figurewsek3c:kind:image:extension"png":layout:landscape:description"Edge-touching, corner-touching, and parity occupancy stars resolved into isolated manifold sheets."
pathname
capture-luft-manifold-spikespathname0.0"LUFT singular occupancy stars"
luv:define-captureluft-manifold-spikes-construction
:figurewsek3c:kind:image:extension"png":layout:landscape:description"The three singular occupancy stars with their manifold-sheet triangulation exposed."
pathname
capture-luft-manifold-spikespathname1.0"LUFT singular occupancy stars construction"
defuncapture-luft-miter-closeup
pathnamewireframetitle

Capture the #xCD wall termination at the normal chamfer width. #L7N4MO

let
unwind-protect
progn

At this yaw/pitch the camera lies backward from the motivating vertex (12,8,3), placing that exact join at frame centre.

setfviewer
luft.render:start-viewer:solid:bevel-widthluft:+mesh-bevel-width+:camera
luft.render:make-fly-camera:position:yaw2.0899425:pitch-0.33
:titletitle:width1200:height1200
luv:define-captureluft-miter-closeup-construction
:figure78wa2w:kind:image:extension"png":layout:landscape:description"The sharp #xCD miter at one-cell scale with construction edges visible."
pathname
capture-luft-miter-closeuppathname1.0"LUFT sharp miter construction"
luv:define-captureluft-miter-closeup-clean
:figure6x0wrv:kind:image:extension"png":layout:landscape:description"The same sharp #xCD miter at one-cell scale without construction ink."
pathname
capture-luft-miter-closeuppathname0.0"LUFT sharp miter clean"
luv:define-captureluft-holm-portrait
:figuresy26po:kind:video:extension"mp4":layout:portrait:description"An upright aerial and close pass over the atelier's island architecture."
pathname
uiop:symbol-call:luft.render:film-atelier-flightpathname:pieces'
:holm
:seconds-per-shot5:frame-rate30:width720:height1280:field-scale1.25:style:stock:light:evening:aperture0.85
luv:define-captureluft-vale-portrait
:figuresy26po:kind:video:extension"mp4":layout:portrait:description"An upright flight through the vale with its tree crowns modeled in clay."
pathname
uiop:symbol-call:luft.render:film-atelier-flightpathname:pieces'
:vale
:seconds-per-shot6:frame-rate30:width720:height1280:field-scale1.25:style:stock:light:evening:aperture0.85:clay-stocks'
:conifer:leaf
luv:define-captureluft-clay-holm-breath
:figure2tqebb:kind:video:extension"mp4":layout:portrait:description"The holm's masonry breathing between quilted cells, pearls, and clay melt."
pathname
uiop:symbol-call:luft.render:film-clay-breathpathname:pieces'
:holm
:seconds-per-shot5:frame-rate30:width720:height1280:field-scale1.25:light:golden:aperture0.85

The traveler. Both plates hold the animation clock still: a character recipe that cannot ask for the same pose twice is not a recipe. #TR4VLR

defuncapture-luft-traveler
pathname&key
character-time0.5
yaw2.2455373
pitch-0.5165006
isometric-height5.0
aim-height15.2
title"LUFT traveler study"
let
unwind-protect
let*
forward-x
*
cosyaw
cospitch
forward-y
*
sinyaw
cospitch
forward-z
sinpitch

The traveler's own world position, from the same three numbers the frame uniform packs for the shader.

target-y
setfviewer
luft.render:start-viewer:solid
funcallscene-maker
:bevel-widthluft:+mesh-bevel-width+:camera
luft.render:make-fly-camera:position
luv.arithmetic.lisp.vec3:make-vec3
-target-x
*forward-xdistance
-target-y
*forward-ydistance
-aim-height
*forward-zdistance
:yawyaw:pitchpitch
:titletitle:widthwidth:heightheight
luv:define-captureluft-traveler-portrait
:figuretr4vlr:kind:image:extension"png":layout:landscape:description"The sanctuary's hermit on a bare dais: linen robe, copper braid, staff."
pathname
capture-luft-travelerpathname:character-time0.5:yaw-1.5707963:pitch-0.16:isometric-height4.4:aim-height15.0
luv:define-captureluft-traveler-on-the-bridge
:figuretr4vbr:kind:image:extension"png":layout:landscape:description"The traveler at the sanctuary's own camera angle, shadow on the deck."
pathname
capture-luft-travelerpathname:character-time0.5:isometric-height7.0:scene-maker#'luft.render:make-mountain-sanctuary-scene:title"LUFT traveler on the bridge"
defunaim-luft-camera
cameraxyz

Aim camera at the world-space point X/Y/Z without changing its lens.

let*
position
luft.render:camera-positioncamera
dx
-x
luv.arithmetic.lisp.vec3:vec3-xposition
dy
-y
luv.arithmetic.lisp.vec3:vec3-yposition
dz
-z
luv.arithmetic.lisp.vec3:vec3-zposition
flat
sqrt
+
*dxdx
*dydy
setf
atandydx
atandzflat
camera
defunfilm-luft-wizard-bridge-walk
pathname&key
seconds8
frame-rate24

Film the real walking wizard crossing the authored sanctuary bridge.

let
unwind-protect
let*
start-y
+origin-y10.5
camera
luft.render:make-fly-camera:position
luv.arithmetic.lisp.vec3:make-vec3
+origin-x52.0
-start-y12.0
23.5
:field-of-view
*46.0
/pi180.0

Movement remains camera-relative in play. Keep its authored +Y bridge direction independent of the filming camera.

walking-camera
setfviewer
luft.render:start-viewer:solid:bevel-widthluft:+mesh-bevel-width+:bevel-profile:cameracamera:title"LUFT wizard bridge walk":width1280:height720
setf
luft.render:viewer-playerviewer
luft.render:make-walking-player:position:heading-x0.0:heading-y1.0:speed3.0
luft.render:film-viewerviewerpathname:secondsseconds:frame-rateframe-rate:before-frame
lambda
declare
ignoreframe
let*
player
luft.render:viewer-playerviewer
dt
/1.0frame-rate
player-position
luft.render:walking-player-positionplayer
player-y
luv.arithmetic.lisp.vec3:vec3-yplayer-position
camera-position
luft.render:camera-positioncamera
luft.render::advance-walking-playerplayer
luft.render::viewer-sourceviewer
walking-camera1.00.0dt

A parallel dolly keeps the wizard readable while successive arches, piers, and finally the gate move through the frame.

setf
luv.arithmetic.lisp.vec3:vec3-ycamera-position
aim-luft-cameracamera
+origin-x29.5
15.8
luv:define-captureluft-wizard-bridge-walk
:figurewzbrdg:kind:video:extension"mp4":layout:landscape:description"The sanctuary wizard walks its bridge under a restrained perspective lens."
pathname

The streamed highlands. These two cameras retain the regional read and the citadel-scale read that caught the old sine terrain's repetition. #H1GHLD

defunwait-for-luft-landscape-residency
loopforattemptbelow240forscene=
luft.render::viewer-sourceviewer
forloaded=
hash-table-count
luft.render::streaming-scene-loadedscene
foroutstanding=
hash-table-count
luft.render::streaming-scene-outstandingscene
when
and
plusploaded
zeropoutstanding
null
luft.render::streaming-scene-cohortscene
do
formatt"capture LUFT highlands: ready with ~D near and ~D planar chunks~%"
loopforwidthbeingthehash-valuesof
luft.render::streaming-scene-loadedscene
count
loopforwidthbeingthehash-valuesof
luft.render::streaming-scene-loadedscene
count
force-output
when
zerop
modattempt20
do
formatt"capture LUFT highlands: ~D chunks loaded, ~D pending~%"loadedoutstanding
force-output
do
sleep0.05
finally
error"LUFT highland residency did not become ready."
defuncapture-luft-highland-landscape
pathnamepositionyawpitchtitle
let
unwind-protect
progn
formatt"capture LUFT highlands: building deterministic source~%"
force-output
setfviewer
luft.render:start-viewer:solid:bevel-widthluft:+mesh-bevel-width+:camera
luft.render:make-fly-camera:positionposition:yawyaw:pitchpitch
:titletitle:width1280:height800
luv:define-captureluft-grand-highlands
:figureh1ghld:kind:image:extension"png":layout:landscape:description"The streamed highland region: rocky massifs, green valleys, shelves, and distant ruins."
pathname
capture-luft-highland-landscapepathname2.20-0.27"LUFT grand highlands"
luv:define-captureluft-highland-citadel
:figurer8ncit:kind:image:extension"png":layout:landscape:description"The open-court highland citadel where dressed stone meets terraced green country."
pathname
capture-luft-highland-landscapepathname2.18-0.22"LUFT highland citadel"
luv:define-captureluft-highland-lod-distance
:figurel0ddst:kind:image:extension"png":layout:landscape:description"The widened highland horizon with full-detail near chunks and coplanar-merged far chunks."
pathname
capture-luft-highland-landscapepathname2.20-0.20"LUFT highland LoD distance"
defunfilm-luft-highland-flight
pathname&key
seconds8
frame-rate24

Film a slow highland traverse that crosses streaming chunk boundaries.

let
unwind-protect
progn
formatt"LUFT film: building deterministic highlands~%"
force-output
let
camera
luft.render:make-fly-camera:position:yaw2.20:pitch-0.20
setfviewer
luft.render:start-viewer:solid:bevel-widthluft:+mesh-bevel-width+:cameracamera:title"LUFT highland LoD flight":width1280:height720
let
frame-count
max1
round
*secondsframe-rate
luft.render:film-viewerviewerpathname:secondsseconds:frame-rateframe-rate:before-frame
lambda
let*
u
/frame
float
max1
1-frame-count
ease
-
*3.0uu
*2.0uuu
position
luft.render:camera-positioncamera
setf
luv.arithmetic.lisp.vec3:vec3-xposition
+122.0
*116.0ease
luv.arithmetic.lisp.vec3:vec3-yposition
+91.0
*78.0ease
luv.arithmetic.lisp.vec3:vec3-zposition
+78.0
*10.0
sin
*piu
+2.20
*-0.24ease
+-0.20
*-0.04
sin
*piu
luv:define-captureluft-highland-lod-flight
:figurel0ddst:kind:video:extension"mp4":layout:landscape:description"A slow flight across the widened highlands and their three streaming LoD rings."
pathname