wip(step3): 12.5 cm voxels, fall-through fixed, brick evaluator in game, organic tunnels -- speed gate FAILS
Stopped by the owner's decision (in-game lit captures were eating the round); he judges the look in game instead. 1. Fall-through with the research field: fixed. Deep drop, gate on: 2 holds (0.50 s), min foot clearance +43 cm; gate off: penetrates (-278 cm). Stress fixture offsets converted to metres. 2. VOXEL_SIZE 25 -> 12.5 cm. Physical sizes kept in metres (player, steps, gate, insets, research field sizes, dig radii, test thresholds); class defaults that count chunks/voxels doubled (ClipRadius 6, RenderDistanceChunks 1536, ViewDistance*, StrateViewMargin 6, PawnCollisionRadius 2, SkirtCells 4, EdgeSealThickness 128, decoration spacings, density volume res 256). Asset values override these defaults: the owner must double his own. Ring scale, six workers, idle, step-2f field before the look changes: 64 m cube (519^3) 4.55 s; 32 m cube (259^3) 0.95 s. 3. In game: tiles go through the brick evaluator (proved by a log marker); profile switch rebuilds the loaded world (~5,800 tiles); full-detail fill 12.4 s after spawn in the visible-window test. 4. Look: round winding tunnels, per-column ellipsoid/lattice caches. All step-2f geometry gates pass at 12.5 cm (0 crumbs, 1 solid component per profile, solid share 69-87%). 259^3 ring, six workers: 1.08-2.02 s (worst HyperComplex) -- the 600 ms gate FAILS. Lit captures failed (hidden/off-screen window, then blank frames); not pursued. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
This commit is contained in:
1 parent
ca78352e43
commit
bc0f9ee791
33 files changed
+2691
-803
No files matched your search
+13
-15
@@ -13,9 +13,9 @@ each strate can be a fundamentally different *archetype*, connected at (0,0).
|
||||
|
||||
### 8.0 Human-scale generation contract (2026-09-06)
|
||||
|
||||
All authored lengths are voxel-space values, converted at the boundary by `0.25 m/voxel`. The body
|
||||
reference is a **0.34 m radius, 1.76 m tall** capsule (`1.36 × 7.04` voxels). The default strate
|
||||
height is now **8 chunks = 256 voxels = 64 m**, which is intentionally larger than the 3-4 chunk
|
||||
Voxel-space authored lengths convert at `0.125 m/voxel`. The body reference is a **0.34 m radius,
|
||||
1.76 m tall** capsule (`2.72 × 14.08` voxels). The default strate height is **16 chunks = 512 voxels
|
||||
= 64 m**, intentionally larger than the 3-4 chunk
|
||||
boss-arena anchor so an archetype can reserve seals, vertical play, and a high ceiling together.
|
||||
|
||||
The default size families are deliberately independent:
|
||||
@@ -23,7 +23,7 @@ The default size families are deliberately independent:
|
||||
| Feature | Default metre derivation | Coupling kept sound |
|
||||
|---------|--------------------------|---------------------|
|
||||
| Room network | radius 4-10 m (8-20 m diameters), origin radius 12 m (24 m hub), cell spacing 32 m | `MaxRoomRadius 40 < RoomSpacing/2 64`; a 6 m radial margin remains around the largest room |
|
||||
| Round passages | 1.5-2 m radius (3-4 m bores); maze corridor radius 3.125 m (6.25 m nominal bore) | `0.7 × 2 × (12.5−3.75) × 0.25 = 3.0625 m` usable floor after worst roughness; Maze `12.5 < CellSize/2 32` |
|
||||
| Round passages | 1.5-2 m radius (3-4 m bores); maze corridor radius 3.125 m (6.25 m nominal bore) | `0.7 × 2 × (25−7.5) × 0.125 = 3.0625 m` usable floor after worst roughness; Maze `25 < CellSize/2 64` |
|
||||
| Slab | floor at 16 m, ceiling at 38.4 m, 22.4 m open span | floor/ceiling noise and 4-8 m column diameters remain inside the open span |
|
||||
| SurfaceWorld | 20 m terrain relief, 12 m warp, 60.8 m sky cap | terrain features are bounded below the 64 m strate envelope |
|
||||
| VerticalShafts | 4-7 m shaft diameters, 3 m connector bore, 8 m ledge interval | shaft spacing is 20 m; connector/ledge values are derived from the roughness envelope |
|
||||
@@ -175,8 +175,8 @@ arrival→departure flood-fill at the independently placed passage endpoints.
|
||||
|
||||
### 8.2a XY edge seal (bounded-world invariant)
|
||||
`UVoxelSettings::WorldRadiusVoxels` and `EdgeSealThickness` define the bounded world in actor-space
|
||||
XY around `(0,0)`. The default radius is 8192 voxels (~2.05 km at 25 cm/voxel) and the default
|
||||
solid ramp is 64 voxels. A radius of **0 is a true no-op**: the hot path returns before doing any
|
||||
XY around `(0,0)`. The legacy 8192-voxel radius is ~1.024 km at 12.5 cm/voxel; use 16384 voxels
|
||||
for the same ~2.05 km world radius. The source edge-seal default is 128 voxels. A radius of **0 is a true no-op**: the hot path returns before doing any
|
||||
arithmetic, so the legacy unbounded field is unchanged. From `R - Thickness` to `R`,
|
||||
`VF_ApplyXYEdgeSeal` raises the internal positive-solid density with the same `SmoothStep01` ramp
|
||||
idiom as the vertical seal; at and beyond `R` it forces positive `BaseDensity`. The generator
|
||||
@@ -451,7 +451,7 @@ Tick via the INT_MIN sentinels). **Per-biome content (§8.14):** decorations res
|
||||
update builds ONE flat decoration palette per grid (every biome's list concatenated; `EntryBiome[i]` tags entry
|
||||
`i` with its context-biome index, -1 = strate fallback), and `PlaceAtCrossing` rolls only the entries the
|
||||
column's biome owns. Borders follow the warped-Voronoi field at column resolution, no straight lines (a
|
||||
per-CELL biome would snap borders to the 8 m cell grid). `Initialize` also takes `UVoxelSettings*` (for the
|
||||
per-CELL biome would snap borders to the 4 m cell grid). `Initialize` also takes `UVoxelSettings*` (for the
|
||||
grid tunables).
|
||||
|
||||
### 8.6 Atmosphere — `VoxelAtmosphereManager.h/.cpp` (NEW)
|
||||
@@ -535,14 +535,12 @@ named 15° floor-gradient limit as the default inter-strate tunnel. The room and
|
||||
therefore real walkable geometry, not a point anchor or nearest-component guess, and no
|
||||
per-passage ordering is involved.
|
||||
|
||||
The chamber dimensions come directly from the capsule: player diameter `2×0.34/0.25 = 2.72`
|
||||
voxels; required floor width `3/0.25 = 12` voxels; capsule height `2×0.88/0.25 = 7.04` voxels;
|
||||
one metre of headroom adds 4 voxels. `HalfWidth=max(7, MouthRadius+2)` leaves
|
||||
`2×(HalfWidth−1) >= 12` voxels of flat support after the one-voxel wall inset; the authored room
|
||||
is therefore at least 14 voxels (3.5 m) wide. Height is
|
||||
`max(12, 7.04+4, 2×MouthRadius+2)`; the stock 6-voxel mouth is a 14-voxel (3.5 m) room with
|
||||
an 8-voxel half-width (4 m full width).
|
||||
`FloorZ=StandingPoint.Z−0.5`, floor thickness is 3 voxels (0.75 m), and the tube centreline
|
||||
The chamber dimensions come directly from the capsule: player diameter `2×0.34/0.125 = 5.44`
|
||||
voxels; required floor width `3/0.125 = 24` voxels; capsule height `2×0.88/0.125 = 14.08` voxels;
|
||||
one metre of headroom adds 8 voxels. `HalfWidth=max(12, MouthRadius+4)` gives a 24-voxel
|
||||
minimum clear floor width (3 m). Height is `max(24, 14.08+8, 2×MouthRadius+4)`; the minimum
|
||||
room height is 24 voxels (3 m). `FloorZ=StandingPoint.Z−1`, floor thickness is 6 voxels (0.75 m),
|
||||
and the tube centreline
|
||||
meets the room at `FloorZ+MouthRadius`, so its lower tangent is the floor and there is no step lip.
|
||||
The final-density floor audit samples the flat plane and checks the player-fit capsule above it. The
|
||||
default tunnel audit samples every route step against the final density and checks the analytic and
|
||||
|
||||
Reference in new issue
Block a user