Unsupported passage runs > 12.5 m become a solid relief-bearing column (ceiling/island to ground, flared base) with the helix inside, for every recipe; FI anchor uses the same path. All 4 styles x both recipes: 0/0/0, 0 open-air, naturalness pass; no-long-bridge audit (L26 fails it). Deterministic, Clang = GCC. Look approved; cost +35% SW / +19% FI blocks merge (L28). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CSFYgsdW8ejZSyiMf4qRSX
12 KiB
VoxelForge L27 — passage voids inside rock columns
Owner summary
The SurfaceWorld passage now drops from the ceiling (about −138 to −143 m) to terrain near −505 m inside one continuous, relief-bearing rock column. Its helix is cut inside the column; the ~2 km route no longer crosses the open sky as a bridge. FloatingIslands uses the same field and planner path: the passage descends inside a column from its island to the bedrock floor. Styles 1 and 3 have a second, smaller cap crossing, so they get a second column. The FI style-0 anchor stays at the L25 axis and remains connected. Its shared column is slimmer (11.25 m nominal radius vs L25's 13.25 m) with a larger measured wall margin (3.25 m vs 1.938 m), visible in the new exterior capture.
All four styles in both recipes pass on Clang and GCC: 0 blocked, 0 unsupported, 0 grade failures, 0 open-air violations, and naturalness passes. The new no-long-bridge audit detects the L26 SurfaceWorld bridge as its negative control.
Column rule and size
The shared planner samples native support every 0.5 m. A contiguous unsupported route run longer than 12.5 m becomes one column; this is 2.5 times the former 5 m support-thickness limit. A shorter span is allowed only while grounded. The column is a solid signed-distance union in the shared composition field, so terrain queries, collision and meshes all see the same rock. The recipe still chooses passage style; the helix applies inside a column and that style continues outside it.
The minimum planned outer radius is maximum route offset + bore radius + 2 m; the nominal profile adds 1.25 m. The base flares by up to 6 m and the ceiling end by up to 2 m; bounds extend 6 m below and 5 m above the unsupported run to overlap the native rock. Measured wall margin is 1.75 m minimum in SW and 3.0 m minimum in FI, above the 1.5 m requirement. SW columns span about 363–368 m vertically and have nominal radii 19.744–27.027 m. FI main columns span about 53–57 m with nominal radii 9.251–12.746 m; styles 1 and 3 also have ~14 m cap columns.
| Recipe / style | Unsupported route run(s) | Column nominal radius; audited profile radius | Minimum wall |
|---|---|---|---|
| SW 0 Straight | 2,004.815 m; z −142.687 to −505.109 m | 27.027 m; 25.527–27.777 m | 1.75 m |
| SW 1 Worm | 1,946.355 m; z −138.668 to −505.109 m | 24.187 m; 22.687–24.937 m | 1.75 m |
| SW 2 Spiral | 1,957.892 m; z −137.967 to −505.138 m | 19.744 m; 18.244–20.744 m | 1.75 m |
| SW 3 Cascading | 1,981.103 m; z −137.484 to −505.112 m | 22.791 m; 21.291–23.541 m | 1.75 m |
| FI 0 Straight | 249.982 m; z −65.846 to −122.390 m | 11.250 m; 11.250–12.500 m | 3.25 m |
| FI 1 Worm | 17.042 m and 249.965 m; z −61.574 to −122.416 m | 12.719 m and 12.746 m; 12.968–16.468 m and 12.746–13.996 m | 3.25 m |
| FI 2 Spiral | 244.479 m; z −68.891 to −122.382 m | 9.251 m; 9.000–10.500 m | 3.00 m |
| FI 3 Cascading | 17.955 m and 231.814 m; z −65.805 to −122.436 m | 11.250 m each; 11.250–14.000 m and 11.250–12.500 m | 3.25 m |
The helix path measurements are length / turns / mean path radius / vertical pitch. SW styles 0–3 measure 2,015.1 m / 16.88 / 18.96 m / 21.00 m, 1,956.1 / 20.69 / 14.99 / 17.32 m, 1,963.0 / 61.62 / 5.02 / 5.81 m, and 1,987.2 / 21.63 / 14.50 / 16.59 m. FI styles 0–3 measure 254.0 m / 8.00 / 5.00 m / 5.78 m, 254.0 / 7.99 / 4.97 / 5.72 m, 246.9 / 12.95 / 3.00 / 3.31 m, and 235.5 / 7.94 / 4.50 / 5.37 m. FI styles 1 and 3 also have short cap descents: respectively 22.1 m / 0.59 turns / 5.70 m radius / 6.71 m pitch, and 22.2 m / 0.75 turns / 4.54 m radius / 5.37 m pitch. Main helix grades are about 10.0–10.5°; the walkability audit reports zero grade failures.
Audits
Clang and GCC each ran all eight recipe/style combinations. Every row has 0 blocked capsule samples, 0 unsupported samples, 0 grade failures, 0 open-air violations, connected column ends (2/2), 128/128 route-support samples for each main crossing, and passing walkability. The naturalness wall-relief audit measured 0.509–0.806 m against the 0.200 m minimum; flat runs were 0 m against the 8 m limit. The strict V3 layout validator accepted with zero issues and rejected its malformed controls 9/9.
The no-long-bridge threshold is 12.5 m. SW has 0 m uncolumned span in all styles. FI's longest
short grounded span is 4.464 m (style 0); every other span is shorter. The L26 SW bridge control
(1,946–2,005 m unsupported) was detected in all four SW styles. The L24 ungated-support and L23
smooth-wall naturalness controls were detected in all eight recipe/style rows. The 16 final matrix logs are
Saved/Linux/linux27-final-audit-{surface-world,floating-islands}-style{0,1,2,3}-{clang,gcc}.log.
Captures
All five JPEGs are 16:9 and below 300 KB in captures/.
| Capture | View | Size | SHA-256 |
|---|---|---|---|
| sw-column-wide.jpg | Wide side section: ceiling, full column and local ground; 1280×720 | 27 KB | 63e621794a48747c5892b74d3313da1df93e95bc1fb5e23c511211f992023acf |
| sw-column-base.jpg | Close base flare into terrain; 1280×720 | 27 KB | c4dbf7bcbd4962cf0e2c4f567cceec798deac8686a85cd02716ebd3c21db43bf |
| sw-column-top.jpg | Close ceiling blend and upper helix; 1280×720 | 30 KB | fe83fbb0bf90ea51696f9f63129738eb55812c01bbbec65e7430b8a7e6b512ed |
| sw-column-cutaway.jpg | Full-height cutaway through the helix; 1920×1080 | 60 KB | 8233e80035aac69dec7fd6d2e77a46e5798f627aefe216671d884bf84b339c40 |
| fi-anchor-pillar.jpg | L27 FI anchor pillar from outside; 1280×720 | 21 KB | 5bb8ad6a0729818577764596d3fa9ccff9621b31217ee9d8e34401098e6b4ef6 |
Cost, determinism and compatibility
The whole-view timing comparison alternated two L24 and two L27 Clang W12 runs per recipe. No
prebuilt L24 executable was present, so I rebuilt it from local commit cb9236c with Clang 19 and
FP contraction off under Saved/Linux/l24-source/bin/linux/.
| Recipe | L24 whole-view seconds, two runs (mean) | L27 whole-view seconds, two runs (mean) | Change | Tiles, both versions |
|---|---|---|---|---|
| SurfaceWorld | 1.644 / 1.663 (1.654) | 2.207 / 2.252 (2.230) | +0.576 s (+34.8%) | 2,370 total; 960 full detail |
| Floating Islands | 15.907 / 16.848 (16.378) | 19.403 / 19.649 (19.526) | +3.149 s (+19.2%) | 2,370 total; 960 full detail |
No tiles were added. The L24 and L27 per-run logs are Saved/Linux/linux27-cost-interleaved-*.log.
The L25 whole-view command produced identical hashes across Clang/GCC and W1/W8/W12. Hash order is density / mesh / payload / topology:
| Recipe | L27 whole-view hash |
|---|---|
| SurfaceWorld | 117547e5e18c6847 / db5fa276315ff2d4 / b4e9d01d70413fea / 03caf881fa047f1c |
| Floating Islands | 70ab5bc87dd174d2 / 6f357f9085a496f0 / 08ce7d4e036da65a / eb5eef04a5cb85d9 |
Full-detail hashes also match across the matrix: SW ace56c8f205238ad / a9c603a1248de6b8 / ea55f1f4fcc6a894 / 5ea7bc78a1b678ae; FI ed550e0c8b182695 / 0e410a8e80a3e7f7 / 0751926f0c67d8a4 / f01208bc2f7841ec. Exact-query hashes (density / unclamped / detail / collision)
are SW c949c4df2ce6f9d9 / c949c4df2ce6f9d9 / 114c501e2d830d94 / e6011d3a248d4849 and FI
7b7c50ac24ccadcc / 7b7c50ac24ccadcc / efcba20c0c70c415 / e604823a249029bf.
The 24 m crossing processed 314 moving tiles and matched across both compilers:
| Recipe | Moving-tile hash: density / mesh / payload / topology |
|---|---|
| SurfaceWorld | fe83368d746bf44d / d4379e0f86fa5780 / 0d1d6659a251dcaf / 73940f21b0fdaf14 |
| Floating Islands | e3d0ea833bca4215 / f4b27f4bd1adbb07 / 8aedcdc86e5f21a2 / 323f880d952306e9 |
L13 parity passed for both compilers and recipes: 8 page pairs, 14 higher-LOD pairs, one edit pair, 782,026 exact-query samples, zero mismatches. At a 10 km off-route view, L9 proofs checked 6,896 blocks / 9,178,576 samples with zero violations on both compilers. SW had 1,296 fallbacks and no unknown blocks; FI had 18,704 fallbacks, 17,408 unknown blocks and zero violations.
At a 100 km SW view, L26 and L27 were bit-identical on Clang and GCC: full-detail hash
3148a6af10901e4d / 7025b8fc8d4636cd / ca0a8081022340bf / 1c49e72a6636ae99, whole-view hash
a212129dc5f2bfcf / e9b3980b69c789bf / 785a394605885d1f / 8f7e3a55bf429175, exact-query hash
482500abbe835b11 / c4948c7179963784 / efcba20c0c70c415 / 137e8f6c0b03a624; LOD0–8 also match.
At 10 km, the whole-view hash changes because the new column enters LOD8; full detail, exact queries
and LOD0–7 remain identical.
Headless binary SHA-256: Clang 81ae5a03765eb3937f53c10e8f8b82cf1b38d3e3b6240511a57e5d66d99a9755,
GCC 30c8927eee3c8c2ec0e7ff72228872435d19527719bedbb2399e6dcaff4819a4. Rebuilt L24 Clang
binary: 29bb68ed425b4770b1b4ddcc68996c5d680665014e7ab7ffb3c307523015cf0b.
Changes and invariants
The deterministic crossing planner and field composition are shared in
Standalone/Core/src/ShapeWorldInternal.h. VoxelForgeCore.h/.cpp expose the void-crossing audit;
StreamBenchmarkPipeline.h adds column, open-air and no-long-bridge audits with the L26 negative
control. FloatingIslandsInternal.h retires the old special-case root for geometry 8, while
OwnerWorldLoader.h and WorldAssemblyPrototype.h use the shared crossing plan and version.
Geometry/evaluator versions are now 8/14; resolved-layout schema V3 is unchanged. The only Unreal
edit is the matching geometry-version bump in Source/VoxelForge/Private/VoxelForgeCoreAdapter.cpp;
Unreal was not available to compile here.
L4 lazy caches, L7 shared cache, L9/L12 proofs, L11 readiness handling, L13 route parity, L18/L19
ceilings and L21/L22 layout behavior remain unchanged. No async path was added.
Failed and retried runs
- Two temporary Clang backtrace builds failed on
signalnamespace qualification; corrected before the instrumentation was removed. The first SW style-0 audit segfaulted because the planner read shared-field intervals before they were built; build order was corrected. An early SW style-1 iteration had 3,816 open-air violations and 869 blocked samples at the lower mouth; the carve guard fixed it. - Early FI audit revisions mis-tagged segments and reported false open-air spans; corrected to use the actual route ranges and physical field. FI style 2 briefly had two unsupported samples; the seam extension fixed them. A 3 m cap left 13 FI style-0 open-air samples; the 5 m cap cleared them. A relaxed tread guard introduced one SW style-1 blocked sample and was reverted.
- A layout-only invocation without the required streaming flags exited 2. During capture setup,
--hashand--data=were rejected; the correct switches are--stream-hashand a positional data path. Those were corrected. A helix-metrics helper first failed while formatting a list and was rerun successfully. - The first close SW export at max clip level 1 hit the 160-million-node interval safety bound. Two finer endpoint exports then grew past 1.2 GB without a final pipeline summary and were stopped; the already-complete full-column cutaway mesh supplied the final base/top views. The first wide camera hid the base; a cut-plane side view fixed it. The first FI close camera cropped the endpoints and was moved back.
- The first FI max-clip-level-3 export grew past 1.6 GB without a summary and was stopped. The
max-clip-level-8 retry completed in 21.7 s with a 104 MB mesh. The final capture is from that
L27 mesh. All rejected, stopped and successful export logs are in
Saved/Linux/.
No run exceeded 30 minutes or remained stuck for 15 minutes. Only the requested small JPEGs and
this report were written under Standalone/Research/WorldAssemblerM3/Linux27/; exports and logs
remain in Saved/Linux/. The pre-existing untracked Linux18/exports/ directory was left alone.
No commit, push or stash was made.
Orchestrator review (Claude) — side branch
- Look approved by me:
sw-column-wide.jpgandsw-column-cutaway.jpgshow one slender ceiling-to-ground column with the helix inside;sw-column-base.jpgshows the base meeting the terrain with a natural crack exit;fi-anchor-pillar.jpgshows a textured pillar with a flared base under the island. - Blocking merge: cost. Whole view +34.8% SW (1.654 → 2.230 s) and +19.2% FI with no new tiles. A local
feature must cost locally. L28: bound column/helix evaluation spatially (feature lists / AABB culling), then
merge
wip/l25-helixintoassembler/world.