Shaft mode reuses PlanResolvedCavernNetworkV1 with a capped full-height cylinder primitive (shapeKind=1), ledges, access bores and cross links; 11 VerticalShaftParams fields mapped. Basal law: arrival 2-3 to a walkable terminal landing; drops/climbs stay reporting tiers. Seed 2 fails shell/seams at the 2-3 arrival mouth (3 variants tried, stopped per AGENTS.md). Whole view faster than assembler/world in 8/8 cells; near-ready slower in 7/8. Source/: VoxelForgeCoreAdapter.cpp. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
10 KiB
VoxelForge current state
As of 2026-11-01. L139 is being developed on wip/l134-cave-planner. Current-state claims below point to their code or measured report; L139's Vertical Shafts implementation has not passed composed acceptance and is not promoted.
What ships today
- Core: evaluator version 237 in the L139 worktree. Unreal's
AVoxelWorld::bUseVoxelForgeCoreremains opt-in and defaults tofalse; the legacy generator remains the default runtime path. Core version, runtime switch, L139 report. - Verified owner4 generator dispatch: S0 SurfaceWorld binds
SurfaceWorld-native; S1 FloatingIslands remainscompiled-analytic/FloatingIslands; S2 TunnelNetwork bindsCore.Caves.PrimitiveField; and the L139 fast-tier report binds S3 VerticalShafts toCore.Caves.PrimitiveField/Caves-native. This proves dispatch, not the full shaft gate: the composed 16-seed sweep fails the passage-shell audit at seed 2. Dispatch, adapter recipe checks, L139 report. - Passages: continuous smooth swept tubes with a continuous floor profile. L125 stamps conservative route slabs and outside sentinels into the tile cache; exact route geometry is still evaluated. All 21,425 route samples passed the open-air walk check; the nine-station floor probe's maximum root offset was 7.884 mm. L130 sets the shared influence reach to 1.0533 m (0.75 m shell + 0.21 m relief + 0.50 m smooth-max support / 6 + 0.01 m margin), converted once from metres to Core voxels for the proof, feature, fallback, and off-grid bounds. L125, L130.
- Streaming: arrival uses a bounded startup apply burst:
voxel.StreamingStartupApplyBoost=1by default, up to 24 visible meshes or 14 ms per frame for at most 30 seconds, until the initial desired set and walkable ring are ready.voxel.StreamingFarApplySupplement=1is also default-on: after the normal visible apply cap, at most one far result applies when under half the apply-time budget; it is inactive during the startup burst. Dynamic near reserve defaults on; coarse-first remains off; the legacy pending-result cap defaults off. The far-apply lane is Unreal-only. CVar source, L121 report, architecture. - Determinism: the L139 Vertical Shafts plan and field match across Clang/GCC at W1/W8/W12 (six cases); L131's unchanged-output comparison still covers the earlier owner4 SW/FI/TN/VS views and canonical owner4/owner2 recipe matrix. Windows determinism is unverified. L139 checks, L131 checks, canonical hashes.
Current performance references
Headless medians in seconds, five interleaved L80-style measurements per version in each cell. Near-ready means the complete LOD0–2 set; whole-view is the full requested view. Values below are the latest complete L131 measurements; L139 characterization is in the L139 report and timing summary. The paired pre-cleanup comparison is in the L131 report and timing summary.
| Stratum | Near-ready W8 / W12 | Whole-view W8 / W12 |
|---|---|---|
| S0 | 0.804 / 0.848 | 1.811 / 1.832 |
| S1 | 1.014 / 1.002 | 1.993 / 1.886 |
| S2 | 1.060 / 1.012 | 1.960 / 1.865 |
| S3 | 0.917 / 0.884 | 1.887 / 1.782 |
Across 40 paired runs per metric, the mean relative change from pre-cleanup L130 was −0.22% near-ready (95% CI −1.02% to +0.57%) and −0.29% whole-view (−1.04% to +0.46%); neither indicates a measurable slowdown. The machine gate was load 0.81 and 99.2% idle. L80 protocol, runner and raw runs.
The latest recorded Linux Unreal start-to-LOD0–2 values are L127's one run per stratum: S0 2.456 s, S1 2.231 s, S2 2.514 s, S3 2.221 s. L130 did not rerun UE startup or movement. Five L127 runs at 30 m/s, 12 s moving plus 5 s dwell, had median moving near coverage 40.22%, far holes 3.46%, tick p99 10.80 ms, and worst tick 13.27 ms. After stopping, near coverage reached 100% and far holes reached 0%. These are the latest UE references, not v227 UE measurements. L127 report, L127 movement summary, L127 start summaries.
Open gaps
- Multiplayer world lifecycle is unfinished: seed/layout replication, authoritative modification RPCs, and serialized diff replay for late join are still open. See ARCHITECTURE §9.5 and §9.7.
- L139 Vertical Shafts is not accepted: the composed audit's seed 2 fails the incoming passage shell after three geometry variants failed that same gate. L80 characterization and the Linux host build passed, but neither changes the composed acceptance result. See L139 report.
- Determinism has not been verified on Windows. Linux Clang/GCC agreement does not establish MSVC agreement.
- NullRHI measures residency and apply timing, not the first presented pixel or rendered enclosure. L127 also found four low-contrast views among 23 otherwise verified captures. L121, L127.
- UE startup/movement numbers above predate L130's v227 reach change; there is no L130/L131 UE movement comparison.
How to verify
- Build standalone Clang or GCC with
Standalone/BuildLinux.sh, for examplebash Standalone/BuildLinux.sh --compiler=clang++-19 --variant=l139-clang --fp-contract=off --jobs=4. The script pins CPUs 0–11 and appliesprlimit --as=6442450944itself. - Fast tier:
python3 Standalone/Tools/verify/verify.py fast --out Saved/Linux/l139 --overall-timeout 1740. It includes the four-strate owner density-dispatch report; per-run logs and the summary stay underSaved/Linux/l139. - The L139 v237 canonical Surface World and Floating Islands owner-hash baselines are in
Standalone/Tools/verify/baselines/owner-hash/canonical/; both values match v236. L131 also provides reproducible pre-cleanup identity matrices for owner4 tile hashes and owner4/owner2 canonical hashes underStandalone/Research/WorldAssemblerM3/Linux131/. - Timing follows L80: quiet machine, no overlapping build, one warm-up per version, five interleaved runs per stratum and worker count, W8/W12. The L139 run recorded the L137 A/A noise floor of ±1%. Each headless run uses
taskset -c 0-11,prlimit --as=6442450944, and a 1,740 s timeout. SeeRunL139FinalTiming.py. - Linux host build:
/home/jahni/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh VFHostEditor Linux Development -Project=/home/jahni/VFHost/VFHost.uproject -NoUBA -MaxParallelActions=4 -Log=/home/jahni/VoxelM/Plugins/VoxelForge/Saved/Linux/l139/ubt.log. Run Unreal withoutprlimit.
Closed experiments
These rejected speed/streaming proposals stay closed unless new evidence changes their measured failure. Reports and surviving patches are linked in the L131 inventory.
| Line | Result |
|---|---|
| L116 tunnel chord bound and z cache | Pair count fell 20.8%, but stayed 1.96× L109 and readiness was 15–30% slower. Patch: chord-bound-zcolumn-not-merged.patch, commit 89504ec; see report. |
| L118 pair pruning / deferred floor work | Pruned 17–18% of candidate pairs but remained 17.2–25.7% behind L109 near-ready. Report; patch: l118-designs.patch. |
| L126 floor-call filters | Cut floor calls 20–23% without reducing pair counts; all eight cells missed L109. Candidate source was restored and no standalone patch was kept; see report and commit 01a5094. |
| L128 half-open slab ownership | Ownership audit passed, but readiness was 14.8–28.0% behind L109 and moving coverage dropped. Report and patch l128-slab-ownership.patch are in archived commit 7022d02. |
| L129 2 m physical reach | v225's metre/Core-voxel bounds mismatch made the correctly bounded candidate do more work; it was slower and failed UE movement gates. Report and patch l129-reach-2m.patch are in archived commit 0d1140c. |
| L120 priority split / extra worker slots | Neither met coverage and tick gates; 10 slots reached a 16.67 ms worst tick against 15.43 ms baseline. Report; no production patch retained. |
| L122 admission relaxation | Early admission missed p99 or far-hole gates; no behavior retained. Report; patch: l122-trace.patch. |
| L123 lookahead / completion gate | Lookahead failed p99 and worsened near/far coverage; queue-only also failed p99. Report; patch: l123-queue-lookahead.patch. |
| L124 early LOD0 pages | Optimistic gain stayed below 100 ms except negative cases; no publication/scheduling implementation was made. Report. |