Editor-only, default off (voxel.ResearchRedefinedDensityField). The redefined field is a seeded, periodic cross-corridor pattern per strate plus the authored passages, landings and a shaft tree, with four value-noise detail bands at every near-surface 25 cm sample and sound 8^3 brick proofs. 259^3 ring, six workers: 308 ms median (467 ms without skips) vs 8.9 s for the live field. Detail, boundary-artefact, determinism (1 vs 6 workers, two runs) and bound-audit checks pass. Why it is not a pass: the slices show a mostly-solid field with a few straight corridors, where the owner's world is mostly open space; rooms, the tunnel network, composer recipes and archetypes are gone. Much of the speed comes from 60% of bricks being proven solid in that simpler world. What it does show: detail at full resolution plus brick skipping costs ~80-130 ns/sample; the cost of the live field is how rooms/tunnels/passages are represented, not the detail or the lattice. The two walkability tests were redirected to the research field in the working tree; that change is NOT committed (saved as scratchpad step2d-test-redirect.patch) so they keep testing the live world. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
8.2 KiB
Rebuild step 2d research report
Date: 2026-09-30
Branch: rebuild/step2d-redefined
Scope: Plugins/VoxelForge
Result
The editor-only research field passes the 259³, 25 cm ring target on six workers. Its final median is 308.177 ms across three runs (295.325–317.807 ms), below both the 600 ms step-2 bar and the 350 ms step-3 target. The old field measured 8,900.965 ms median on the same ring. Preparation, including the 135.528 ms world setup, is reported separately and excluded from the ring timings.
The six-worker driver claims contiguous batches of 16 bricks dynamically. This balances dense surface work against uniform interiors without changing evaluation order within a brick or any sample value.
The old and new density fields intentionally differ. The new evaluator remains disabled by
default; the live field is still selected unless an editor research test explicitly enables
voxel.ResearchRedefinedDensityField.
Field definition
Each strate gets a deterministic, seed-offset periodic cross-corridor signed field. Rounded landing chambers, approaches, and a deterministic landing-to-hub bridge join those passages. Authored passage carving and floor geometry remain active. The VerticalShafts strate adds a seeded shaft tree and a continuous 48-voxel cavern horizon to connect its authored mouths.
Four continuous value-noise bands use periods of 8, 4, 2, and 1 lattice samples, with total absolute amplitude bounded by 5.25 density units. No coarse density field is interpolated onto the lattice: every sample in a brick that may contain the zero set evaluates the full field and all four detail bands. Research mode also declines the live tile classifier's early-out so its mesh cannot be culled using bounds for the old field.
Timing
All rows use 17,373,979 samples, a 259³ window at origin (-129,-129,-481), stride 1, spacing
25 cm, and six observed workers unless noted.
| Field and path | Wall time | Worker CPU | CPU/sample | Bricks skipped | Samples skipped | Geometry evaluations/sample |
|---|---|---|---|---|---|---|
| Existing live field, six-worker median (range 8,890.120–8,923.020 ms) | 8,900.965 ms | 37.70 s | 2,170.09 ns | 0% | 0% | 6.734 |
| Redefined field, all points evaluated, six workers | 467.212 ms | 2.313 s | 133.10 ns | 0% | 0% | 1.000 |
| Redefined field, sound 8³ proofs, six-worker median (range 295.325–317.807 ms) | 308.177 ms | 1.41 s | 80.94 ns | 60.54% | 63.06% | 0.371 |
The optimized pass skipped 23,794 of 39,304 bricks and wrote uniform values to 10,956,496 proven samples. It evaluated full density at the remaining 6,417,483 samples. The 0.371 new geometry figure counts a full density evaluation or brick macro proof against every ring point; the old path performed about 6.734 room/tunnel/passage primitive evaluations per point. Each evaluated new-field point computes four noise bands; averaged across the whole ring, including proved skips, this is 1.477 noise-band evaluations per sample.
The final run's accumulated worker-phase timers were 1.79 s for full density evaluation, 0.04 s for uniform fills, and 0.01 s for brick proofs. Those phase timers sum work across workers, so they are not disjoint wall-time slices. The longest worker took 307.76 ms; measured parallel overhead after that was 0.42 ms. The remaining wall time is in full-detail evaluation of the 6.42 million nonuniform samples.
Detail, bounds, and boundaries
The roughness metric is six-neighbor Laplacian RMS over samples within 12 density units of the surface, measured on the shared ring. The new field has fewer surface-band samples because its topology is different (3,116,658 versus 15,515,231); on those bands its lag-1 RMS is 8.978 versus 6.248 for the old field, and lag-2 RMS is 9.169 versus 8.646. A deliberately smoothed new-field control (detail scale 0) falls to 1.315 and 1.933. In the same selected 64³ mesh region, triangle counts were 180 old, 5,067 new, and 1,902 smoothed. The metric and mesh both detected the smoothing control. The measured detail batch also matched direct evaluation exactly at 8,488 samples.
For the actual scale-1 field, 186 correctly skipped bricks were audited across 165,390 final field samples including the marching-cubes halo; there were zero sign violations. The bound includes the full 5.25 detail supremum, the macro Lipschitz bound, and a floating-point margin; edits, passage bounds, and chunk/strate boundaries decline the proof. A negative control that classified with detail scale 0 and checked the supported scale-4 field found 35,847 wrong-sign samples across 26,572 claimed bricks, so the audit detects an undersized detail bound.
Near-surface gradient-jump RMS was 3.420 at 8³ brick boundaries versus 8.694 in brick interiors, 3.423 at chunk boundaries, and 3.225 at 128-sample macro-cell boundaries versus 10.036 in those cell interiors. These checks found no boundary spike consistent with stair-stepping. The field is analytic and periodic across those boundaries; the brick classifier only replaces proven uniform interiors.
Determinism and functional checks
The six-worker output matched on two independent runs and matched the one-worker output:
- Quantized hash:
7dec3f2d65781237 - Raw-float hash:
b50465c1eaa85921
The required StrateConnectivity and StrateConnectivityRefinement automation tests passed in
step2d_functional_22. The fitted VerticalShafts audit reported 16/16 routes directly confirmed
at step 2, zero endpoint snaps, and no exact step-1 fallback. Its 16-seed shaft-tree audit had
0/10,372 orphan paths and passed its order-independence check. The bounded retry setting in this
test is 128 so the richer full-detail field can reject more coarse false edges before accepting
a path.
PassageLandsInOpenSpace passed in step2d_functional_23 for its seven-passage fixture.
RedefinedFieldTraversalSeeds passed in step2d_functional_24: over three seeds, 21 authored
passage landings bracketed open air and 18 arrival-to-exit walking routes were checked; six
routes used a resolved coarse endpoint only after a full-density segment check.
Slices
Each image places the old field on the left and the redefined field on the right. Light is air, dark is solid, and cyan marks the near-zero surface.
- Horizontal slice through the ring center
- Vertical slice at Y=0
- Vertical slice at X=0
- Vertical slice through an authored passage
Machine-readable measurements are in step2d_report.json.
Scaling to 12.5 cm and compile risk
At 12.5 cm, double macro lengths and broad/medium noise periods in lattice units to preserve their world-space shape: the current noise periods 8/4/2/1 become 16/8/4/2 samples. Keep or add a 1-sample fine band so detail stays at least as rich as the 25 cm version. For a fixed world region, the lattice grows 8×, while surface-intersecting 8³ bricks should grow closer to 4× (surface area); remaining bricks still need only a cheap final-field sign proof and density writes. This scaling model is reasoned from the geometry and has not yet been timed at 12.5 cm.
The UE 5.7 Win64 Development build passed with -ForceHeaderGeneration and
-MaxParallelActions=4. No UCLASS/UPROPERTY layout changed, so no generated-class layout risk
was introduced. The sensitive code is the locally bounded landing-floor derivative and the
supremum used by TryClassifyBrick; future field terms must update those bounds and keep the
proof audit. The live path and ARCHITECTURE §8.10 were left unchanged when research mode is off.
No .uasset file was edited. Nothing was committed, pushed, or stashed.
See the exhaustive launch ledger for every benchmark, test run, failure, and prelaunch rejection.