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
This commit is contained in:
1 parent
fa4417aad0
commit
318c5cf4f2
31 files changed
+1719
-106
No files matched your search
+43
-4
@@ -2299,16 +2299,55 @@ results; the code path is not promoted to legacy Maze/VerticalShafts generation.
|
||||
rooms, or tunnels. The Unreal adapter preserves the established passage planner, then resolves
|
||||
authored stamps and cavern graph records, then finalizes the layout. Stable names are required and
|
||||
are scoped by strate in Core; landmarks may target a stamp, room, or tunnel by that stable name.
|
||||
Core profile heightfields are restricted to SurfaceWorld. Native caves require the TunnelNetwork or
|
||||
Underwater archetype; native lattice requires Maze or VerticalShafts. Core recipe/version fields
|
||||
enter the resolved layout identity when selected. An imported manifest cannot be mixed with a
|
||||
per-strate profiled heightfield.
|
||||
Core profile heightfields are restricted to SurfaceWorld. Native caves require the TunnelNetwork,
|
||||
Underwater, or VerticalShafts archetype; native lattice requires Maze or VerticalShafts. Core
|
||||
recipe/version fields enter the resolved layout identity when selected. An imported manifest cannot
|
||||
be mixed with a per-strate profiled heightfield.
|
||||
|
||||
The checked-out Core API contains stamp vocabularies V1, V2, and V3. Unreal uses V1 for the original
|
||||
stamp kinds and V3 for monolith/platform motifs, then combines and strictly validates the result.
|
||||
Research17 names V2, but the source API and motif vocabulary require V3; source was followed.
|
||||
Research27 water remains out of scope for U1.
|
||||
|
||||
### 8.56 Native Vertical Shafts graph field — World Assembler M3 L139
|
||||
|
||||
Vertical Shafts uses the same `PlanResolvedCavernNetworkV1` and `Core.Caves.PrimitiveField` as
|
||||
Tunnel Network. There is no separate shaft planner. The existing room/tunnel shapes do not express
|
||||
a capped bore spanning the strate height, so the shared cave field gains a shaft-cylinder record
|
||||
kind; resolved records then add access tunnels, shaft cross-connects, and internal ledges.
|
||||
`Core.Lattice.PrimitiveField` is not used: its L58 VerticalShafts route read as a corkscrew, so it
|
||||
does not satisfy this archetype's open-shaft identity.
|
||||
|
||||
The basal owner strate has an arrival mouth from passage 2–3 and deliberately has no departure
|
||||
mouth. Here the primordial law's route is the arrival mouth to a walkable terminal landing above the
|
||||
bedrock seal. The shared planner extends its walk-only spine to that terminal with the same grade
|
||||
limit used for a two-mouth cave; it does not invent a second passage. Route landings and connectors
|
||||
are built as part of the graph. Shaft bores and their ledges are a separate exploration tier: an
|
||||
open vertical drop or a climb between ledges is not walk-only traversal. Climb and mine remain
|
||||
reporting tiers; they never relax the walk-only guarantee.
|
||||
|
||||
`FVerticalShaftParams` mapping:
|
||||
|
||||
| Field | Core behavior |
|
||||
|---|---|
|
||||
| `ShaftSpacing` | Planner room spacing, converting owner voxels to integer micrometres. |
|
||||
| `ShaftDensity` | `roomDensityQ16`; seeds shaft placement, with the route's initial shaft guaranteed when nonzero. |
|
||||
| `ShaftMinRadius`, `ShaftMaxRadius` | Minimum and maximum shaft radii. |
|
||||
| `CrossConnectChance` | `tunnelDensityQ16` for cross-shaft links; generic cave branches are disabled in shaft mode. |
|
||||
| `ConnectorRadius` | Fixed minimum/maximum radius for access and connector bores. |
|
||||
| `LedgeSpacing`, `LedgeDepth` | Shaft shelf spacing and intrusion depth; zero spacing disables ledges, while zero depth leaves them nonintrusive. |
|
||||
| `SurfaceRoughness` | Shaft-wall roughness amplitude. Frequency is derived as `max(0.5 m, 4 owner voxels)` because the legacy params have no frequency field. |
|
||||
| `BoundarySealThickness`, `BaseDensity` | Continue to feed the resolved top and basal boundary bands through `sealAndDensity`, not the planner settings. |
|
||||
|
||||
L139 increments `WorldAssemblyEvaluatorVersion` to 237 and extends the versioned cavern graph
|
||||
vocabulary for shaft cylinders. The fast-tier dispatch report binds S3 to
|
||||
`Core.Caves.PrimitiveField` / `Caves-native`. The 16-seed composed acceptance gate is not green:
|
||||
seed 2 fails the passage-shell audit at the incoming mouth. Three geometry variants failed that
|
||||
same gate, so the remaining issue is recorded for a new design premise rather than another local
|
||||
patch. L139 does not claim promoted shaft generation; its L80 run is recorded as characterization
|
||||
of the current worktree. See
|
||||
[`Standalone/Research/WorldAssemblerM3/Linux139/REPORT.md`](Standalone/Research/WorldAssemblerM3/Linux139/REPORT.md).
|
||||
|
||||
The shared VoxelForge custom asset version is 2: version 1 records the tunnel-floor slope migration;
|
||||
version 2 adds load-time conversion for inter-strate gap, strate height, and transition width. The
|
||||
saved strate-layout width is used, currently 8 m. Old packages are converted in memory and marked
|
||||
|
||||
Reference in new issue
Block a user