wip(assembler): round S2 (Sol) -- shared per-tile feature queries for every Core family; island placement 30x faster

Island-only worker context replaced by a shared worker-local candidate domain
(WorldAssemblyFeatureTileListV1 / ScopedWorldAssemblyFeatureQueriesV1) serving
SurfaceWorld, FloatingIslands and far-shell queries; a per-domain cost hint keeps the
full scan on small plans. Content placement prepares the same queries and skips proven
air: owner island cell p95 7.07 -> 0.24 ms; populated fixture 572 exact placements,
3.27 s -> 29 ms. Full/candidate hashes equal with dropped-feature controls on both
families; S1 default W1/W8/W16 hashes reproduced; Core-off and M2 fixtures pass.
Default contract for future families in ARCHITECTURE 8.23. Run on gpt-6.1-sol medium.

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 19:50:45 +02:00
1 parent d6e69420e8
commit 6ddb834b1c
19 files changed
+1849 -132

No files matched your search

@@ -1138,3 +1138,59 @@ link-safety passed. No 0xC0000142 retry or new UECC folder occurred. I did not o
editor or build his project, edit any .uasset, create a link, commit, push or stash.
— Luna
## World assembler S2 / M3 Round 6 — 2026-10-18
The shared engine now owns a family-neutral, worker-local feature-query scope. I removed the
island-only context from ShapeWorld; SurfaceWorld finite features, island groups, meshing, far-shell
field calls, decoration cells and landmark columns use the same domain/identity/halo contract.
S1's root-aware positive-density bounds and ordered connector composition are preserved.
The measurements matter here: the staged SurfaceWorld has one finite shelf, and the staged island
plan has four islands. Forced candidate bookkeeping gave no useful small-plan gain and regressed
the island tile timings by 7–13%. I added a shared cost hint, resolved once per domain, so these
small plans keep their full evaluator. Richer plans still use candidates. With the actual staged
owner template expanded to 256 islands, forced-list p95 was 110.570 -> 7.3619 ms (about 15x), with
identical hashes and a detected dropped-feature control. The composed surface stress (64 shelves,
one XY height writer and one cap writer) was 0.7084 -> 0.4078 ms, again exact with its control caught.
The S1 57x stress number used a different Round 3 template, so I do not compare those as a regression.
The placement cost came from marching almost the entire strate and using a full plan at every
step. Family-declared solid-support bounds now feed a shared column range query, alongside the
same feature scopes. We skip only certified air and keep the old march phase, bisection,
interpolation and transforms. Owner-palette p95 fell 7.0706 -> 0.2385 ms, with 58.84 density calls
per cell versus S1's 7,763.38. Its sampled authored palette still places zero objects; I keep that
limitation explicit rather than claiming those timings include spawning trees.
A separate populated fixture produced 572 placements across 14 cells. All 572 full/candidate
transforms match exactly, all canonical anchor checks pass, and the largest density residual is
0.035156 Core voxel units. The 64-cell active batch, including merge and real HISM application,
was 3271.147 -> 29.105 ms. All 572 instances were applied and then cleared. This is synchronous
CPU work under null RHI; it excludes rendering, GPU upload, async tree completion and owner tree
Blueprint logic. One run failed the new count assertion because normal region application clears
live landmark footprints. I isolated the validation fixture from those footprints; normal content
keeps them enabled. The corrected run passes.
BuildHost SurfaceWorld passed its full actor/streaming/collision/edit checks and W1/W8/W16 with
S1's default 25 cm hashes. The final island actor also keeps S1's entire W1/W8/W16 matrix. The final
focused surface replay checks LOD0/1/7/8 full-versus-default tile hashes after the cost hint. M2 V1/V2
fixture repeats, borders, MC identity and all 125 doorway phases pass. A separate Core-off run
proves unchanged legacy density and 12.5 cm scale. All builds/link audits passed. No timeout,
0xC0000142 or new UECC folder occurred. The failed HISM fixture run exited normally with test status 1.
My next structural suggestion is an immutable per-strate family-provider table, carrying declared
bounds, cost hints, value certificates and optional support/surface queries. It would avoid repeating
concrete family enumeration and rebuilding metadata in each consumer. I have not rebuilt that
boundary this round; the report lists the allocation, many-strate, hash and stale-provider evidence
needed first. Preserve the existing bounded biome lattice and cave interval machinery meanwhile.
New source files are `Round6/SharedFeatureListAudit.cpp` and `Round6/BuildSharedFeatureListAudit.ps1`
under WorldAssemblerM3. The report lists every modified source, likely compile spots, all failed and
replayed runs, timing limitations and the plain-words owner note. CODEMAP section 3 and ARCHITECTURE
section 8.23 are updated. No owner project/editor was opened, closed or built. No .uasset was edited,
and no link, commit, push or stash was created.
[Full S2 report](../../WorldAssemblerM3/Round6/REPORT.md).
— Sol