Files
VoxelForge/Standalone/Research/WorldAssemblerM3/Research20/first-pass.md
T
Fr0zkaandClaude Opus 5.5 75550256ef perf(core): FloatingIslands whole view 16.7 s -> 7.4 s (L51); research R20
Measured first: 45% of FI tiles are all-air, yet FloatingIslandFieldV1 returned unknown for any box near
an island AABB (25,536 unknown boxes, 0 tile skips). Conservative ranges for island bodies, root lobes,
buttresses, connectors, surface detail and smooth-min budgets now let the shared box classifier prove FI
air/solid (216 tile skips; 28.6 M audited samples, 0 violations). The X8 path reuses its FI preflight
samples. LOD7-8 far-shell and column work is skipped outside per-tile island/connector influence bounds
(farHorizonVersion 4 -> 5). FI 16.74 -> 7.36 s (-56%), FI moving entering-tile p50 halved; SW unchanged.
Peer determinism (Clang/GCC W1/W8/W12, random cameras) PASS; fast/medium/full PASS.
Research R20: world-type catalogue and dreamcore/liminal concepts (revised after a deepening pass).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
2026-10-24 20:36:54 +02:00

82 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Research R20 — World types for VoxelForge
**Recommendation:** Treat a world type as a bounded field and topology recipe. Layer crystals, ruins, roots, water, light, and sound over those fields through the existing content and stamp systems when they do not change the traversable shape. The plugin already has TunnelNetwork, FlatPlain, CrystalChamber, Maze, SurfaceWorld, VerticalShafts, FloatingIslands, and Underwater; several proposed “new types” can start as recipes over those families. ([archetype definitions](</home/jahni/VoxelM/Plugins/VoxelForge/Source/VoxelForge/Public/VoxelStrateTypes.h:175>), [stack map](</home/jahni/VoxelM/Plugins/VoxelForge/ARCHITECTURE.md:63>))
## 1. Dreamcore and liminal landscapes
The landscape rule is **recognizable place, carefully wrong**. A study of built environments associates uncanniness with missing, displaced, repeated, or oddly scaled features; combinations of anomalies increased uncanniness. That supports using a few deliberate violations instead of adding random noise everywhere. ([Diel & Lewis](https://doi.org/10.1016/j.jenvp.2022.101844))
The references offer different ways to apply that rule: dreamcore’s soft, nostalgic landscape imagery; aimless dream traversal in *Yume Nikki* and *LSD*; familiar pool and mall spaces in *Anemoiapolis* and *POOLS*; the repeated passage and discrete anomalies in *The Exit 8*; *Superliminal*’s forced perspective; and Kane Pixels’ empty, fluorescent-lit rooms. ([Dreamcore Archive](https://dreamcorearchive.org/en/versus), [Yume Nikki](https://store.steampowered.com/app/650700/YumeNikki/?l=english), [LSD product info](https://lsd-25.github.io/lsd/introduction.html), [Anemoiapolis developer page](https://andrewq.artstation.com/projects/Vydxg8), [POOLS](https://store.steampowered.com/app/2663530/POOLS/?curator_clanid=9966013&l=english), [The Exit 8](https://playism.com/en/game/the-exit-8/), [Superliminal developer article](https://blog.playstation.com/2019/12/10/perception-is-reality-superliminal-coming-to-ps4/), [Kane Parsons interview](https://www.abc.net.au/news/2026-05-28/what-are-the-backrooms-kane-parsons-a24/106709828))
Generator rules:
- Repeat one exact shape, spacing, or landmark pattern long enough to become noticeable.
- Distort scale or placement relative to familiar features: a tiny doorway in a vast slope, a field-sized monolith, or a pool room with no visible end.
- Leave broad areas empty. A single landmark or feature can carry more tension than dense detail.
- Make the lighting and materials unnaturally consistent; introduce one clear discontinuity or anomaly.
- Use fog and low-contrast enclosed ceilings to hide the horizon. Since there is no sun underground, use authored internal lights and ambient color, not a physical skylight. ([GDD §6–7](</home/jahni/VoxelM/Plugins/VoxelForge/GDD.md:104>))
- Keep the player’s route legible and safe. The project’s route convention is a ≤15° grade, 3 m clear width, and 3 m minimum room height. Let the surrounding landscape break that rule while preserving the guaranteed route. ([passage contract](</home/jahni/VoxelM/Plugins/VoxelForge/ARCHITECTURE.md:478>))
For the recipes below, use `φ < 0` for solid and `φ > 0` for air. The field operates only in the resolved content interval; shared composition owns the ceiling, bedrock, transitions, and passages. This follows the R6 generator contract. ([Research6 §2](</home/jahni/VoxelM/Plugins/VoxelForge/Standalone/Research/WorldAssemblerM3/Research6/REPORT.md>))
| Liminal strate | Field recipe | Walkability, bands, and uncanny cue |
|---|---|---|
| **Too-clean rolling hills** | `h(x,y) = h₀ + A[cos(2πx/Lx) + cos(2πy/Ly)]`; ground `φg = z − h`. Repeat with exact periods and little or no detail noise. | Keep the route in a low-gradient corridor, using the existing route grade limit; clamp all heights inside the content interval. The hills feel wrong through precise repetition and excessive smoothness, not broken geometry. |
| **Ramps that rise to the ceiling** | `h(x) = h₀ + H·smoothstep((x−x₀)/w)`, extended across the strate. Large `H/w` makes the face approach vertical; stop it at the inner ceiling boundary. | A literal 90° “ramp” is a wall under normal gravity. Treat it as a sheer landscape fin and route around it, or provide a separate safe switchback. Its clean, enormous plane is the anomaly. |
| **Flat field, lone monoliths** | Flat ground `φg = z − h₀`; union sparse deterministic box SDFs with `φ = min(φg, boxSDF₁ … boxSDFₙ)`. Fix spacing and scale, or leave one landmark in the view. | Keep the route straight and open; place monoliths outside its clearance and away from passage mouths. Fog can conceal the bounded end of the field, while the monoliths create the missing horizon. |
| **Nested terraces / pool rooms** | Let `rᵢ` be the 2D rounded-box SDF for nested rectangles. Set `h = h₀ + ΔΣ smoothstep((rᵢ+ε)/(2ε))`; add water as a separate plane at `zw`. | Use flat treads and put broad, ≤15° ramps at selected crossings. Keep a dry route to each passage if the room is flooded. Repeated square rims and identical water levels give familiar geometry an impossible scale. |
| **Inverted ceiling landscape** | Pair a grounded floor `φg = z − h(x,y)` with a solid ceiling `φc = c(x,y) − z`; union with `min(φg, φc)`. For mirrored relief, use opposing phases for `h` and `c`, bounded so their minimum clearance is preserved. | Keep the walking floor and passage route grounded; limit overhead relief so it cannot close the required clearance. Actual ceiling-walking requires a gravity and locomotion feature, not just a density recipe. |
## 2. World type catalogue
The existing archetypes and parameter structures are documented in the type definitions and architecture map. The “new” entries below are field recipes or overlays unless stated otherwise. Authoring can use generator parameters and composer recipes, while decorations, landmarks, and resolved SDF stamps provide bounded content features. ([types](</home/jahni/VoxelM/Plugins/VoxelForge/Source/VoxelForge/Public/VoxelStrateTypes.h:175>), [decorations and landmarks](</home/jahni/VoxelM/Plugins/VoxelForge/ARCHITECTURE.md:267>), [shared SDF stamps](</home/jahni/VoxelM/Plugins/VoxelForge/ARCHITECTURE.md:2239>))
| World type | Fantasy and field idea | Reuse and authoring surface | Walkability risk | Air/solid proof and performance risk |
|---|---|---|---|---|
| **SurfaceWorld — existing** | Underground outdoors: hills, basins, and a ceiling “sky.” Heightfield with ground below and a shaped cap above. | `FSurfaceGenerationParams`, heightfield, biome, and ceiling recipes. | Terrain grade and route placement need a guaranteed low-slope path. | Strong candidate: local height bounds can certify solid below and air above; keep noise and warps bounded. |
| **FlatPlain / CrystalChamber — existing** | Broad underground plain between floor and ceiling; crystals can hang overhead. | Shared slab field; add crystals as decorations or bounded fill features. | Low risk if columns and ceiling formations do not obstruct the route or fight spaces. | Low field complexity: bound floor, cap, and finite columns independently. |
| **TunnelNetwork / Underwater — existing** | Natural chambers, galleries, and flooded passages. Room graph and tunnel field; water is a separate medium layer. | Existing cave parameters and tunnel stack; existing water-table system. | Graph connectivity and dry or breathable route placement need checks. | Usually solid-base: solid is easy to prove outside carve bounds; air requires tight tunnel and noise bounds. Water does not change density proofs. |
| **Maze — existing** | Deliberate, branching passage topology. Lattice corridors represented by capsules. | Existing maze field and per-cell cache; parameterize width, spacing, and loops. | Tight corridors can fail combat and multiplayer clearance; reserve larger rooms. | Local cell and corridor bounds give useful proofs. Parent-tree connectivity is designed into topology. |
| **VerticalShafts — existing** | Vertical drops, ledges, and sparse cross-links. | Existing shaft field, ledges, connectors, and spatial cache. | Very high fall and route risk; ledges and passage landings must connect. | Cell-local shafts and connector bounds are promising; keep neighbourhood generation out of per-sample evaluation. |
| **FloatingIslands — existing** | Open void with suspended, walkable land. | Existing island field, connector plan, and island surface parameters. | High risk: landings and links must be connected, supported, and capsule-safe. | Poor today: R19 found broad influence bounds, 21,504 fallback/unknown proof blocks, and zero checked blocks in the cited proof run. |
| **Giant cavern / chasm / canyon** | Cathedral spaces, deep rifts, and eroded valleys. Scale room graphs up, use chasm disturbances, or carve canyon faces into a surface field. | TunnelNetwork, disturbance fields, and SurfaceWorld cliffs/overhangs. | Large voids need bridges or a route around them; preserve fight areas and sightlines. | Moderate. Bounded rooms and chasms can be culled; broad unbounded noise makes cheap proofs harder. |
| **Honeycomb / bubble rock** | Cellular chambers separated by thin rock webs. Use a bounded lattice of ellipsoids or rounded cells. | New recipe over existing SDF/carve operations; author spacing, radius, and connection rules. | Thin walls, dead-end bubbles, and accidental isolation are the main hazards. | Good with bounded per-cell features and a cell-neighbour index; weak with unrestricted cellular noise. |
| **Flooded karst** | Water-filled sinks and connected cave chambers. Karst geometry plus a controlled water table. | TunnelNetwork/room graph and the existing water layer; author flood level and dry route. | Swimming, visibility, and air pockets make route design more demanding. | Density proof remains that of the cave field; water level is cheap to classify separately. |
| **Lava tubes** | Smooth, long, ribbed galleries with a hazardous flow. Use curved tunnel segments, optional parallel ridges, and a lava surface or volume. | TunnelNetwork and cave ribbing; author lava as hazard/material/content. | Hazard placement must leave a clear route and fight space. | Bounded tube capsules are tractable; bound ribbing displacement and keep lava separate from solid density. |
| **Root / fungal world** | Thick roots, bulbs, and mushroom-like growths invading a cavern. Use branch capsules and bounded blobs. | Cave field plus fill stamps, surface decorations, and landmark profiles. | Roots can block corridors or create inaccessible overhangs. | Good with a deterministic branch graph and per-tile BVH; poor if each sample scans all branches. |
| **Inverted world** | Ceiling forms dominate; slopes and hanging land masses confuse orientation. | Ceiling heightfield, bounded stamps, and cave decorations. | Visual inversion is straightforward; walk-on-ceiling traversal requires gravity, collision, and navigation support. | Ceiling intervals are manageable; gravity changes are a broader gameplay and networking feature. |
| **Ruins / megastructure** | Repeated halls, shafts, arches, and colossal rooms. Grid-aligned modules or bounded SDF set-pieces. | Maze/room graph and existing ellipsoid, arch, pillar, and dais stamps. | Door alignment, connectivity, and fight-room dimensions need explicit checks. | Strong if modules are bounded and indexed by BVH; avoid a per-voxel scan of every module. |
| **Crystal forest** | Stalagmites, stalactites, or faceted trunks filling a chamber. | CrystalChamber or cavern field plus instanced decorations; use fill stamps only for structural crystals. | Dense placement can reduce capsule clearance and fight space. | Decoration is cheaper than making every crystal a density feature; stamp count still needs local bounds. |
| **Dreamcore / liminal landscape** | Repeat hills, planes, oversized objects, nested rooms, or mirrored terrain. | New analytic recipe over heightfields and bounded stamps; composer parameters and rare theme/content tags. | Keep the route safe while scenic surfaces can be steep or obstructed. | Strong if periodic extrema are computed per box and all anomalies have finite support. |
## 3. Ranked starting set
These are qualitative cost estimates from field structure and reuse, not measured timings. The 1-second target still needs a defined scope and owner measurements.
| Rank | Generator family to start with | Variety per cost | VR impact | Fit and gate |
|---:|---|---|---|---|
| 1 | **Surface and slab landscapes** | High | High | Reuse mature heightfields and slabs for ordinary, plausible strates. Keep them common so anomalies have contrast. |
| 2 | **Natural caves, giant chambers, chasms, and canyons** | High | Very high | Build on TunnelNetwork and existing disturbances; scale chambers and vary topology before adding a separate evaluator. |
| 3 | **Liminal analytic landscapes** | High | High | A few periodic functions and bounded stamps support several strong variants. Make them rare; the composer already treats geometric outliers as naturally uncommon. ([COMPOSER-NOTES.md](</home/jahni/VoxelM/Plugins/VoxelForge/COMPOSER-NOTES.md:834>)) |
| 4 | **VerticalShafts** | Medium | Very high | Existing field with strong vertical identity. Gate on connected ledges, safe landings, and player-fit passages. |
| 5 | **Maze / megastructure** | High | High | Reuse the connected maze topology; compose ruins as repeated modules and stamps. Verify fight-space size. |
| 6 | **FloatingIslands** | High visually | Very high | Keep as a supported target, with proof tightening as its promotion gate. R19’s 10× gap against SurfaceWorld and large unknown count make it a poor near-term performance baseline. ([Research19](</home/jahni/VoxelM/Plugins/VoxelForge/Standalone/Research/WorldAssemblerM3/Research19/REPORT.md>)) |
Treat flooded karst and lava tubes as themed tunnel recipes at first. Treat crystal forests and root growth as content or bounded feature layers. That provides variety without requiring a new evaluator for each material theme.
## 4. Design for performance
R6’s contract is the right architecture for new types: immutable, coordinate-based field evaluation; conservative influence bounds; an interval/classification query for each box; and an explicit unknown fallback. The generator does not own transitions, boundary bands, or passage geometry. ([Research6](</home/jahni/VoxelM/Plugins/VoxelForge/Standalone/Research/WorldAssemblerM3/Research6/REPORT.md>))
- Give every feature a stable ID and conservative AABB that includes warp, blend, and displacement. Build a deterministic spatial grid or BVH once per tile domain, including the mesher’s normal halo.
- Propagate tight two-sided intervals through the field. For periodic functions, compute extrema over the queried box; for noise, include proven amplitude and gradient bounds. Mark uncertain boxes mixed and evaluate them.
- Keep per-sample work local: no global feature scans, manager lookup, or mutable random decisions. Preserve operation order and output identity.
- Optimize both air-first and solid-first families. Air-first fields need tight solid-support bounds to skip empty regions; solid-base caves need bounded carve fields to certify solid. Geometry AABBs alone cannot certify arbitrary density values. ([ARCHITECTURE §8.23](</home/jahni/VoxelM/Plugins/VoxelForge/ARCHITECTURE.md:1355>))
- Measure cold whole-view time and playable-ring readiness separately. R19 measured about 1.9 s for the SurfaceWorld whole view and about 19 s for FloatingIslands; the near-neighborhood figures were about 0.5 s and 1.6 s. A new recipe should not be called “around 1 s” until its benchmark scope is explicit. ([Research19](</home/jahni/VoxelM/Plugins/VoxelForge/Standalone/Research/WorldAssemblerM3/Research19/REPORT.md>))
I found no L51-named report in this checkout. The documented proof lesson in R6 and M3 Round 6 is that unknown boxes must be evaluated, while loose bounds can make an air-heavy field expensive even when its field math is simple.
## Questions for the owner
1. Does “about 1 second” mean the first playable near ring or the entire cold streamed view?
2. Should inverted strata remain visual geometry under normal VR gravity, or should literal wall and ceiling walking be in scope?