feat(passages): §6.5 landings -- you arrive somewhere you can stand
The last unbuilt Tier 1 item. A passage was a bore through rock with no floor inside the walkable angle, so its mouth was not a standing position and neither was anything near it -- the departure mouth measured a FOUR-CELL player-fit component. You arrived and there was nowhere to stand. Both ends of all 7 passages now open into a landing, sized from the body: capsule diameter 2.72 vox floor >= 12 vox (3 m) to stand and turn capsule height 7.04 vox room >= 12 vox tall, stock mouth gives 18 (4.5 m) 3-voxel floor slab, tube tangent to it -- no lip to climb out of connector 5-vox radius: 2.5 m clear width, 3 m clear height ramps over 44 deg get a deterministic level dog-leg ⭐ THE MOUTHS ARE NO LONGER SPECKS: archetype components largest arrival-departure Maze 309 -> 340 176 -> 3210 43-81 -> 3210-3210 TunnelNetwork 467 -> 227 1292 -> 3841 2-1 -> 3841-269 Underwater 86 -> 117 35 -> 3838 3-11 -> 3838-267 FlatPlain 45 -> 11 259 -> 2130 1-1 -> 268-273 CrystalChamber 197 -> 90 24 -> 286 1-1 -> 286-274 FloatingIslands 2 -> 1 3 -> 72 1-1 -> 72-72 Law 1/8 -> 2/7 connected (1 refused on MaxCells), and critically ZERO connections now run through a four-cell pocket. Every landing floor was verified against the FINAL density, after all posts: 14/14 pass the 44 deg slope bracket, worst room gradient .059, worst connector .522. 14/14 deterministic root joins. 0 seal failures. 0 box-verdict violations across 82 proved + 174 mixed, 109,142 voxels. Op-stack bit-identical, order-independence green over 10 slots / 31 passages / 3 pool orders. Cache 0.665 us rebuild, 0.646 us hot. Post order: origin spine -> vertical seal -> passage tube + landing floor -> XY edge seal. Landings clamp 4 voxels inside the vertical seal; the XY seal stays last and wins at world edges. ⚠️ ARCHITECTURAL NOTE, not a detail: landings join a deterministic annular ROOT HUB at (0,0), built identically for every endpoint -- no nearest- component search, no passage ordering. That is what makes the join guaranteed rather than likely, and it extends the (0,0) spine concept from a landmark into a structural network. It also means routes tend to pass through the centre, which is a gameplay consequence worth Jahni's eye. ⚠️ AND IT DOES NOT CLOSE THE LAW. Codex is explicit: the landings guarantee membership in the new root network, NOT in the archetype's pre-existing fit component. The whole-strate Maze check still shows a 71.9-voxel gap between 1,235 and 2,938-cell components. So the native corridor networks remain disconnected from the root network in places. Real, separate, next. 52 build-and-measure cycles, ~9 hours, finding real geometry bugs on the way (a landing floor overlapping the ramp cells and hiding a floor discontinuity; the disturbance pass refilling connector headroom). Build clean, 32/32 success, 0 failed. Showcase regenerated. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K8V9my1PL68pmQb2gutZZV
This commit is contained in:
1 parent
e4e159f0cd
commit
413c15de24
14 files changed
+1943
-187
No files matched your search
+180
-51
@@ -115,7 +115,8 @@ Runtime contains only manifest parsing/verification and recipe evaluation, and `
|
||||
remains 0. Generated schema-2 slots have no passage/content/visual record: they therefore use
|
||||
deterministic empty/default wider content and zero auto-passages (the origin spine remains). Fixed slots
|
||||
may retain an authored definition path as that wider-content bag. Lateral regions remain unshippable at
|
||||
the measured 9/16 cross-seam law result.
|
||||
the measured **4/16** cross-seam law result after the landing pass (the 9/16 figure below is the
|
||||
pre-landing snapshot).
|
||||
|
||||
An abbreviated manifest shape is:
|
||||
|
||||
@@ -268,7 +269,7 @@ through the offline Tier 2 sampler; no runtime generation path calls this API. T
|
||||
test took **76.466 s**. The complete `VoxelForge` namespace then passed **24/24 tests (0 failed,
|
||||
0 not run)** in **339.797 s**.
|
||||
|
||||
### 3.2b Lateral regions — implemented, primordial-law gate failed (2026-09-05)
|
||||
### 3.2b Lateral regions — implemented, primordial-law gate failed (2026-09-06 post-landing audit)
|
||||
|
||||
The owner's “tunnel network leading to a big chamber and drops into shafts” question changes the
|
||||
unit of composition: an archetype is a **region inside a strate**, not the strate's label. Tier 4d
|
||||
@@ -284,7 +285,7 @@ different region's stack evaluates too and the two **internal densities** are cr
|
||||
same linear curve used by the vertical transition (split symmetrically at the bisector). Native
|
||||
parameters are never blended: `ShaftSpacing` and a slab's floor/ceiling controls do not share a
|
||||
meaning. Region cores omit structural posts; the parent appends the global spine, vertical seal,
|
||||
passage carve, and XY edge seal once, in the existing order, after the lateral result. `Density`
|
||||
passage tube + landing/floor, and XY edge seal once, in the existing order, after the lateral result. `Density`
|
||||
keeps the stack convention positive=solid and is negated only at the MC-facing boundary.
|
||||
|
||||
The runtime hand-off remains an explicit manifest copy, not a new runtime composer. A worker
|
||||
@@ -310,14 +311,13 @@ if this
|
||||
feature proceeds, a narrower band or a cheaper density junction needs an owner-approved design
|
||||
decision rather than an unreported performance regression.
|
||||
|
||||
The primordial law is the blocker. The test deliberately collected **16 actual opposite-region
|
||||
arrival/departure mouth pairs**, without adding a corridor, changing a threshold, or filtering for
|
||||
success. The lateral parent connected **9/16 (56.25%)**. The same exact region-zero recipe/vector
|
||||
and structural settings in a one-region control connected **11/16**, so the underlying structure
|
||||
roll is itself not universally connected; that control does not excuse the lateral failure. The
|
||||
same 16 seam cases were **valid 16/16, non-vacuous 16/16, and largest-component share ≥ 0.50
|
||||
16/16**; including the unsnapped seam law, full hard-gate survival is therefore **9/16**. The
|
||||
result is not ready for promotion. A future fix must be a design decision such as a guaranteed
|
||||
The primordial law is the blocker. The pre-landing audit connected **9/16 (56.25%)**. After the
|
||||
landing geometry pass, the current same-fixture audit still collected **16 actual opposite-region
|
||||
arrival/departure mouth pairs** and connected **4/16**; the one-region controls also connected
|
||||
**4/16**. The same 16 seam cases remain **valid 16/16, non-vacuous 16/16, and largest-component
|
||||
share ≥ 0.50 16/16**; including the unsnapped seam law, current full hard-gate survival is therefore
|
||||
**4/16**. The landing itself is geometry-green, but it does not rescue the native region network.
|
||||
The result is not ready for promotion. A future fix must be a design decision such as a guaranteed
|
||||
cross-seam corridor/landing contract, not a hidden pass threshold or seed selection.
|
||||
|
||||
The rendered review artifact is
|
||||
@@ -1272,15 +1272,49 @@ Passage placement remains deterministic and cheap, and the slanted control-point
|
||||
Then the measurement pass flood fill is the net: does the upper mouth's air component reach the lower
|
||||
mouth's? If not, re-roll with the attempt folded into the hash.
|
||||
|
||||
### 6.5 Findability is mostly DATA, not code
|
||||
### ✅ 6.5 The passage mouth becomes a LANDING; the landmark remains DATA — BUILT
|
||||
|
||||
`ELandmarkAnchor::PassageMouth` already exists — landmarks can anchor at passage mouths — and
|
||||
`FStrateLandmark` already carries a Light-Orb block. **A glowing landmark at every passage mouth is
|
||||
authorable today with no code at all.** Beyond that, cheapest first: light (a glow down a tunnel is the
|
||||
strongest pull in a cave); sound (works around corners, which light does not — you hear the draft before
|
||||
you see the hole); and ⭐ **make the mouth a PLACE, not a hole** — the `SuggestLandingPoint` fix already
|
||||
lands the passage in a room, so make that room distinctive. Cracks in walls are forgettable; rooms are
|
||||
landmarks, and that is what makes it findable on the *second* visit, which quests need.
|
||||
authorable today with no code at all.** The geometry half is now built: every end of every inter-strate
|
||||
passage is a deterministic `FVoxelPassageLanding` — a rounded room, a hard flat support floor, a
|
||||
doorway tangent to the tube, and a floor-backed connector to the guaranteed `(0,0)` root network.
|
||||
The content half is deliberately not built here; landmark meshes, lights, sound, and placement
|
||||
policy belong to the content system. The landing supplies the stable, walkable, deterministic
|
||||
`PassageMouth` anchor that content placement needs, without inventing landmark geometry here.
|
||||
|
||||
The dimensions derive from the capsule and the existing two-abreast corridor rule: player diameter
|
||||
`2×0.34/0.25 = 2.72` voxels; floor width `3/0.25 = 12` voxels; capsule height
|
||||
`2×0.88/0.25 = 7.04` voxels; and 1 m headroom adds 4 voxels. The room uses
|
||||
`HalfWidth=max(7, MouthRadius+2)`, so its one-voxel-inset support floor is at least 12 voxels /
|
||||
3 m wide while the authored room is at least 14 voxels / 3.5 m wide. Its height is
|
||||
`max(12, 7.04+4, 2×MouthRadius+2)`; with the stock 8-voxel mouth, that is 18 voxels / 4.5 m.
|
||||
The floor is at `StandingPoint.Z−0.5`, three voxels / 0.75 m thick, and the tube centreline meets
|
||||
the room at `FloorZ+MouthRadius`, so the lower tube tangent is the floor rather than a hole with a
|
||||
step. The connector is 5 voxels / 1.25 m radius (2.5 m clear width), 12 voxels / 3 m clear height,
|
||||
with a 4.5-voxel support inset; the room, not the transit leg, owns the turn floor. At the root it
|
||||
joins a common per-strate annular hub outside the origin spine. A direct ramp is used when it can
|
||||
stay ≤44°; otherwise the deterministic connector inserts a level dog-leg before its final ramp.
|
||||
The final-density audit checks every floor normal against the explicit ≤44° walkable-slope limit
|
||||
(the movement CDO currently reports 44.8°, so this landing contract is conservative).
|
||||
|
||||
The join is guaranteed rather than likely because a source query is only a local capsule proof — it
|
||||
does not flood-fill the live graph. `GeneratePassages` therefore adds the same deterministic
|
||||
connector for answered and refused source queries, ending at the common annular hub around `(0,0)`.
|
||||
The hub is the explicit walkable root network; it is outside the vertical spine, so the spine stays
|
||||
open while every connector has a floor and a common interior level. It is generated from the
|
||||
passage seed and is included in the conservative passage bounds. Its structural
|
||||
post order is `origin spine → vertical seal → passage tube + landing/floor → XY edge seal`; the
|
||||
landing is clamped inside the vertical seal, the floor backstop runs before the final XY edge seal,
|
||||
and the edge seal wins at the world rim. `ClassifyTile` and the op-stack both treat a landing floor
|
||||
as bidirectional geometry, so a proved `AllAir` box cannot erase the support.
|
||||
|
||||
The stable room/floor/door/connector anchor is exactly the hook the landmark content system needs:
|
||||
it is walkable, known, deterministic, and available through the passage-mouth anchor without
|
||||
inventing a second placement search. Beyond that, cheapest first: light (a glow down a tunnel is
|
||||
the strongest pull in a cave) and sound (works around corners, which light does not — you hear the
|
||||
draft before you see the hole). Rooms are what make the mouth findable on the *second* visit, which
|
||||
quests need.
|
||||
|
||||
### ✅ 6.6 The layout depends on the pool's CONTENTS, not its ORDER (BUILT + TESTS GREEN)
|
||||
|
||||
@@ -1374,7 +1408,9 @@ refactor, where three weeks of correct work produced a world unchanged by a sing
|
||||
- ✅ **`SuggestLandingPoint` on field sources; passages aim at it** (§6.4) — DONE, **both mouths**.
|
||||
⚠️ It shipped HALF BUILT for weeks: only the LOWER mouth was ever aimed. See §14.3 — the ring proxy
|
||||
could not see it, and only the Tier 2 connectivity measurement could.
|
||||
- ⬜ **The passage mouth becomes a room plus a distinctive landmark** (§6.5) — not started.
|
||||
- ✅ **The passage mouth becomes a room plus a distinctive landmark hook** (§6.5) — BUILT for the
|
||||
geometry: both ends get deterministic walkable landings, floors, and root-network connectors.
|
||||
Landmark content itself remains intentionally with the content system.
|
||||
- ⬜ **`SurfaceWorld` still refuses the query** — it needs manager-resolved biome context, which
|
||||
cannot be answered from a pure free function. Open.
|
||||
|
||||
@@ -1558,7 +1594,7 @@ law has a design-level fix.
|
||||
|
||||
---
|
||||
|
||||
## 11. Tier 1 status — passages aim at player-fit source space (pure local stencil)
|
||||
## 11. Tier 1 status — passages aim at player-fit source space (pure local stencil; foundation for §6.5)
|
||||
|
||||
**Updated 2026-09-06.** `VF_SuggestLandingPoint` (in `VoxelCaveMorphology`) is a **pure free function**
|
||||
of (archetype, params, seed, desired XY, lateral budget) — it touches no operator stack, no
|
||||
@@ -1580,6 +1616,11 @@ large connected component; that question remains in the measurement pass. When n
|
||||
exists inside the bounded source neighbourhood, **the random reach and original XY are preserved
|
||||
unchanged**.
|
||||
|
||||
This section is the source-selection contract, not the finished mouth geometry. §6.5 now wraps every
|
||||
accepted or refused result in a structural landing: the source result chooses a deterministic anchor
|
||||
when available, while the manager supplies the room, flat floor, doorway, and guaranteed root-network
|
||||
connector that make the anchor a place to stand. The source query remains pure and manager-free.
|
||||
|
||||
### ⚠️ Coverage is source-dependent and the number is the point
|
||||
The failing pre-fix measurement was:
|
||||
|
||||
@@ -1632,7 +1673,7 @@ is the only thing standing between a placement change and silent bedrock passage
|
||||
(2026-08-30).** The room-centre correction below remains useful history, but it did not prove a
|
||||
player-sized landing or a large connected component.
|
||||
|
||||
### 12.1 2026-09-06 player-fit landing pass
|
||||
### 12.1 2026-09-06 player-fit source-query pass (historical, before landing geometry)
|
||||
|
||||
The next correction keeps the pure/re-entrant boundary intact and replaces the query's open-air
|
||||
claim with a local player-pose claim. Both the upper and lower mouths query their own source
|
||||
@@ -1678,7 +1719,7 @@ passed; the full `VoxelForge` namespace finished with **29 successes, 2 known wa
|
||||
0 not-run** in 2,388.35 s. The warnings remain the gated lateral-region 9/16 law and the known
|
||||
TunnelNetwork op-stack outside-gate sample count; box violations stayed zero.
|
||||
|
||||
### 12.2 2026-09-06 Maze spanning-tree correction
|
||||
### 12.2 2026-09-06 Maze spanning-tree correction (historical, before landing geometry)
|
||||
|
||||
The Maze lattice no longer uses independent per-edge hash gating. Each non-origin cell chooses one
|
||||
parent from the non-zero coordinate axes and steps one unit toward the origin. The parent reduces
|
||||
@@ -1738,15 +1779,103 @@ rebuild and **0.150 μs/call** for 20,000 hot evaluations; the final namespace r
|
||||
in the thread-local rebuild.
|
||||
|
||||
The regenerated owner-facing artifact is
|
||||
`E:/Projet Unreal/VoxelM/Saved/VoxelForge/Showcase/index.html`; the selected Maze card is
|
||||
`E:/Projet Unreal/VoxelM/Saved/VoxelForge/Showcase/index.html`; the current Maze card is
|
||||
`candidate_1003_plan.png` (with matching `candidate_1003_vertical.png` and fine ROI variants).
|
||||
The post-fix showcase rendered **6 fine views**, refused **2**, and produced **0 blank** cards.
|
||||
The landing pass rendered **8 fine views**, refused **0**, and produced **0 blank** cards. The
|
||||
showcase's diagnostic player-fit gate still found **0/8 hard-gate survivors**; the cards are kept
|
||||
as walkable geometry previews rather than pretending that unresolved inter-landing law is solved.
|
||||
|
||||
The final full namespace verification is `Saved/AutomationReports/VoxelForgeFullMazeTreeFinal3/index.json`:
|
||||
**32 tests, 30 clean successes, 2 warning-bearing successes, 0 failures, 0 not-run** in **2,523.978 s**.
|
||||
The two warnings are the pre-existing gated lateral-region result and the known TunnelNetwork
|
||||
outside-gate sample count; neither is a Maze or box-soundness failure.
|
||||
|
||||
### 12.3 2026-09-06 §6.5 landing geometry pass
|
||||
|
||||
The mouth is now a place rather than the end of a bore. `GeneratePassages` builds both ends of all
|
||||
seven inter-strate passages as `FVoxelPassageLanding` descriptors. Each descriptor contains a
|
||||
rounded room, a three-voxel support slab, a tube doorway at the floor tangent, and an explicit
|
||||
flat-floor connector to the deterministic `(0,0)` origin-root network. The source query still does
|
||||
the local archetype selection; the connector is present for both answered and refused queries
|
||||
because a local capsule proof is not a component proof.
|
||||
|
||||
The body arithmetic is: diameter `2×0.34/0.25 = 2.72` voxels; minimum turn floor `3/0.25 = 12`
|
||||
voxels; capsule height `2×0.88/0.25 = 7.04` voxels; and one metre of headroom `=4` voxels.
|
||||
`HalfWidth=max(7,MouthRadius+2)` leaves a one-voxel-inset flat support floor at least 12 voxels /
|
||||
3 m across and an authored room at least 14 voxels / 3.5 m across. Height is
|
||||
`max(12,7.04+4,2×MouthRadius+2)`; stock mouth radius 8 therefore produces an 18-voxel / 4.5 m
|
||||
room. The tube centreline enters at `FloorZ+MouthRadius`, so its lower tangent is the room floor.
|
||||
The connector is 5 voxels / 1.25 m radius (2.5 m clear width), 12 voxels / 3 m clear height, and
|
||||
a 4.5-voxel support inset. It joins the common per-strate annular hub outside the origin spine;
|
||||
the direct ramp is used only when it stays ≤44°, otherwise a deterministic level dog-leg precedes
|
||||
the final ramp. All 14 landing floors passed the final-density slope bracket; worst measured room
|
||||
gradient was `0.058998`, below the explicit 44° limit `tan(44°)=0.965689`, and the worst
|
||||
analytic connector gradient was `0.522406` (walkable limit `0.965689`). The per-end values were recorded by
|
||||
`VoxelForge.Determinism.PassageLandsInOpenSpace` without per-sample logging.
|
||||
|
||||
The focused landing audit reported **14/14** floor/slope passes, **14/14** explicit root-network
|
||||
connectors, **0** seal violations, and **0** geometry/floor failures. The targeted tile audit saw
|
||||
**14** floor boxes, **0** uniform proofs (`AllSolid=0`, `AllAir=0`), and **0** brute-force verdict
|
||||
violations. The connector itself is a guaranteed walkable branch to the structural root; the
|
||||
separate player-fit law below correctly remains an empirical test of the native network between
|
||||
the two landing branches, especially when their floor heights differ.
|
||||
The same audit measured the passage shortlist at **0.665 μs** per forced rebuild and **0.646 μs**
|
||||
per hot call on the validation machine; source queries and landing construction remain outside the
|
||||
voxel loop.
|
||||
|
||||
The support strip stops at the configured origin-spine radius; this preserves the existing vertical
|
||||
air column rather than capping it with a landing floor. The connector still reaches the spine
|
||||
boundary, and the full-resolution direct-walk assertion remains enabled.
|
||||
|
||||
Final player-fit component sizes from the fitted-window audit were:
|
||||
|
||||
The table below is the fixed H3 fitted-window identity used by `ScaleDiagnosis`. Separately, the
|
||||
specific 31.9M-cell whole-strate Maze comparison cited by §6.5 changed from the supplied
|
||||
**172-cell arrival / 4-cell departure** pocket to **1,235 / 2,938** after the landing. That is a
|
||||
substantial improvement at both mouths, but it still has a **71.896-voxel** gap and remains
|
||||
`NotConnectedAtThisResolution`.
|
||||
|
||||
| Archetype | Before: fit / components / largest / arrival / departure / gap / law | After: fit / components / largest / arrival / departure / gap / law |
|
||||
|---|---|---|
|
||||
| CrystalChamber | 655 / 197 / 24 / 1 / 1 / 47.529 / NotConnectedAtThisResolution | 1,575 / 90 / 286 / 286 / 274 / 155.042 / NotConnectedAtThisResolution |
|
||||
| FlatPlain | 1,116 / 45 / 259 / 1 / 1 / 48.104 / NotConnectedAtThisResolution | 2,817 / 11 / 2,130 / 268 / 273 / 155.042 / NotConnectedAtThisResolution |
|
||||
| FloatingIslands | 4 / 2 / 3 / 1 / 1 / 0.000 / Connected | 72 / 1 / 72 / 72 / 72 / 0.000 / Connected |
|
||||
| Maze | 2,801 / 309 / 176 / 43 / 81 / 206.630 / NotConnectedAtThisResolution | 12,384 / 340 / 3,210 / 3,210 / 3,210 / 0.000 / Connected |
|
||||
| SurfaceWorld | 713 / 520 / 6 / 1 / 1 / 110.648 / NotConnectedAtThisResolution | 2,256 / 297 / 286 / 286 / 268 / 164.250 / NotConnectedAtThisResolution |
|
||||
| TunnelNetwork | 2,748 / 467 / 1,292 / 2 / 1 / 164.405 / NotConnectedAtThisResolution | 6,683 / 227 / 3,841 / 3,841 / 269 / 155.042 / NotConnectedAtThisResolution |
|
||||
| Underwater | 337 / 86 / 35 / 3 / 11 / 142.499 / NotConnectedAtThisResolution | 5,780 / 117 / 3,838 / 3,838 / 267 / 155.042 / NotConnectedAtThisResolution |
|
||||
| VerticalShafts | 1,156 / 112 / 96 / 3 / 36 / 94.000 / NotConnectedAtThisResolution | refused: fitted origin-inclusive grid exceeded `MaxCells` |
|
||||
|
||||
Thus the restricted player-fit tally is **1/8 before** and **2/7 after** of the measured archetypes,
|
||||
with **0** after connections through four cells and **1/8 refused** (VerticalShafts). Maze's
|
||||
origin-inclusive fitted window is connected, but its independent whole-strate 31,881,528-cell
|
||||
step-1 window is not: **119,479 fit cells / 2,948 components / largest 11,418 / arrival 1,235 /
|
||||
departure 2,938 / gap 71.896**, so this is not a cropped-window victory. The hard independent
|
||||
VerticalShafts air-network refinement is a different, larger check and passed **16/16** fitted
|
||||
arrival→departure seeds. The remaining player-fit misses are therefore between substantial
|
||||
landing components and are not being hidden by a relaxed assertion or tuned toward a component
|
||||
count.
|
||||
|
||||
The final UE 5.7 validation was the requested editor build (4 actions, succeeded; 11.59 s), followed by
|
||||
`VoxelForgeLandingFinal5`: **32 tests, 30 clean successes, 2 warning-bearing successes, 0 failures,
|
||||
0 not-run** in **3,607.746 s**. `Composer.Promotion` passed with its strict existing gates; no
|
||||
assertion was weakened. The two warning-bearing tests are the gated lateral-region audit (**4/16**)
|
||||
and the known TunnelNetwork op-stack outside-gate sample count; landing, connectivity, seal,
|
||||
The namespace's showcase child evaluated **256** rolls (**82** eligible single-region, **174**
|
||||
multi-region skipped while the lateral gate is off) and regenerated
|
||||
`E:/Projet Unreal/VoxelM/Saved/VoxelForge/Showcase/index.html` with **7 fine renders, 1 refusal,
|
||||
0 blanks**.
|
||||
|
||||
The landing audit's per-end final-density floor gradients (lower / upper where present) were:
|
||||
TunnelNetwork **0.044387**; FlatPlain **0.001678 / 0.058998**; CrystalChamber
|
||||
**0.001434 / 0.006241**; Maze **0.004608 / 0.020844**; SurfaceWorld **0.012390 / 0.012970**;
|
||||
VerticalShafts **0.000061 / 0.018677**; FloatingIslands **0.005249 / 0.028687**; Underwater
|
||||
**0.000061 / 0.000061**. All 14 passed against the explicit 44° walkable gradient limit
|
||||
**0.965689** (`tan(44°)`).
|
||||
The corresponding analytic connector gradients were **0.183831, 0.149547, 0.522406, 0.285965,
|
||||
0.037782, 0.113750, 0.069551, 0.215350, 0.189820, 0.201735, 0.132101, 0.157017, 0.011850,
|
||||
0.028576** (14/14; worst **0.522406**, limit **0.965689**).
|
||||
|
||||
### ⚠️ Correct the record: commit `1ab8c0c` overstated what worked
|
||||
It reported *"3 checked, 48/48 ring samples air"* and read as Tier 1 working. A million-seed sweep later
|
||||
showed the room query left the landing point **OUTSIDE the selected room 92.795% of the time**. The
|
||||
@@ -1961,16 +2090,17 @@ infinite Maze graph is disconnected.
|
||||
|
||||
| window | exact window / grid | MaxCells | fit cells | components | largest | arrival / departure | gap (voxels) | law |
|
||||
|---|---|---:|---:|---:|---:|---:|---:|---|
|
||||
| current mouth-AABB + margin | `X[-84.1,168.7) Y[39.5,53.3) Z[-1175,-937)`, `253×14×238`, `842,996` cells, step 1 | 4,000,000 | 1,352 | 50 | 237 | 128 / 1 | 254.492 | `NotConnectedAtThisResolution` |
|
||||
| origin-inclusive mouth-AABB + margin | `X[-84.1,168.7) Y[0.0,53.3) Z[-1175,-937)`, `253×54×238`, `3,251,556` cells, step 1 | 4,000,000 | 9,598 | 309 | 845 | 120 / 3 | 274.811 | `NotConnectedAtThisResolution` |
|
||||
| whole-strate centered origin cap window | `X[-183,183) Y[-183,183) Z[-1175,-937)`, `366×366×238`, `31,881,528` cells, step 1 | 32,000,000 | 115,578 | 2,903 | 11,418 | 172 / 4 | 274.811 | `NotConnectedAtThisResolution` |
|
||||
| current mouth-AABB + margin | `X[-84.1,168.7) Y[39.5,53.3) Z[-1175,-937)`, `253×14×238`, `842,996` cells, step 1 | 4,000,000 | 2,041 | 58 | 510 | 510 / 294 | 254.370 | `NotConnectedAtThisResolution` |
|
||||
| origin-inclusive mouth-AABB + margin | `X[-84.1,168.7) Y[0.0,53.3) Z[-1175,-937)`, `253×54×238`, `3,251,556` cells, step 1 | 4,000,000 | 12,384 | 340 | 3,210 | 3,210 / 3,210 | 0.000 | `Connected` |
|
||||
| whole-strate centered origin cap window | `X[-183,183) Y[-183,183) Z[-1175,-937)`, `366×366×238`, `31,881,528` cells, step 1 | 32,000,000 | 119,479 | 2,948 | 11,418 | 1,235 / 2,938 | 71.896 | `NotConnectedAtThisResolution` |
|
||||
|
||||
The origin-inclusive box did **not** flip to `Connected`, and the larger centered window did not
|
||||
either. The hypothesis is therefore **not confirmed** for this candidate. The whole-strate probe
|
||||
used an explicit 32M cap so it could remain a real step-1 player-fit measurement; the production
|
||||
fine-law cap remains 4M. A step-2 player-fit probe is not equivalent here: the player-fit API
|
||||
intentionally refuses every `SampleStep != 1` because the capsule stencil cannot be resolved at
|
||||
that resolution.
|
||||
The origin-inclusive box **did** flip this candidate to `Connected`, but the larger centered
|
||||
whole-strate window did not. The result is therefore a useful local join diagnosis, not a claim that
|
||||
the native Maze strate is connected end-to-end: the 31.9M-cell measurement is the controlling
|
||||
whole-strate result. The whole-strate probe used an explicit 32M cap so it could remain a real
|
||||
step-1 player-fit measurement; the production fine-law cap remains 4M. A step-2 player-fit probe
|
||||
is not equivalent here: the player-fit API intentionally refuses every `SampleStep != 1` because
|
||||
the capsule stencil cannot be resolved at that resolution.
|
||||
|
||||
### 16.2 Part B — route-aware window policy
|
||||
|
||||
@@ -1985,10 +2115,10 @@ The policy used by the eight-row law is:
|
||||
- mouth-AABB plus capsule margin: `CrystalChamber`, `FlatPlain`, `SurfaceWorld`, and
|
||||
`FloatingIslands`.
|
||||
|
||||
The first group is origin-rooted by its actual topology: Maze parent chains, VerticalShafts
|
||||
The first group is origin-rooted by its actual native topology: Maze parent chains, VerticalShafts
|
||||
drainage-tree chains, and the origin-flowing room graph shared by TunnelNetwork/Underwater. The
|
||||
global structural spine exists for every stack, but it is not treated as the promised route for
|
||||
the four local/independent families.
|
||||
landing pass also supplies an explicit structural root hub for every archetype, but this diagnostic
|
||||
keeps that hub separate from the native player-fit law so it cannot hide a broken archetype network.
|
||||
|
||||
### 16.3 Part C — corrected eight-row law
|
||||
|
||||
@@ -1997,24 +2127,23 @@ window column is part of the result, not an omitted implementation detail.
|
||||
|
||||
| archetype | player-fit window (`X/Y/Z`, grid, cells) | fit cells | components | largest | arrival / departure | gap (voxels) | law |
|
||||
|---|---|---:|---:|---:|---:|---:|---|
|
||||
| CrystalChamber | mouth-AABB + margin; `X[-178.9,-152.8) Y[-38.2,29.1) Z[-537,-295)`, `27×68×242`, `444,312` | 992 | 102 | 165 | 40 / 6 | 50.070 | `NotConnectedAtThisResolution` |
|
||||
| FlatPlain | mouth-AABB + margin; `X[-178.9,-152.8) Y[-38.2,29.1) Z[-534,-298)`, `27×68×236`, `433,296` | 2,346 | 9 | 2,337 | 1 / 2,337 | 138.105 | `NotConnectedAtThisResolution` |
|
||||
| FloatingIslands | mouth-AABB + margin; `X[-143.5,-135.5) Y[121.8,129.8) Z[-537,-295)`, `8×8×242`, `15,488` | 0 | 0 | 0 | 0 / 0 | -1.000 | `StartCellNotPlayerFit` |
|
||||
| Maze | origin-inclusive mouth-AABB + margin; `X[-84.1,168.7) Y[0.0,53.3) Z[-1175,-937)`, `253×54×238`, `3,251,556` | 9,598 | 309 | 845 | 120 / 3 | 274.811 | `NotConnectedAtThisResolution` |
|
||||
| SurfaceWorld | mouth-AABB + margin; `X[-133.7,-76.1) Y[-68.8,47.5) Z[-1495,-1257)`, `58×117×238`, `1,615,068` | 1,720 | 248 | 801 | 1 / 3 | 101.454 | `NotConnectedAtThisResolution` |
|
||||
| TunnelNetwork | origin-inclusive mouth-AABB + margin; `X[-178.9,0.0) Y[-38.2,29.1) Z[-536,-296)`, `179×68×240`, `2,921,280` | 3,684 | 213 | 1,176 | 108 / 82 | 83.361 | `NotConnectedAtThisResolution` |
|
||||
| Underwater | origin-inclusive mouth-AABB + margin; `X[-178.9,0.0) Y[-38.2,29.1) Z[-535,-297)`, `179×68×238`, `2,896,936` | 1,669 | 79 | 618 | 109 / 109 | 0.000 | `CoarseLiedBudgetExhausted` (**unknown**, not a pass) |
|
||||
| CrystalChamber | mouth-AABB + margin; `X[-178.9,-152.8) Y[-38.2,29.1) Z[-537,-295)`, `27×68×242`, `444,312` | 1,575 | 90 | 286 | 286 / 274 | 155.042 | `NotConnectedAtThisResolution` |
|
||||
| FlatPlain | mouth-AABB + margin; `X[-178.9,-152.8) Y[-38.2,29.1) Z[-534,-298)`, `27×68×236`, `433,296` | 2,817 | 11 | 2,130 | 268 / 273 | 155.042 | `NotConnectedAtThisResolution` |
|
||||
| FloatingIslands | mouth-AABB + margin; `X[-143.5,-135.5) Y[121.8,129.8) Z[-537,-295)`, `8×8×242`, `15,488` | 72 | 1 | 72 | 72 / 72 | 0.000 | `Connected` |
|
||||
| Maze | origin-inclusive mouth-AABB + margin; `X[-84.1,168.7) Y[0.0,53.3) Z[-1175,-937)`, `253×54×238`, `3,251,556` | 12,384 | 340 | 3,210 | 3,210 / 3,210 | 0.000 | `Connected` |
|
||||
| SurfaceWorld | mouth-AABB + margin; `X[-133.7,-76.1) Y[-68.8,47.5) Z[-1495,-1257)`, `58×117×238`, `1,615,068` | 2,256 | 297 | 286 | 286 / 268 | 164.250 | `NotConnectedAtThisResolution` |
|
||||
| TunnelNetwork | origin-inclusive mouth-AABB + margin; `X[-178.9,0.0) Y[-38.2,29.1) Z[-536,-296)`, `179×68×240`, `2,921,280` | 6,683 | 227 | 3,841 | 3,841 / 269 | 155.042 | `NotConnectedAtThisResolution` |
|
||||
| Underwater | origin-inclusive mouth-AABB + margin; `X[-178.9,0.0) Y[-38.2,29.1) Z[-535,-297)`, `179×68×238`, `2,896,936` | 5,780 | 117 | 3,838 | 3,838 / 267 | 155.042 | `NotConnectedAtThisResolution` |
|
||||
| VerticalShafts | origin-inclusive mouth-AABB + margin; **refused before allocation** because the required grid exceeds `MaxCells=4,000,000` | — | — | — | — | — | `REFUSED(MaxCells)` |
|
||||
|
||||
The valid-row tally is **0/7 Connected**, with **1/8 refused** and one `CoarseLiedBudgetExhausted`
|
||||
unknown. The old one-cell/one-pocket success is not present in this corrected table.
|
||||
The valid-row tally is **2/7 Connected**, with **1/8 refused** and **0** unknown results. Neither
|
||||
connected row is a ≤4-cell pocket: `after_connected_through_4_cells=0`.
|
||||
|
||||
### 16.4 Plain verdict
|
||||
|
||||
The remaining failure is not the cropped measurement window. Maze remains disconnected in player-fit
|
||||
volume even when the origin is covered and when the full 32M-cell step-1 centered window is measured.
|
||||
The proven spanning-tree graph and the player-fit volume are different claims: the graph has a route,
|
||||
but the generated player-fitting corridor/mouth volume does not currently provide a continuous route
|
||||
from these two passage mouths. The smallest next generation task is therefore at the mouths or their
|
||||
player-fit join to the corridor network (with the possibility of a fine-floor/stencil break along
|
||||
the route), not another window, size, density, or topology tuning pass.
|
||||
The remaining failure is not solved by treating a local origin-inclusive window as the whole strate:
|
||||
that Maze window is connected, while the full 32M-cell step-1 centered window remains disconnected.
|
||||
The proven spanning-tree graph and the player-fit volume are different claims. The landing branches
|
||||
are substantial and explicit-root-connected, but the native player-fitting route between them still
|
||||
fails at whole-strate scale. That is a genuine between-landings/archetype-network finding, not a
|
||||
measurement crop, a tiny landing pocket, or a weakened assertion.
|
||||
Reference in new issue
Block a user