Files
VoxelForge/CURRENT-STATE.md
T
Fr0zkaandClaude Opus 5.5 318c5cf4f2 core: Vertical Shafts on the shared Core cave planner (L139, v237; 15/16 seeds)
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
2026-11-01 05:34:00 +01:00

10 KiB
Raw Blame History

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::bUseVoxelForgeCore remains opt-in and defaults to false; 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 remains compiled-analytic/FloatingIslands; S2 TunnelNetwork binds Core.Caves.PrimitiveField; and the L139 fast-tier report binds S3 VerticalShafts to Core.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=1 by 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=1 is 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 example bash Standalone/BuildLinux.sh --compiler=clang++-19 --variant=l139-clang --fp-contract=off --jobs=4. The script pins CPUs 0–11 and applies prlimit --as=6442450944 itself.
  • 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 under Saved/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 under Standalone/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. See RunL139FinalTiming.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 without prlimit.

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.