Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
18 KiB
VoxelForge R46 — generator capability matrix
Read-only review of assembler/world at cbbfd46; no files changed, and no builds, runs, or tests were performed.
Shared dispatch and contracts
[CODE] The eight ECaveGeneratorType values are TunnelNetwork, FlatPlain, CrystalChamber, Maze, SurfaceWorld, VerticalShafts, FloatingIslands, and Underwater. NativeCaves, NativeLattice, and ProfiledHeightfield are optional Core recipes layered onto those types, not additional strate types. VoxelStrateTypes.h:175 VoxelStrateTypes.h:203
[CODE] Core binds native SurfaceWorld and FloatingIslands evaluators when matching plans exist; it binds native cave/lattice graph fields when their capabilities are present. Otherwise it attaches a legacy generator adapter. The density dispatcher exposes paths such as SurfaceWorld-native, SurfaceWorld-legacy, Caves-native, and compiled-analytic/<kind>. ShapeWorldInternal.h:600 ShapeWorldInternal.h:640 ShapeWorldInternal.h:649 ShapeWorldInternal.h:3101
[CODE] The adapter plans inter-strate passages and resolves the layout before Core evaluates it. The composer’s primordial law checks a player-fit, walk-only path between the center-column interior endpoints; it is an arrival-to-departure test, not a requirement that every disconnected room or shaft join the largest component. VoxelForgeCoreAdapter.cpp:1545 VoxelSeasonManifest.cpp:2194 VoxelStrateMeasure.h:315
[CODE] Core edit transactions become density brushes applied after field composition. The same stage covers native and fallback density paths. VoxelForgeCore.cpp:3307 ShapeWorldInternal.h:3036 ShapeWorldInternal.h:5201
[CODE] Any strate can author decorations, landmarks, ambient actors, and creatures. Placement supports actors or instanced meshes; Core material samples default to host ID 1 and can carry two resource IDs. These are shared content hooks, not a distinct palette per generator family. VoxelStrateDefinition.h:352 VoxelStrateTypes.h:2204 VoxelForgeCore.h:1273
Performance key: L125 is the latest absolute owner four-strata LOD0–2 timing table I found; L130’s paired comparison found no measurable change. L125 labels rows S0–S3, so mapping them to SW/FI/TN/VS in the explicit L109 order is an [INFERENCE]. Values below are W8/W12 medians in seconds; they measure the owner layout, not isolated native evaluator costs. L125:24 L125:28 L125:35 L130:9 L109:21
Matrix
| Family / owner | Core path | Entrances, connectivity, and primordial law | Edits, materials, and content | Far terrain and performance | Identity and gaps |
|---|---|---|---|---|---|
| SurfaceWorld — SW | [CODE] Native Heightfield2D when a matching surface plan binds; legacy SurfaceWorld fallback otherwise. ShapeWorldInternal.h:600 ShapeWorldInternal.h:6685 |
[CODE] Owner export enables an open surface entry; SW also supplies the 0–1 departure mouth. [MEASURED] The shared route audit passed 21,425/21,425 centerline samples. owner_world.json:1 L125:39 | [CODE] Digging works. Surface supports biome terrain/material signals, water, and the shared placement hooks; no family-specific content pack is proven in the owner export. VoxelStrateTypes.h:1609 | [CODE] Common mesh LOD and far shells; native surface plans also get far ground/cap refinement. [MEASURED] SW: 0.780/0.807 near-ready. VoxelForgeCore.cpp:2996 VoxelForgeCore.cpp:3073 | [INFERENCE] Outdoor hills, mountains, rivers, and beaches have a legible silhouette. It still needs distinctive foliage/materials, sound, and a destination to read as a complete place. |
| FloatingIslands — FI | [CODE] Native island field when a matching island plan binds; otherwise falls through to the legacy analytic path. ShapeWorldInternal.h:620 ShapeWorldInternal.h:6692 | [CODE] Owner route enters from SW and departs toward TN; native island route audits check capsule clearance and support. [MEASURED] The owner passage checks passed. [MEASURED] L67 reported the owner FI path as compiled-analytic/FloatingIslands, not native; the reason was unresolved in R36. L67:5 Research36:11 |
[CODE] Digging works; foliage, landmarks, ambient actors, and lights can use shared placement systems. [INFERENCE] No island-specific owner palette/content is established by the export. | [CODE] Common far mesh and shell paths. [MEASURED] FI: 0.981/0.962 near-ready in the owner layout. | [INFERENCE] Floating land silhouettes can be immediately recognizable. Confirm native dispatch, then add an island ecology, a landmark, and a clear route/destination. |
| TunnelNetwork — TN | [CODE] The owner’s regular path is Core’s legacy/compiled-analytic fallback. NativeCaves is optional for TN/Underwater and evaluates authored room/tunnel graphs. VoxelForgeCoreAdapter.cpp:145 VoxelGenerator.cpp:2645 |
[CODE] Owner arrival from FI and departure toward VS. [MEASURED] Inter-strate walkability passes; that does not prove every interior room is connected. Native cave fixture flood-fill connected its chosen arrival/departure pair. L54:21 | [CODE] Digging works. Generic cave decorations/landmarks/lighting are available; there is no family-specific Core material palette. | [CODE] Common far LOD/shells. [MEASURED] TN: 1.025/0.965 near-ready in the owner layout. Optional native-cave fixture: 0.177 s near ring and 0.706 s cold whole view, a different workload. L54:37 | [INFERENCE] Rooms and tunnels read as caves, but the owner route lacks a content-defined destination. Small cave graph and a landmark/content pack would make it a place; translating the owner’s legacy parameters to native cave records remains separate work. |
| FlatPlain | [CODE] Legacy fallback/op stack only; it uses the slab builder. VoxelGenerator.cpp:2600 VoxelDensityOpStack.cpp:9373 | [CODE] No intrinsic mouths; shared passage planner supplies endpoints. [INFERENCE] Its open floor/ceiling band may connect the selected endpoints, but no family-specific arrival/departure audit was found. | [CODE] Digging works; shared decorations/landmarks can populate the chamber. | [CODE] Common far LOD/shells. [MEASURED] No separate near-ready timing found. | [INFERENCE] Open underground plain with columns. Needs a distinctive floor/ceiling profile, content, and destination; it has no native Core slab recipe. |
| CrystalChamber | [CODE] Same slab op-stack builder as FlatPlain; distinctness comes from parameter values, especially ceiling roughness. VoxelGenerator.cpp:2600 | [CODE] Same shared-mouth arrangement as FlatPlain; no family-specific walk audit found. | [CODE] Digging works. Crystal decoration is authorable through shared placement, not guaranteed by the geometry type. VoxelStrateTypes.h:169 | [CODE] Common far LOD/shells. [MEASURED] No separate near-ready timing found. | [INFERENCE] Hanging formations could distinguish it, but parameters alone do not supply crystal materials, lighting, or a destination. |
| Maze | [CODE] Legacy maze op stack; optional NativeLattice graph recipe, which is shared with VerticalShafts rather than a dedicated native maze generator. VoxelForgeCoreAdapter.cpp:159 VoxelGenerator.cpp:2592 |
[CODE] Mouths are shared-planner endpoints; native lattice fixtures test capsule reachability between chosen endpoints. [MEASURED] L60 native lattice fixture: 0.561 s near ring, 1.701 s whole view—not the owner near-ready workload. L60:19 L60:36 | [CODE] Digging works; common content hooks apply. | [CODE] Common far LOD/shells; L60 streamed the lattice fixture through LOD0–8. L60:15 | [INFERENCE] Tight branching corridors are a recognizable grammar, but the native fixture’s helix/maze graph needs a content destination and stronger per-seed identity. |
| VerticalShafts — VS | [CODE] Legacy shaft op stack; optional NativeLattice is a generic authored graph, not a shaft-specific Core evaluator. VoxelGenerator.cpp:2622 |
[CODE] Owner arrival comes from TN; the four-strata export has no lower fifth-stratum passage. [MEASURED] The composer found a VerticalShafts arrival/departure violation; L58’s lattice route passed but was a helix. COMPOSER-NOTES.md:1437 Linux58:11 | [CODE] Digging works; generic props and lights can be placed. | [CODE] Common far LOD/shells. [MEASURED] VS: 0.879/0.838 near-ready in owner layout. | [INFERENCE] Vertical silhouettes could distinguish it, but the native graph example is not an open shaft. Needs a shaft-specific core, safe landings, and a proven route. |
| Underwater | [CODE] TunnelNetwork density plus water behavior; optional NativeCaves recipe is accepted. No separate native water generator recipe. VoxelGenerator.cpp:2638 Unreal1:131 | [CODE] Shared passage mouths; composer’s law is walk-only, so it does not certify swimming or water traversal. [INFERENCE] A flooded route needs dry walkable sections or a separate traversal rule. | [CODE] Digging works; water and shared content are available, but the native assembly recipe does not itself provide an authored water feature. | [CODE] Common far terrain; far water presentation is not established here. [MEASURED] No separate near-ready timing found. | [INFERENCE] “Flooded cave” is a plausible identity, but water, lighting, air pockets, and destination spaces need authored treatment. |
| Dreamcore / liminal | [CODE] No Dreamcore generator type. Existing Core stamps/motif fields are overlays; motif override currently requires a resolved SurfaceWorld strate. VoxelStrateTypes.h:175 WorldAssemblyPrototype.h:568 |
[CODE] Inherits mouths and connectivity from its base family; motif fixtures preserve route keepouts. [MEASURED] L60 motif overlay: 0.493 s near ring, 1.326 s whole view. Linux56:21 L60:35 | [CODE] Digging applies to the composed field; current motif kinds include carve arch/ellipsoid and fill pillar/dais/monolith/platform. VoxelStrateTypes.h:222 | [CODE] Base field uses common far LOD/shells. Motifs have LOD coverage, but no liminal-specific far treatment. | [INFERENCE] Motifs alone do not read as dreamcore. It needs a repeated spatial grammar, coherent palette/light/sound, and an explorable destination. Not in owner world. |
Owner mapping: [MEASURED] the owner export references four fixed strata and opens the surface; the named four-family owner route is SW/FI/TN/VS. [CODE] The L125–L130 timings are for that owner layout. owner_world.json:1 L109:21 L120:23
Findings
-
Closest to distinct places: TN caves, FI, and liminal overlays. [INFERENCE] TN already has cave geometry and route proof: add one authored destination chamber plus a small landmark/material/light kit. FI already has a distinctive suspended-land silhouette and route support: first confirm its native dispatch, then add foliage, a landmark, and route cues. Liminal is the smallest overlay slice: reuse the flat/profiled base and existing monolith/platform stamps, then define one repeatable anomaly pattern and a matching content kit. These need authored destinations and themes more than new density families.
-
Composer status and smallest next step. [CODE]
VoxelSeasonManifest.cpprolls candidates from a corpus, measures them, rejects vacuous/fragmented/primordial-law failures, and selects for grounded/outlier mix plus archetype/recipe variety. Promoted records carry an archetype tag and corpus provenance is taggedproject,default, orpromoted. VoxelSeasonManifest.cpp:2523 COMPOSER-NOTES.md:431 COMPOSER-NOTES.md:1466 Strate and biome gameplay tags are stored, but theme draws for materials, creatures, decorations, and audio are still open. VoxelStrateDefinition.h:389 COMPOSER-NOTES.md:1484 [INFERENCE] Smallest step: tag one real content class with multiple theme tags and let one seed-selected family draw a coherent, reviewable mini-pack. -
Risks. [CODE] Missing native plans/capabilities reach the legacy binding; path diagnostics are needed to distinguish them. ShapeWorldInternal.h:649 [MEASURED] The latest explicit owner dispatch note I found says FI/TN/VS used compiled analytic fields; L130 reports timing but not dispatch, so that path should be rechecked before calling those owner generators native. Linux67:5 Linux130:9 [INFERENCE] Dreamcore exists as a design goal, not a generator; NativeLattice proves routes but not a shaft identity; FlatPlain/CrystalChamber remain legacy slab fields; and water presentation remains outside the native Core recipe.