wip(assembler): round S4 -- continuous far ceiling at the strate's upper boundary

S3's far cap sat up to 8.2 m above the near roof and read as floating pieces.
The far render cap now projects onto the owning strate's upper boundary
(density unchanged), on a global XY lattice, LOD4 16-voxel grid + LOD5-8
128-voxel. Cap agreement 0.05 cm (100 cm control detected), 2520/2520 upward
rays hit roof on the owner walk. Far recipe v2; LOD0-3 hashes equal S2/S3.
Tile p95 flat; cold clipmap +4.4%. Far-cliff fluting left open (coarse MC step).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
This commit is contained in:
Fr0zkaandClaude Opus 5.5 committed 2026-10-19 00:41:13 +02:00
1 parent d0f97bf79a
commit 9d3c50ca95
14 files changed
+1376 -34

No files matched your search

+40
View File
@@ -1395,6 +1395,46 @@ measure eight warmed keys per LOD and compare the shared LOD7/8 surface lattice
density roots, including a 100 cm datum-offset negative control. See
`Standalone/Research/WorldAssemblerM3/Round7/REPORT.md` for results and the visual evidence limits.
### 8.25 Continuous planar ceiling — World Assembler S4 / M3 Round 8
The cap remains a family declaration in `WorldAssemblyPlanV1::strates` and is evaluated by the shared
Core heightfield path. `Heightfield2D::farSurfaceCapHeightSubvoxels()` clips only the rendered far
surface to `(topChunkZ + 1) * 32` voxels, the owning strate's upper boundary; it leaves
`Heightfield2D::point()` and its density values unchanged. `capHeightBounds()` reports conservative
bounds for that clipped surface. Evaluator v5 opts into this render-surface contract; older serialized
evaluators keep their recorded cap behavior. The clip joins the exact near density root at the owning
boundary without changing LOD0–3 density hashes. Future families with planar roofs must declare their
cap height and bounds through the family plan/provider contract; the shared tile generator consumes
that declaration. FloatingIslands declares no planar roof, so open sky above a surface island is the
expected view.
For each requested far SurfaceWorld XY column at LOD4–8, desired-tile selection adds cap-height
bands only when they do not overlap an existing or already accepted 3D clipmap tile. The original
clipmap remains a non-overlapping partition. Cap samples use a global XY lattice, are clipped to the
owned strate boundary, tile Z bounds and `cap >= ground`, and share edges across tiles. LOD4 uses a 16-voxel cap step;
LOD5–8 use 128 voxels. Core-off stays on its legacy path, and edits continue through the authoritative
edited field. Runtime material sections are explicitly created/updated from their ground/cap index
ranges so a cap-only far tile cannot rely on an auto-created section being present.
The far recipe version is 2. It salts mesh, payload and topology hashes for LOD4–8; density hashes
and LOD0–LOD3 identities do not change. The owner audit counts requested cap bands and emitted
positive-area bands, compares 128 shared cap points with the near density root at 2 cm tolerance,
checks a 100 cm datum-offset negative control, and traces upward rays from route and camera points
against emitted triangles. Round 8 records these counters, the matched captures, warmed BuildHost
timings, clipmap overlap validation and remaining failures in
`Standalone/Research/WorldAssemblerM3/Round8/REPORT.md`.
The Round 8 owner walk audit emitted every requested cap band at LOD4–8 (385/385), agreed with 128
near roots to 0.0504 cm (2 cm gate), detected a 100 cm offset control, and hit the cap on all 2,520
upward rays from 35 walk/camera points. No route ray missed the cap or clipmap boundary.
The far-cliff fluting is coarse marching-cubes geometry on steep faces: with 16 coarse cells per tile,
LOD7 samples every 256 voxels (64 m at 25 cm) and LOD8 every 512 voxels (128 m). The native ground
replacement removes only upward-facing coarse faces; near-vertical faces remain on that lattice.
LOD7/8 shell repair is skipped for certified SurfaceWorld tiles, the renderer does not cull
backfaces, and the strips predate S4 in S2/S3. Refining all steep faces would multiply far mesh work;
S4 leaves that cost/quality tradeoff open.
## 9. Multiplayer model (listen-server first, dedicated-friendly)
> **Status: transport is DESIGN ONLY — nothing is networked in-tree yet** (no `Replicated`/`HasAuthority`/RPCs; a