Files
VoxelForge/Standalone/Research/WorldAssemblerM3/Linux150/REPORT.md
T
Fr0zkaandClaude Opus 5.5 9ac60d5d18 research: cave planner merge evidence (L150, measurement only)
Merges cleanly. UE start: S1 -9%, S3 +11%, S0/S2 ~+1%. 30 m/s: near coverage 44.2 -> 38.5%, far holes +0.06 pp, p99
+2%. L80 near-ready slower in 6/8 cells (up to +7.9%), whole view faster in 7/8. Sweeps 15/16 each (seed 2).
Source/: VoxelForgeCoreAdapter.cpp.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
2026-11-01 16:17:42 +01:00

7.9 KiB
Raw Blame History

Linux150 — cave planner merge evidence

Result: assembler/world merges cleanly into wip/l134-cave-planner. The planner HEAD passes 15/16 seeds for each cave layer; seed 2 retains its known shell/seam failure. Linux Unreal start and movement runs completed. L80 shows slower near-ready medians in six of eight cells, while whole-view medians are lower in seven of eight cells.

No generation code changed in L150. Branch HEAD was b8382eed; target assembler/world was eb47d722. The UE baseline project uses c743f2a, code-equivalent to the target. The planner source stamp is c6b8a100355e271ddc40eb5973569d2ff4e2ba8d9c628c72f8e0af2493f0609f; the assembler/world baseline binary stamp is 4499fb2a8a4ede7d6cbc68d1b794f104658cdaae93ed9cacbc91fe7ff3fc3621.

Evidence table

L80 used one warm-up per binary and five interleaved measured runs per cell at W8/W12 across all four owner layers. The quiet-host gate passed at load 0.50 and 99.3% CPU idle. The L137 A/A floor is ±1%. Time deltas are planner HEAD versus assembler/world; positive means slower.

UE start rows are one L121 start per stratum and build, measuring start through the full LOD0–2 set. Movement rows are medians over five interleaved L127 runs at 30 m/s (12 s moving plus 5 s dwell, eight effective tile slots). Coverage and hole figures describe the moving window. For L80, S0–S3 are Surface World, Floating Islands, Tunnel Network, and Vertical Shafts.

Measure assembler/world planner HEAD Delta / result
UE start → LOD0–2, S0 (512/448/448 tiles) 2.453159 s 2.481646 s +1.16%
UE start → LOD0–2, S1 (512/448/256 tiles) 2.424691 s 2.206180 s −9.02%
UE start → LOD0–2, S2 (513/448/384 tiles) 2.454927 s 2.477987 s +0.94%
UE start → LOD0–2, S3 (513/448/384 tiles) 2.216523 s 2.459258 s +10.95%
30 m/s near-ready moving mean 44.2432% 38.5307% −5.71 pp (−12.91% relative)
30 m/s far-hole moving mean 3.2596% 3.3208% +0.0611 pp (+1.88% relative)
30 m/s game-thread tick p99 10.7288 ms 10.9596 ms +2.15%
30 m/s median per-run worst tick 13.5996 ms 14.4242 ms +6.06%
30 m/s worst tick observed across five runs 14.9833 ms 14.6717 ms −2.08%
L80 S0 near-ready median, W8 / W12 0.737599 / 0.768684 s 0.775814 / 0.829089 s +5.18% / +7.86%
L80 S0 whole-view median, W8 / W12 1.737 / 1.705 s 1.711 / 1.705 s −1.50% / 0.00%
L80 S1 near-ready median, W8 / W12 1.006966 / 0.974332 s 1.021554 / 1.029940 s +1.45% / +5.71%
L80 S1 whole-view median, W8 / W12 1.907 / 1.812 s 1.803 / 1.803 s −5.45% / −0.50%
L80 S2 near-ready median, W8 / W12 1.044179 / 0.959096 s 1.039310 / 1.026140 s −0.47% / +6.99%
L80 S2 whole-view median, W8 / W12 1.913 / 1.751 s 1.821 / 1.733 s −4.81% / −1.03%
L80 S3 near-ready median, W8 / W12 0.875773 / 0.838977 s 0.852260 / 0.853215 s −2.68% / +1.70%
L80 S3 whole-view median, W8 / W12 1.788 / 1.687 s 1.660 / 1.605 s −7.16% / −4.86%
Tunnel Network composed sweep — 15/16 Seed 2: passages, seams, shell
Vertical Shafts composed sweep — 15/16 Seed 2: passages, seams, shell
Seed-0 capture quality 1/4 pass 4/4 pass All exports/renders completed; three baseline viewpoints have no visible mesh surface

