wip(assembler): round S1 -- one Core voxel-size source; per-tile feature lists (islands)

AVoxelWorld::CoreVoxelSizeCm (default 25, 32 voxels/tile) flows through plan, field,
mesher, content, water, atmosphere, edits and collision. Staged-owner BuildHost passes at
20 cm (SurfaceWorld + islands, W1/W8/W16, anchors, BP edits, collision) with a fixed-25cm
negative control; default-size hashes match round 4; Core off stays legacy 12.5 cm.
Reusable BuildWorldAssemblyFeatureTileListV1; wired into FloatingIslands only so far.
256-island stress: tile p95 112.5 -> 2.0 ms, 0 mismatches, dropped-feature control fails.
Content placement measured (no populated cells): island ground search 7.25 ms/cell vs
legacy 0.29 ms -- open. Outside-review evaluation in Round5/REPORT.md.

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-18 18:48:38 +02:00
1 parent 111cf3d262
commit d6e69420e8
25 files changed
+2136 -250

No files matched your search

@@ -1077,3 +1077,64 @@ The staged owner settings did contain the old manifest, and the plan test retain
One remaining fixture caveat is recorded in [`WorldAssemblerM3/Round4/REPORT.md`](../../WorldAssemblerM3/Round4/REPORT.md): the staged saved `DA_Settings` points to `DA_Strate4`, while the owner’s read-only Play log resolves the active single SurfaceWorld from `DA_Strate1`. The BuildHost commandlet therefore reconstructed that logged one-slot layout as a transient copy at the real `[0,-63]` bounds. No Season asset was assigned in the staged settings, so the season-seed path was not tested. The report includes this distinction, the full pass/fail ledger, crash check, and editor hand-off. No owner project/editor was touched, no `.uasset` was edited, and no commit, push, or stash was made.
No new source file was added. The post-change UHT/BuildHost compile and Core link audit passed at four actions; the Core-only Standalone rebuild/audit passed. No `0xC0000142` retry or new UECC folder occurred.
## World assembler M3 Round 5 / Round S1 — 2026-10-18
The assembler now builds stable per-tile candidate feature lists for Floating Islands. The generic
list builder uses conservative inclusive bounds and can serve caves, shafts, pits and passages too.
At the current four-island plan, sampled p95 was 0.919 ms full scan and 0.910 ms with lists; building
72 lists took 0.0396 ms total. At 256 islands and 240 connectors, sampled tile p95 fell from
112.458 ms to 1.972 ms (about 57x); building 3,280 lists took 95.133 ms total (0.0461 ms p95/list).
Both dropped-feature controls were caught.
The first default island hash comparison caught a real bug: empty-list air tiles skipped a distant
root because version-2 root lobes use scaled ellipsoid density, which is not the geometric distance
assumed by the initial search bound. The bound now includes the validated root slope and smooth-min
reductions. The staged owner plan's every-sample candidate/full comparison had zero mismatches, and
the 2,802-tile default W1/W8/W16 aggregate now exactly matches Round 4 for density, mesh, payload and
topology.
After removing the temporary comparison code, the clean production 25 cm island actor passed again
in 3m48s at 3.16 GiB peak. Its density/mesh/payload/topology hashes were
`4dcfb37585d7d986 / 725a18374c5623de / fb345d8cb319d18b / 76f2846be8efb5f4`, matching Round 4.
Core scale now comes from AVoxelWorld.CoreVoxelSizeCm, default 25 cm, with 32 voxels per tile.
Core-off stays on 12.5 cm legacy scale. Staged-owner BuildHost checks at 20 cm passed for SurfaceWorld
and Floating Islands, including W1/W8/W16, exact surface anchors, water/atmosphere, BP carve/fill,
collision and travel/streaming. The 20 cm controls detect the old 25 cm tile conversion and stale
brush strength. Default SurfaceWorld and Floating Islands hashes match Round 4. The 20 cm Floating
Islands run generated 2,850 tiles; island ground matched exactly, the connector span was within
0.349 cm, water and atmosphere followed the resolved scale, and capsule contacts and BP edits passed.
The default V2 actor run passed in 11m57s with 3.67 GiB peak; fixture repeats, borders and 125
doorway phases passed too.
I kept per-strate sizes deferred because they need a shared physical boundary field, deterministic
transition LODs, edit rasterization across both grids and a stable size map in world identity. The
placement-cost measurement found SurfaceWorld already uses its planned ground directly. Island ground
marching is expensive, but the tested top-anchor shortcut was slower, so no shortcut was kept. The
sample had no actual placements; the report calls that out.
The outside review's strongest implemented suggestion is per-tile feature filtering. Per-strate
resolution and macro-only far LOD are promising but need seam, edit, silhouette and no-pop evidence.
Heading priority already exists; visibility weighting must preserve collision readiness. Keep bridges
as field geometry because player edits stay unrestricted. Separate meshes remain appropriate for
self-contained dreamcore set pieces.
CoreVoxelSizeCm is the new per-world setting. In plain terms, it controls how many centimetres one
Core voxel covers; at 20 cm, a 32-voxel tile is 640 cm wide, while the default 25 cm tile is 800 cm.
Core-off continues using the legacy 12.5 cm world. Per-strate sizes remain deferred until boundary
sampling, transition LODs, cross-boundary edits and size-map hashing have explicit contracts.
The outside review is evaluated in the report. Per-strate size and macro-only far LOD rank highest
among deferred ideas; heading scheduling already exists, and rock bridges stay in the editable field
because carve/fill remains unrestricted. Placement measurements found that SurfaceWorld already
reads its planned height directly. Island density marching is expensive, but the tested top-anchor
shortcut was slower, so I kept no shortcut. Sampled content cells had zero placements.
The full report, exact run ledger, compile spots, source list, M2 checks and owner setting note are in
[WorldAssemblerM3/Round5/REPORT.md](../../WorldAssemblerM3/Round5/REPORT.md). New source files are
the standalone tile-list audit and its PowerShell build/run script. UHT/BuildHost compile and Core
link-safety passed. No 0xC0000142 retry or new UECC folder occurred. I did not open the owner's
editor or build his project, edit any .uasset, create a link, commit, push or stash.
— Luna