# 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](captures/sw-column-wide.jpg) | Wide side section: ceiling, full column and local ground; 1280×720 | 27 KB | `63e621794a48747c5892b74d3313da1df93e95bc1fb5e23c511211f992023acf` | | [sw-column-base.jpg](captures/sw-column-base.jpg) | Close base flare into terrain; 1280×720 | 27 KB | `c4dbf7bcbd4962cf0e2c4f567cceec798deac8686a85cd02716ebd3c21db43bf` | | [sw-column-top.jpg](captures/sw-column-top.jpg) | Close ceiling blend and upper helix; 1280×720 | 30 KB | `fe83fbb0bf90ea51696f9f63129738eb55812c01bbbec65e7430b8a7e6b512ed` | | [sw-column-cutaway.jpg](captures/sw-column-cutaway.jpg) | Full-height cutaway through the helix; 1920×1080 | 60 KB | `8233e80035aac69dec7fd6d2e77a46e5798f627aefe216671d884bf84b339c40` | | [fi-anchor-pillar.jpg](captures/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 `signal` namespace 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, `--hash` and `--data=` were rejected; the correct switches are `--stream-hash` and 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.jpg` and `sw-column-cutaway.jpg` show one slender ceiling-to-ground column with the helix inside; `sw-column-base.jpg` shows the base meeting the terrain with a natural crack exit; `fi-anchor-pillar.jpg` shows 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-helix` into `assembler/world`.