Both moving runs reached 100% near-ready coverage and 0% far holes by dwell end (3.40 s baseline, 3.78 s HEAD). The five-run maximum tick was lower on HEAD, while its median of per-run maxima was higher.

For both sweeps, every gate other than the three seed-2 checks passed, including dispatch, route, naturalness, mouth, ripple, interior air, and negative controls. The seed-2 failure is the known interface 2–3 shell/seam failure.

Owner-world captures

Four eye-height viewpoints use the same camera coordinates for both versions. Poses come from the planner layout resolved against the owner fixture’s embedded Core plan at seed 0. The capture layout identity is cc87ee727c483039 on planner HEAD and 0589300eb07dfe06 on the baseline. The seed sweeps use the established --seed=0 regeneration path (layout identity d310515572977ebf); the captures intentionally use the owner fixture’s embedded Core plan. For the baseline, a seed override makes the older route setup fail, so the capture runner imports the saved plan without an override. The planner images pass the capture-quality gate. Three baseline images fail its image-variance threshold because the baseline mesh has no visible surface from those exact poses; export and render processes succeeded.

View assembler/world planner HEAD
Tunnel Network — route joint assembler/world route joint planner HEAD route joint
Tunnel Network — departure joint assembler/world departure joint planner HEAD departure joint
Vertical Shafts — looking down assembler/world shaft looking down planner HEAD shaft looking down
Vertical Shafts — looking up assembler/world shaft looking up planner HEAD shaft looking up

Capture source stamps, coordinates, and quality output are in captures/manifest.json. The runner is RunL150Captures.py.

Merge risks

  • Seed 2 fails the passage, seam, and shell checks in both cave-layer sweeps. Other current sweep gates pass.
  • Near-ready L80 time is above the ±1% floor in six of eight cells. S0 W8/W12 and S1 W12 have the largest regressions; whole-view time is lower in seven cells and unchanged in one.
  • During 30 m/s movement, HEAD has 12.91% lower near-ready coverage, 1.88% more far holes, 2.15% higher tick p99, and a 6.06% higher median per-run worst tick. Both builds fill near coverage and far holes during dwell.
  • Three baseline captures cannot show an exposed mesh at the corresponding underground camera positions. The planner views render and pass image quality.
  • Seed sweeps and owner-world captures both use seed 0, but use the regenerated standalone plan and embedded owner Core plan respectively; the images describe the owner-export plan path.
  • The merge adds one Unreal Source/ change for the owner’s Windows compile: Source/VoxelForge/Private/VoxelForgeCoreAdapter.cpp (5 insertions, 3 deletions; 8 changed lines).

Checks and artifacts

  • Merge check: clean in Saved/Linux/l150/merge-worktree; no unmerged paths and no merge commit. Details and hashes: merge-check.md.
  • Linux VFHostEditor Development build passed with -NoUBA -MaxParallelActions=4 (27 actions, 68.79 s). It emitted three existing deprecated RenderMeshComponent API warnings in VoxelWorld.cpp; build log.
  • L80: 80 measured runs plus warm-ups; summary and per-run logs are under Saved/Linux/l150/timing/.
  • Linux Unreal: four L121 starts per build and five interleaved L127 movement runs per build; summary and run logs are under Saved/Linux/l150/ue/.
  • Tunnel Network and Vertical Shafts sweeps: 16 seeds each; Tunnel Network summary, Vertical Shafts summary, and per-seed logs under Saved/Linux/l150/seeds/.
  • The fast tier was not rerun in L150. L147 passed it on the same standalone source stamp (c6b8a100…f0609f); no generation source changed here. A Windows UE build was not run.