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
7.9 KiB
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 | ![]() |
![]() |
| Tunnel Network — departure joint | ![]() |
![]() |
| Vertical Shafts — looking down | ![]() |
![]() |
| Vertical Shafts — 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
VFHostEditorDevelopment build passed with-NoUBA -MaxParallelActions=4(27 actions, 68.79 s). It emitted three existing deprecated RenderMeshComponent API warnings inVoxelWorld.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.







