luft/render/render.lisp
One authored solid and its vocabulary-closed material-placement field.
The solid remains luft's topological truth. The sparse authored field stores
only dense vocabulary offsets; semantic material objects remain at the scene
boundary rather than being allocated per cell.
Author an ascending masonry stair and its optional support boundary.
boundary is a deliberately small modeling vocabulary. :OPEN emits only the
treads, :BORDER adds a one-cell stone strip level with each tread, and
:LOW-WALL raises that strip one course above it. The extra cells are ordinary
authored solid and material input; the bevel mesher receives no special-case
stair topology. #WSEK3C
Three isolated singular-star fixtures for the manifold-sheet spike.
The plots exercise an edge-touching pair, a corner-touching pair, and the four-sheet parity star. Nothing else in the scene can hide their junctions. #WSEK3C
One isolated stone cell for comparing sub-medial and medial bevels.
The authored local-coordinate height of the sanctuary's mountain world.
Guard the elevated authored rim with a limestone parapet.
The continuous two-course body exceeds the player's one-cell step. Every other column rises into a third course, making the finite scenery legible as an intentional battlement rather than the accidental edge of a voxel field.
The side contours follow the terrain's authored west/east banks.
Close the elevated northern rim between those side contours.
A broad Lonely-Mountains world carrying a bridge and walled sanctuary.
This is the old Holm's architectural sentence with its material menagerie removed: rolling approaches, a channel and rising high rock; a diagonal processional way; a two-arched stone bridge; a gate, curtain wall, paired turrets, an arcaded hall and a remote ridge beacon.
Keep the packed world bounded away from its toroidal seam, while the visible camera sees terrain continuing beyond every frame edge.
A diagonal, gently climbing processional way makes the bridge belong to the low country instead of beginning at the edge of the model.
The old bridge rail overlaps the first six stair courses. Preserve it for the open historical scene, but let authored stair boundaries own that stretch so the comparison changes one modeling decision at a time.
Bed the sanctuary into the uneven ridge before raising its walls. The two-course podium is shallow enough to disappear into the higher turf, but where the mountain falls away it remains a continuous load path instead of leaving the fixed-height curtain visibly suspended in air. Its wider tower shoes also give the round keeps a deliberate transition into the rectilinear retaining work.
A hollow beacon on the eastern ridge gives the enlarged world a distant inhabited landmark and a second architectural scale.
An old eight-pillar sun court occupies the open lowland beside the processional way. Its diagonal stones echo the landscape's oblique ridges without competing with the sanctuary's larger silhouette.
A bare limestone dais under the traveler, clear from every direction.
The sanctuary is the scene he belongs in, but it is also a scene in which half the useful camera angles look through a parapet. This fixture keeps his exact world position and his exact deck height and removes everything else, so a turnaround can be shot around him without moving him.
Build the five-cell medial T-junction regression. #WSEK3C
Two ascending architectural columns meet the corner of a two-cell terrain column. Widths one, two, and four occur in one tiny surface; the width-four medial collapse leaves exactly one long-edge/short-edge T-junction for the site-local contraction pass to resolve.
Build the wall-side stepped mountain used to judge mixed miters. #Z5NDTA
The two L-shaped terraces retain five-, six-, and seven-cell vertex stars in one architectural context. Their back edges meet a continuous wall so the same view also retains the truncated wall miter preserved by #DJK8HW.
Broad plinth and continuous back wall.
One isolated terrain cell makes the ordinary boulder-on-ground contact inspectable beside the architectural mixed-miter cases.
The lower L supplies the outie, straight six-cell run, innie, and the first wall termination. The upper L repeats them without isolation.
Return the occupied cell incident to boundary face and which side it is on.
Whether architectural cell is immediately borne by non-architectural earth.
Derive face's semantic reading without allocating a per-face object.
Capture scene's dense material tables for repeated face classification.
The current packed assembly offset for face in scene.
Resolve one whole chamfer from its incident face stocks.
The paper palette's terrain top is grass, terrain side is soil, and terrain underside is dark soil. A unanimous closure continues that face material; a mixed terrain chamfer exposes soil. Stone--terrain chamfers retain the deepest incident substrate, so the shader can weather a turf line differently from an exposed or buried foundation without adding per-site material objects.
Classify source into the face, edge, and vertex template-instance ABI.
Build one watertight mesh with a semantic material width at each site.
The ordinary width-one mesher supplies one exact topology witness. profile is
compiled after that build into a dense stock-to-material-mask lane. Each
canonical lattice vertex ORs the masks of all incident stocks: terrain-only,
architecture-only, and mixed stars select the profile's terrain, architecture,
and contact widths. The unchanged witness triangles form the transitions.
The second value is a five-entry vector counting sites at widths zero through four; it is diagnostic evidence and does not become retained mesh state.
contract-t-junctions-p should remain true in production. NIL returns the
deliberately open pre-contraction diagnostic mesh used to exhibit the exact
medial T-junction repaired by the default path.
The witness build also interns every authored material assembly reached by the chamfer stock function. Freeze the dense policy only afterward.
Return the single site-local material bevel mesh in renderer slot zero.
Each entry is one isolated complex, named by the star configuration it is there to exhibit. Cells are offsets from the entry's plot origin.
Return the lattice origin of gallery entry index, laid out on a grid.
Build one chain holding every gallery complex on its own plot.
Nothing here touches anything else, so each patch shown is entirely the consequence of its own occupancy star and can be read on its own.
Print where each gallery complex sits, so a capture can be aimed at one.
Make a compact stair-and-bridge solid with convex and concave stars.
One compact fixed-arity draw population for a surface-mesh cohort.
One chunk's CPU population and independently retained GPU realization.
Worker-transferable CPU realization of one semantic surface mesh.
Canonicalize and concatenate meshes into two fixed-arity instance runs.
Every source template contains either one triangle or one quad. Templates are interned by their exact packed vertices, padded to a fixed six-vertex stride, and selected by the low sixteen bits of each remapped instance record. The returned population stores triangle instances first and quad instances second, so the complete surface needs at most two direct instanced draws.
Mesh-local template IDs are dense. Resolve each one exactly once, then the large instance streams become a linear copy.
One mesh's semantic residency and optional construction-overlay resources.
Chunk key (or any EQL key) to resident MESH-SLOT; SLOT-ORDER is the sorted key list frames draw in.
Return the even-sized internal render extent for output extent.
World coordinates are non-negative and comfortably below twenty bits at the eighth-cell scale. One fixnum is a cons-free hash key for the diagnostic point vocabulary.
Borrow slot's immutable CPU realization for renderer reconstruction.
Upload one independently retained chunk slot.
mesh-or-prepared may carry worker-built dense population arrays. Construction
overlay data is deliberately absent until construction mode asks for it.
Create slot's diagnostic overlay on first use, never during normal streaming.
Transactionally replace the keyed meshes as one visible residency cohort.
meshes is an alist of key to surface mesh. Every GPU slot is created before
the renderer's table changes; a failed upload therefore leaves the installed
cohort untouched. No frame can interleave with the owner-thread publication.
Create the shared luft pipeline state; meshes arrive via renderer-set-mesh.
The sky is drawn inside the scene pass, whose depth attachment geometry subsequently owns. Match that pass without touching its depth.
Issue the two fixed-arity draws shared by the sun and scene passes.
Decode the geometric-mean luminance encoded by the 32x16 GPU probe.
Consume the oldest completed probe without waiting for newer GPU work.
A live DEFCLASS update can add this chronology lane to an existing renderer between frames. Preserve its in-flight bits and give those older probes one common age until the next transactional refresh.
One adaptation step per rendered frame keeps a CPU pause from collapsing several delayed measurements into one visible jump.
Reduce unified HDR scene radiance and queue one nonblocking readback.
If the GPU is more than three frames behind, keep rendering and retain the last exposure instead of overwriting an in-flight measurement.
The atmosphere is scene-linear world radiance: geometry overwrites it, MetalFX reconstructs it, and the exposure probe meters the same pixels presentation will grade.
Populate at most one diagnostic slot per frame. The overlay is a debugging view, so progressive readiness is preferable to freezing one frame while every resident chunk is scanned.
jitter is clip-space at the internal scene resolution. MetalFX
takes the same offset in input pixels—not output pixels—so using
extent here overstates it whenever temporal upscaling is active.
Both MetalFX and the direct HDR path publish here. The atelier overlay remains later than tone mapping and glow in either case.
Character motion is presentation time, not a MetalFX capability.
--------------------------------------------------------------------------- Streaming chunk scenes
A streaming scene is an ordinary authored scene whose solid is split into
chunk chains. A bounded square window follows the camera. Each focus change
installs the final desired residency first, then remeshes exactly the chunks
whose 3 by 3 dependency neighborhoods changed. mesh-chunk's probes into
non-resident neighbors signal missing-chunk; immutable worker snapshots
answer USE-CHUNK for the captured neighborhood and TREAT-AS-AIR otherwise.
The canvas owner publishes replacements and departures as one complete
cohort, so no frame observes a mixed seam generation.
Immutable CPU input for one chunk mesh request.
Wrap scene in bounded camera-driven chunk residency.
When lod-radius is non-NIL, chunks beyond that Chebyshev distance use
far-bevel-width. When merge-radius is non-NIL, chunks beyond it additionally
dissolve exactly coplanar edges without changing that bevel surface.
far-bevel-width names the medial tier in residency state.
Stored chunk keys inside scene's square residency window.
Chebyshev chunk distance between key and focus.
Select key's mesh tier under focus.
Whether key uses scene's exact coplanar compression under focus.
Batch scene's desired window around a camera position and mesh it once.
Return the loaded 3 by 3 chunk neighborhood observed while meshing key.
Name the exact residency and geometry parameters observed by key's mesh.
Capture immutable chains for the neighborhood key currently observes.
Mesh one worker-owned residency snapshot without reading owner state.
Synchronously mesh key from the same immutable snapshot workers receive.
Stage mesh when request is still the latest description of its chunk.
Return the complete current cohort and a readiness flag.
Install a complete current mesh cohort at the canvas-owner boundary.
Drain and publish bounded worker results on the canvas owner thread.
Sample stable smooth value noise without allocating terrain objects.
Height of the authored highland at X,Y.
The invariant is that every reading is a pure function of X, Y, size, and
seed. Low-frequency domain warping bends a zero-contour into mountain chains;
independent fields add foothills, a basin, a river valley, and a terraced
upland instead of repeating one periodic profile.
Build one sparse limestone lookout; citadel-p makes the regional anchor.
Make a large varied landscape with mountain chains and sparse ruins.
The default 512 by 512 world spans sixty-four luft chunks. streaming-p wraps
it in a seven-by-seven camera-driven window: full bevel nearby, medial terrain
in the middle ring, and exact coplanar compression in the outer ring.
Deliberately sparse, asymmetrical anchors replace the old tower in every chunk. Their different scales make travel across the terrain legible.
Global construction-edge strength. The atelier toggles it between 0 and 1.
Linear internal resolution of the LUFT scene before temporal upscaling.
Whether LUFT uses MetalFX temporal reconstruction on Metal devices.
Multiplication and scalar scaling.
One authored solid and its vocabulary-closed material-placement field. The solid remains LUFT's topological truth. The sparse authored field stores only dense vocabulary offsets; semantic material objects remain at the scene boundary rather than being allocated per cell.
Scene-closed dense decisions consumed by face, band, and fan meshing.
(&key (horizontal-bits 6) (origin-x 0) (origin-y 0))(&key (horizontal-bits 6)
(x-bits horizontal-bits)
(y-bits horizontal-bits))(builder x y z &key (solid-p t) architecture-p (material nil material-p))Test whether one compatible scalar is at most another.
(&key (code t))(domain x y z &optional (extent +vertex-extent+) (polarity 1))Pack a canonical site inside DOMAIN's box. No coordinate wraps: anchors range over [0, limit] per horizontal axis, and a site extending along an axis cannot begin on that axis's far boundary.
Addition over compatible quantities.
Authored cell meaning: substance, deliberate finish, frame, and role.
(domain member &optional (intern-p t))(builder x0 x1 y0 y1 z0 z1
&key (solid-p t) architecture-p
(material (if architecture-p *sanctuary-material-placement*
*terrain-material-placement*)))(builder cx cy radius z0 z1
&key (solid-p t) architecture-p
(material (if architecture-p *sanctuary-material-placement*
*terrain-material-placement*)))Raise a dimensionless value to a dimensionless power.
Subtraction or unary negation.
Test whether two compatible scalars are equal.
(builder cx cy inner outer z0 z1
&key (solid-p t) architecture-p
(material (if architecture-p *sanctuary-material-placement*
*terrain-material-placement*)))Logical conjunction of tests and raw truth values.
Test whether one compatible scalar is less than another.
(offset radius)The componentwise square root of a raw value.
(builder centre floor springing radius across &key (axis :x))(builder x0 x1 y0 y1 z courses)(builder x0 x1 y0 y1 z)Logical disjunction of tests and raw truth values.
The non-negative remainder of integer division.
(builder x0 x1 y0 step-count base-top
&key (boundary :open))Author an ascending masonry stair and its optional support boundary. BOUNDARY is a deliberately small modeling vocabulary. :OPEN emits only the treads, :BORDER adds a one-cell stone strip level with each tread, and :LOW-WALL raises that strip one course above it. The extra cells are ordinary authored solid and…
Compare compatible quantities and produce dimensionless values.
(builder &key player-p)(domain &key (initial-capacity 0))(builder site)(builder)(placement-vocabulary)()Three isolated singular-star fixtures for the manifold-sheet spike. The plots exercise an edge-touching pair, a corner-touching pair, and the four-sheet parity star. Nothing else in the scene can hide their junctions. #WSEK3C
Sample a two-dimensional texture through a sampler at a UV coordinate.
The maximum of compatible quantities.
Division of two represented quantities.
Test whether one compatible scalar is at least another.
The minimum of compatible quantities.
The componentwise absolute value of a raw value.
(builder)Guard the elevated authored rim with a limestone parapet. The continuous two-course body exceeds the player's one-cell step. Every other column rises into a third course, making the finite scenery legible as an intentional battlement rather than the accidental edge of a voxel field.
(&key (beacon-placement *beacon-material-placement*)
(stair-boundary :low-wall))A broad Lonely-Mountains world carrying a bridge and walled sanctuary. This is the old Holm's architectural sentence with its material menagerie removed: rolling approaches, a channel and rising high rock; a diagonal processional way; a two-arched stone bridge; a gate, curtain wall, paired turrets, an arcaded hall…
()A bare limestone dais under the traveler, clear from every direction. The sanctuary is the scene he belongs in, but it is also a scene in which half the useful camera angles look through a parapet. This fixture keeps his exact world position and his exact deck height and removes everything else, so a turnaround can…
()Build the five-cell medial T-junction regression. #WSEK3C Two ascending architectural columns meet the corner of a two-cell terrain column. Widths one, two, and four occur in one tiny surface; the width-four medial collapse leaves exactly one long-edge/short-edge T-junction for the site-local contraction pass to…
()Build the wall-side stepped mountain used to judge mixed miters. #Z5NDTA The two L-shaped terraces retain five-, six-, and seven-cell vertex stars in one architectural context. Their back edges meet a continuous wall so the same view also retains the truncated wall miter preserved by #DJK8HW.
(solid face)(chain)(site)(site)(site)(site)(chain x y z)Treat positive cubic-site occurrences in CHAIN as Boolean occupancy. Cells above and below the Z range are air; probes beyond the horizontal box signal OUTSIDE-DOMAIN with the boundary restarts.
(scene cell)(scene cell)(domain offset)(scene face)(kind placement scene cell axis side)Derive one exposed face reading from an authored material placement.
(scene face)(stocks &optional material-program)Resolve one whole chamfer from its incident face STOCKS. The paper palette's terrain top is grass, terrain side is soil, and terrain underside is dark soil. A unanimous closure continues that face material; a mixed terrain chamfer exposes soil. Stone--terrain chamfers retain the deepest incident substrate, so the…
(program stocks)(assembly)(assemblies)Resolve an edge or fan closure without erasing incident assembly identity. Fan construction may present assemblies already derived for surrounding bands; those are not interchangeable with their primary face readings. This resolver therefore preserves the legacy recursive decision exactly while expressing it in…
(offset)(face)(source &key stock-function chamfer-stock-function
(bevel-width luft:+mesh-bevel-width+))Default bevel width in eighth-cell integer ticks (one quarter cell).
(specification &body body)Measure BODY with concise ambient zone syntax. SPECIFICATION is either a zone name or (NAME :VALUE FORM). This is the ordinary spelling for a meaningful region inside a definition; ZDEFUN and ZDEFMETHOD cover whole definitions.
(chain)(solid &key (stock-function (constantly 0))
(chamfer-stock-function (lambda (stocks) (first stocks)))
(bevel-width +mesh-bevel-width+)
(boundary :air))Classify SOLID into exact integer face, edge, and vertex instance streams. Below the medial limit, every exposed cell face emits the same width-dependent central square and crease edges own the intervening bands. At the half-cell limit those two families become zero-area seams: a sub-medial witness retains their…
(scene profile &key (contract-t-junctions-p t))Build one watertight mesh with a semantic material width at each site. The ordinary width-one mesher supplies one exact topology witness. PROFILE is compiled after that build into a dense stock-to-material-mask lane. Each canonical lattice vertex ORs the masks of all incident stocks: terrain-only,…
A semantic assignment of LUFT integer bevel widths to material relations.
(profile &optional (vocabulary *surface-assembly-vocabulary*))Compile PROFILE into dense stock masks and site widths. The first value is one terrain/architecture bit mask per packed assembly stock. The second is a four-entry byte table indexed by the OR of every incident stock mask: terrain-only, architecture-only, and mixed sites select the profile's terrain, architecture,…
(witness width-function &key (contract-t-junctions-p t))Evaluate one width-one WITNESS at a locally selected width per vertex site. WIDTH-FUNCTION is called once for each canonical lattice vertex as (WIDTH-FUNCTION X Y Z INCIDENT-STOCKS) where INCIDENT-STOCKS is a sorted list of the packed stocks on witness triangles using that site. It must return an integer width…
(scene profile)Small unconnected complexes, one per interesting occupancy star.
(index)(&key (entries *gallery*))Build one chain holding every gallery complex on its own plot. Nothing here touches anything else, so each patch shown is entirely the consequence of its own occupancy star and can be read on its own.
(&key (entries *gallery*))(name-and-options lambda-list &body body)Define a function whose complete dynamic extent is an ambient trace zone. The inferred name is PACKAGE/FUNCTION. Use (NAME :ZONE ZONE-NAME) to provide a more semantic name and :VALUE FORM to attach a Tracy work count.
(meshes)Canonicalize and concatenate MESHES into two fixed-arity instance runs. Every source template contains either one triangle or one quad. Templates are interned by their exact packed vertices, padded to a fixed six-vertex stride, and selected by the low sixteen bits of each remapped instance record. The returned…
Extract the unsigned bit field (BYTE SIZE POSITION) of one unsigned scalar.
How the children of a list are arranged.
(device)(renderer)(handle)Logically invalidate HANDLE immediately. Native teardown may be deferred until submitted work which captured HANDLE has completed.
(extent)A canonical product of symbolic base dimensions raised to rational powers.
(renderer extent)(device descriptor)Asks the DEVICE for a handle to newly created instance of some object fulfilling the DESCRIPTOR.
(&optional (stream *standard-output*))(renderer extent)(slot)(resident)(renderer mesh-or-prepared)Upload one independently retained chunk slot. MESH-OR-PREPARED may carry worker-built dense population arrays. Construction overlay data is deliberately absent until construction mode asks for it.
(renderer slot)(renderer)(renderer key mesh)(renderer meshes)Transactionally replace the keyed MESHES as one visible residency cohort. MESHES is an alist of key to surface mesh. Every GPU slot is created before the renderer's table changes; a failed upload therefore leaves the installed cohort untouched. No frame can interleave with the owner-thread publication.
(renderer key)(renderer)(device color-format extent)(&optional (vocabulary *surface-assembly-vocabulary*))Compile VOCABULARY into fixed-stride float32 rows for direct GPU indexing. Each assembly owns seven vec4 rows: primary/kernel, secondary/contact variant, tertiary/roughness, then frame origin/relief profile and its three axes (with relief amplitude beside X). The fixed stride is small enough for direct indexing while…
Resolution of LUFT's single sun-shadow map.
(renderer)(pass resident bind-group)(pass-encoder index bind-group)(pass-encoder vertex-count
&optional (instance-count 1) (first-vertex 0) (first-instance 0))(current average-luminance)(renderer)(buffer &key offset size)Copy mapped BUFFER bytes only when its own newest submission is complete. Return the byte vector and true when ready, or NIL and NIL without waiting. Unlike READ-BUFFER this does not wait for unrelated newer queue work.
(renderer encoder temporal-p)(encoder descriptor)(pass scaler)(pass-encoder pipeline)(pass-encoder)(renderer encoder surface-texture extent camera-uniform-data
&key jitter view player-p construction-p overlay-encoder)(view previous inspection-parameters ink-strength player
&optional (bevel-width luft:+mesh-bevel-width+) (exposure 1.0f0))(encoder texture usage)Prepare TEXTURE for semantic USAGE in ENCODER's following commands. The backend owns any layout transition, hazard barrier, or validation needed to realize the usage. Application code does not dispatch on the backend. #T5MQO0
(pass scaler)(encoder scaler color depth motion output jitter reset-p)Encode one temporal reconstruction from COLOR, DEPTH, and MOTION. JITTER is the current sample offset in input-pixel units. Motion values are current-to-previous displacements in normalized input-texture coordinates; the scaler's input extent binds their conversion to pixels once per frame.
Logical negation of one test or raw truth value.
(chunk chunk-key
&key (stock-function (constantly 0))
(chamfer-stock-function (lambda (stocks) (first stocks)))
(bevel-width +mesh-bevel-width+)
planar-merge-p
coplanar-merge-p)Classify one chunk's solid CHUNK into the instance-stream ABI. CHUNK holds exactly the cells of the chunk named by CHUNK-KEY. Probes leaving the chunk signal MISSING-CHUNK once per neighboring chunk -- bind a handler that answers USE-CHUNK from a store, or TREAT-AS-AIR to fill in -- and probes past the world's box…
A probe crossed into a chunk that is not resident in the probing field. The signaling probe offers USE-CHUNK (supply the chunk's chain), plus the TREAT-AS-AIR and TREAT-AS-SOLID boundary restarts for the whole chunk, so a streaming store answers with data, defers, or fills with a constant.
(x y z)An inspectable immutable unit of CPU work after it is submitted.
(scene &key (frames-per-load 15) (residency-radius 1) lod-radius merge-radius
(far-bevel-width 4))Wrap SCENE in bounded camera-driven chunk residency. When LOD-RADIUS is non-NIL, chunks beyond that Chebyshev distance use FAR-BEVEL-WIDTH. When MERGE-RADIUS is non-NIL, chunks beyond it additionally dissolve exactly coplanar edges without changing that bevel surface. FAR-BEVEL-WIDTH names the medial tier in…
(function chain)(scene focus-x focus-y)(key)(key)(left right)(key focus)(scene key focus near-bevel-width)Test whether one compatible scalar is greater than another.
(scene key focus)(scene production-system bevel-width world-x world-y)(x y)(scene production-system key bevel-width priority)(scene key)(scene key bevel-width coplanar-merge-p)(scene key bevel-width)(snapshot)A cell probe left its box. The signaling probe offers the boundary restarts TREAT-AS-AIR, TREAT-AS-SOLID, and USE-VALUE, so the caller's handler decides what lies past the edge: a world treats it as air, a chunk store answers from the neighboring chunk or defers, a test refuses.
(scene key bevel-width)(request)Compute REQUEST on the production worker and return a transferable value.
(scene request)(scene request mesh)(scene renderer)(scene renderer production-system &key (limit 2))(x y seed salt)(reading)(left right amount)(x y period seed salt)(low high reading)(x y size &key (seed 121))Height of the authored highland at X,Y. The invariant is that every reading is a pure function of X, Y, SIZE, and SEED. Low-frequency domain warping bends a zero-contour into mountain chains; independent fields add foothills, a basin, a river valley, and a terraced upland instead of repeating one periodic profile.
(builder x y base &key (citadel-p nil))(&key (horizontal-bits 9) (seed 121) (streaming-p t))Make a large varied landscape with mountain chains and sparse ruins. The default 512 by 512 world spans sixty-four LUFT chunks. STREAMING-P wraps it in a seven-by-seven camera-driven window: full bevel nearby, medial terrain in the middle ring, and exact coplanar compression in the outer ring.
The first material-width experiment makes the site's ownership concrete. Every packed surface stock compiles once to a terrain or architecture bit; each canonical lattice vertex ORs the bits of its incident stocks and chooses one width for every primitive that uses it. Terrain-only sites take width four,…
The shared-point rule of #RUAWR5 is compact and watertight, but it gives every incident chamfer strip only one place to end at a mixed vertex. At the wall-side step this truncates a strip which should continue around the meeting: the long miter collapses into a narrow triangular fighter shape. That is the coherent…
Three user-supplied screenshots preserve the visual argument. The first is the original LUFT junction, deliberately zoomed and framed on the problem: the green chamfer strip loses its width and collapses into the one shared point. images/luft-miter-initial-collapse.jpg The second is the first attempted repair. Extra…
A long diagonal shoulder lifts the far eastern approach without changing the bridge landing.