Files
Fr0zkaandClaude Opus 5.5 07b3fe2852 wip(L27, side branch): passages cross open voids inside shared natural rock columns
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
2026-10-21 04:14:14 +02:00

12 KiB
Raw Permalink Blame History

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 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.