# World assembler S2 / M3 Round 6 Date: 2026-10-18. Author: Sol. Base: `d6e6942`, branch `assembler/world`. No commit, push or stash. ## Shared engine change The island-only worker context has been removed from `ShapeWorldInternal.h`. `WorldAssemblyFeatureTileListV1` and `ScopedWorldAssemblyFeatureQueriesV1` now carry a shared, worker-local candidate domain, keyed by immutable recipe/plan identity. Nested scopes restore their predecessor; samples outside the prepared domain use the full evaluator. Tile preparation includes the mesher's normal halo and prepares both existing native families. Derived far-shell field calls stay in that scope too. The old island payload names remain aliases so S1 research tools still build. Families retain their mathematics: SurfaceWorld declares XY influence for column writers and finite no-op boxes for volumetric exceptions; islands retain S1's root-aware positive-density certificate and ordered island/connector groups. The engine never assumes that density magnitude is Euclidean distance. Unknown operations stay active. A shared `candidateEvaluationUseful` cost hint is resolved once per domain. The measured one-feature SurfaceWorld and four-island plans prefer the full scan; larger plans retain culling. Audits force candidates on small plans to prove their bounds too. No density arithmetic, recipe serialization/version, voxel-size resolution, queue, Epoch, edit lock or streaming policy was changed. The default contract for future caves, shafts, pits, passages and rivers is documented in ARCHITECTURE §8.23. Declare conservative bounds and any value-side proof needed to preserve exact positive values. Preserve operation order; unknown proofs evaluate normally. An air-base family can also declare conservative solid support, allowing the shared column union to shorten a search. Solid-base caves cannot use that air proof. Every new proof needs equal full/candidate hashes and a dropped-needed-feature control. Surface biome-site selection already searches a fixed local lattice and is cached by XY. It is not a global feature scan. We preserve that machinery and target its finite feature loops. Existing cave extraction keeps its existing line/spatial bins; this round makes no new cave performance claim. FarShells remains derived repair geometry with existing connector/stratum candidate filtering, rather than becoming another canonical generator. Its field queries inherit the shared scope. ## Placement cause and correction Native island placement previously scanned the entire owner strate, calling a full-plan evaluator at each step. The owner workload used about 7,763 density queries per cell in S1. Its sampling cell was mostly air, so optimizing only the top-anchor helper did not remove the dominant work. Snapshots now declare conservative support bounds once. Decoration cells and landmark columns prepare the same shared feature queries as meshing. A shared support-union query skips proven air, including entirely empty columns. The march retains its original lattice phase, crossing budget, four bisections, interpolation, normals and placement hashes. No alternate approximate top surface was introduced. Companion queries get their own nested domain when needed. Validation preserves the owner's palette and reports it separately from a deliberately populated fixture. That fixture uses dense deterministic floor placements, both water classifications, the resolved biome tags, and a staged decoration mesh (engine cube fallback if none is available). It checks exact full/candidate transforms and canonical island density residuals, then merges and applies real HISM regions and clears them immediately. CPU totals include cell preparation, merge and region application; the identical application/merge cost is shared by both comparison totals. The isolated HISM fixture bypasses live landmark footprints, which otherwise suppress its instances. Normal region application keeps those footprints enabled. Null RHI does not measure GPU upload, rendering, a rendered frame, or asynchronous cluster-tree completion. Existing native content snapshots still describe the planned base field; this round does not add edit-aware reanchoring. ## Measurements and proof The field audit replays the plans exported from BuildHost's staged owner route. These are the same transient owner-height fixtures described in Round 4: the saved settings point to `DA_Strate4`, while the logged SurfaceWorld layout is reconstructed from `DA_Strate1` without saving an asset. No Season is assigned in these copies. The island plan has 4 islands and 3 connectors; the surface plan has one finite type-4 shelf. The stress cases extend those plans to 256 islands/240 connectors and 64 surface shelves plus one XY height writer and one XY cap writer. They do not change any production recipe. ### Forced candidate proof and cost Each island row samples 64 tiles / 64,000 points, including the normal halo. Each surface row samples 64 tiles / 46,656 points and hashes density, ground, cap and biome ID (186,624 values). Surface timings start both paths with cold column caches by changing only the local validation cache epoch. Final timing replay ran without an overlapping build or Unreal process. | Family / plan | Full-scan p95 ms | Forced-candidate p95 ms | List build p95 ms | Full and candidate hash | Negative control | |---|---:|---:|---:|---|---| | Islands, staged owner | 0.9803 | 1.0194 | 0.0012 | `cb94db3ca317d001` | detected | | Islands, 256 stress | 110.570 | 7.3619 | 0.0803 | `d83bac7778f3d62a` | detected | | Surface, staged owner | 0.4748 | 0.4559 | 0.0003 | `4207efd4ac869108` | detected | | Surface, 64 shelves + height/cap writers | 0.7084 | 0.4078 | 0.0011 | `f1c6ea123284cc38` | detected | Every row has zero mismatches. Each control removes a needed feature; the island control removes its group certificate too. The shared-scope audit also checks identity/domain fallback, nested empty scope restoration, scope teardown and the full-scan cost hint. The owner island point audit offers no useful culling gain. Stress p95 improves about **15×**; 3,362 stress lists cost 216.615 ms in total (108 owner lists cost 0.0766 ms). The stress template comes from the actual staged owner plan, whereas S1's standalone audit used Round 3's manifest; its 57× figure is not an apples-to-apples regression comparison. Surface's single feature has no material point-query gain. Its column computation alone is about 0.368 ms of the 0.475 ms p95, and the existing bounded biome/cap path stays intact. The stress case reduces p95 by about 42% while column cost stays similar (0.3699/0.3552 ms). There is no reason to force a global biome/cap feature list into this owner plan. Warmed BuildHost tile timings initially exposed a 7–13% island regression from forcing group bookkeeping on four islands. That led to the shared cost hint. The final default path keeps its small-plan timing: | Staged plan | LOD | Full tile p95 ms | Default shared-engine p95 ms | Full / shared shell p95 ms | |---|---:|---:|---:|---:| | Islands | 0 | 94.984 | 95.094 | 0.0002 / 0.0003 | | Islands | 1 | 87.280 | 87.577 | 0.0005 / 0.0003 | | Islands | 7 | 20.442 | 20.409 | 16.918 / 16.882 | | Islands | 8 | 73.038 | 72.923 | 69.930 / 69.844 | | Surface | 0 | 11.238 | 11.178 | 0.0001 / 0.0001 | | Surface | 1 | 7.346 | 7.354 | 0.0001 / 0.0001 | | Surface | 7 | 32.739 | 32.381 | 26.378 / 26.021 | | Surface | 8 | 168.545 | 168.063 | 135.960 / 136.310 | Each row measures eight owner clipmap keys after warming both routes, including list preparation, meshing and density hashes. All four output hashes match on every paired key. This is a small, hash-capture workload, not a rendered-frame percentile. The far-shell stage excludes LOD8 cap refinement. There is no measured reason to add another shell-specific feature index for these small owner plans; larger canonical fields inherit their family culling through the shared scope. ### Island placement and active populated cost | Workload | Full scan | Shared engine | Result | |---|---:|---:|---| | Owner palette, cell p95 | 7.0706 ms | 0.2385 ms | about 29.6× faster | | Owner palette, 64-cell preparation | 412.960 ms | 3.840 ms | same zero authored placements | | Populated fixture, populated-cell p95 | 53.9875 ms | 2.1501 ms | 14 populated cells / 572 placements | | Populated fixture, all 64 cells | 3270.478 ms | 28.436 ms | exact transforms match | | Merge / real HISM apply | 0.0623 / 0.6068 ms | same products/cost | 572 applied instances | | Populated active batch CPU total | 3271.147 ms | 29.105 ms | about 112× faster | Candidate density calls are 58.84 per authored cell, versus S1's 7,763.38 for the same owner plan. Legacy remains 193.25 calls/cell and 0.2855 ms p95. Stationary manager update p95 is 0.0005 ms; that idle number is separate from the active batch totals above. All 572 populated transforms match their full-scan counterparts exactly. All 572 canonical island anchor checks pass; maximum density residual is 0.035156 Core voxel density units. The existing terrain/content tests pass on both island and connector: island height difference is 0.373 cm, connector difference 0.096 cm. Capsule contacts, Blueprint carve/fill, water and atmosphere pass. No approximate anchor shortcut is used. The six-entry authored palette still produces zero placements in these 64 cells. The populated fixture is explicit synthetic coverage; it does not claim the cost of the owner's tree Blueprint logic or rendered foliage. Active totals sum worker preparation and synchronous merge/application calls over the whole batch, not one frame. Footprint suppression is disabled only for the isolated fixture, which is immediately cleared. Async HISM tree completion and rendering are not included. The earlier SurfaceWorld populated diagnostic produced 8,192 synthetic transforms with exact full/candidate agreement, but had no mesh application in that build and warm-cache ordering; its speed figures are not used as a SurfaceWorld improvement claim. ### Default identity No recipe version was bumped: all changes select exact evaluators or skip certified air. The full SurfaceWorld actor run reproduced S1's W1/W8/W16 matrix: `0cd2a1a4152ee4aa / 17775c835711e5a3 / a27224958fc27d7b / 3821fea90b134ce4` (density / mesh / payload / topology). Island assembly/recipe/plan remain `9c372e7bfb5b8310 / 5e0370d9f95f1c15 / dbbda4932378047a`. The final-source island W1/W8/W16 matrix is also exactly S1: `4dcfb37585d7d986 / 725a18374c5623de / fb345d8cb319d18b / 76f2846be8efb5f4`. The full SurfaceWorld actor pass precedes the final cost hint; the final-source focused replay checks its LOD0/1/7/8 full-versus-default hashes after that selection-only change. Core-off's separate final run proves unchanged legacy density at three probes and 12.5 cm. M2 V1/V2 five-fixture repeats, same-LOD borders, V2 MC identity and 125 doorway phases all pass. Existing doorway contour mismatch remains 22.844 cm in that fixture audit; this round does not claim a new seam solution. ### Run ledger and limits | Run | Result / limit | |---|---| | Standalone Core library builds (four iterations) | all first-attempt passes; final link-safety audit checks 220,200 symbol lines | | BuildHost UBT/UHT builds (six iterations) | all first-attempt passes; latest 62.03 s; 18 Core shims, link-safety 95,738 symbol lines; five staged asset hashes verified | | Preliminary island actor | pass, about 3m57s, 3.19 GiB peak; canonical hashes and 572 anchor checks | | Full SurfaceWorld actor | pass, about 12m15s, 3.58 GiB peak; streaming, collisions, motion, edits, geometry/anchors, W1/W8/W16 | | Island actor with new HISM fixture | exit 1, about 4m14s; landmark footprint suppression hit the fixture count assertion; field/worker/anchor gates passed | | Final island actor, cost hint and isolated HISM fixture | pass, about 3m52s, 3.03 GiB peak; W1/W8/W16, 572 exact anchors and applied instances | | Final focused SurfaceWorld tile replay | pass, about 21s, 2.70 GiB peak; 32 paired LOD0/1/7/8 keys, all hashes equal | | Final M2 V1/V2 fixtures | pass, about 17s, 2.34 GiB peak; repeats, borders, MC identity, 125 doorway phases | | Final Core-off | pass, about 14s, 2.14 GiB peak; legacy density and scale unchanged | | Final composed standalone audit | pass, 7.87s, about 64 MiB peak; all four full/candidate rows exact and controls detected | Build iterations cover initial integration, added diagnostics, active fixture application, warmed measurements, duplicate-validation removal, and the cost-hint/fixture fix. Their logs are the six `results/host_build*.log` files and four `results/core_build*.log` files. The standalone audit was replayed as those diagnostics were refined; the final composed stress also exercises XY height/cap writers at unrelated Z values. Every replay passed its field/control assertions. One actor run failed its new populated-HISM count assertion after passing field/worker/anchor gates: normal `ApplyRegion` also clears live landmark footprints. The fixture now explicitly isolates those footprints; normal application defaults to keeping them enabled. The failed log is `results/islands_hism_fixture_failed.log` (exit 1, no crash). Preliminary surface tile timings used a cold full path followed by a warm candidate path. Those numbers are discarded; the final focused replay warms both paths. The first standalone audit also overlapped compilation; it passed functional controls, but its timings are discarded. Idle replays and the final-source replay are all recorded in `results/shared_audit_ledger.txt`. An audit iteration removed duplicate plan validation from scoped island samples. All standalone field audits passed; `vswhere.exe` was not found by the installed VC setup script, but CL compiled and the audit ran successfully. A documentation-edit attempt failed on Python's default Windows encoding; it changed no files and was corrected with UTF-8/apply_patch. The first preliminary island launch used the existing launcher; I applied 12-CPU affinity during that run, then added `-corelimit=12` and 12-CPU affinity to the launcher for subsequent runs. Builds used at most eight UBT actions, or eight UBT plus four standalone compiler actions. W16 remains a logical determinism partition under the 12-CPU execution cap. Each Unreal launch checks 4 GiB free RAM and refuses another Unreal process. Every process is guarded at 8 GiB and 900 seconds. No viewer or GPU capture was launched. No run exceeded its memory/time guard, no timeout occurred, and no run returned `0xC0000142` (so its one-retry rule was never needed). Crash audit: `Saved/BuildHost/HostProject/Saved/Crashes/` still contains only `UECC-Windows-F1A3EFD5469F5DD62E68EBBACAC84376_0000` (2026-09-17). The isolated User crash root still contains only `UECC-Windows-7B23387E4235BCFEDE42BC9D637E41CB_0000` (2026-10-08). No new UECC folder exists in the host, staged plugin or isolated User crash roots. The final commandlets finished with zero errors; known missing staged `/Game/VoxelForge/Blocks/NewDataAsset` and certificate-store warnings remain. The failed fixture run logged its explicit test error and exited normally. Evidence: `results/SUMMARY.json`, `results/shared_audit_attempt_1.stdout.log`, `results/island_tile_lists.json`, `results/shared_audit_ledger.txt`, `results/surface_full_actor.log`, `results/islands_full_actor_final.log`, `results/surface_warmed_final.log`, `results/m2_fixtures_final.log` and `results/core_off_final.log`. Owner plans exported under BuildHost's isolated User Saved directory are the standalone replay inputs. No owner project/editor was opened, closed or built, no `.uasset` was edited, and no junction, symlink, commit, push or stash was created. All authored writes and build outputs stayed inside this plugin's workspace/BuildHost. ## My view of the boundary The next structural improvement should be a prepared immutable family-provider table per strate. Today the shared scope is generic, but the world and content snapshot adapters still enumerate the two concrete field families, and preparation rebuilds metadata vectors for each query. A provider could publish stable feature IDs, bounds, an optional value certificate and optional surface/support queries once, while the engine handles consumer domains, ordering, cache lifetime and instrumentation. That would also give future cave/rivers placement the same entry point without adding another content snapshot class. I have not rebuilt the architecture for that proposal in this round. Evidence required before doing it: a many-strate preparation profile showing the cost of rebuilding bounds/group summaries; separate point-evaluation and list-build allocation counts; equal full versus prepared hashes across owner plans, halos and edited epochs; a deliberately stale-provider control; and no regression in time to collision-ready terrain or peak memory. Preserve the current bounded lattice path for procedural biomes and the current cave interval engine until a measured replacement wins. A universal list of shapes would not capture those processes or their proofs. ## Files and compile spots New source files: - `Standalone/Research/WorldAssemblerM3/Round6/SharedFeatureListAudit.cpp` — standalone owner/stress audit. - `Standalone/Research/WorldAssemblerM3/Round6/BuildSharedFeatureListAudit.ps1` — guarded audit compile/run script. Modified runtime/Core sources: - `Standalone/Core/include/VoxelForgeCore/VoxelForgeCore.h` - `Standalone/Core/src/WorldAssemblerInternal.h` - `Standalone/Core/src/FloatingIslandsInternal.h` - `Standalone/Core/src/ShapeWorldInternal.h` - `Standalone/Core/src/VoxelForgeCore.cpp` - `Source/VoxelForge/Private/VoxelContentManager.cpp` - `Source/VoxelForge/Public/VoxelContentManager.h` - `Source/VoxelForgeEditor/Private/VoxelForgeExploreCommandlet.cpp` Also updated `Tools/TestVoxelForgeCoreWorldHost.ps1`, CODEMAP §3, ARCHITECTURE §8.23 and the dialogue. Likely compile spots: the public Core API/export boundary and canonical Core shim; shared scope/TLS linkage; `VoxelContentManager.h` parsing and its runtime translation unit; editor commandlet timing and fixture code. No new runtime translation unit or manifest shim is required. ## Owner note Keep Core enabled at the existing 25 cm setting. There is no new generator setting to configure. The shared engine now narrows terrain searches for both native families and skips empty space when placing island content. Terrain shapes and default hashes are preserved. The populated validation fixture measures placement without changing your decoration assets. Ready to build your project when you choose; I only build and launch the isolated plugin BuildHost.