docs: attribute the residual parity gap to unreplayed pre-ore stages

The featureless capture settles what the 98.028% gap is made of: base
terrain is bit-exact, so the drift comes from air-writing features
(monster rooms, geode voids, lava lakes) that vanilla runs before the
ores and the region replay does not cover yet. Both files now point at
monster rooms as the next step instead of at carver and aquifer edges.
This commit is contained in:
Daniar Mannanov 2026-08-26 02:06:45 +03:00
parent f0a7cf815d
commit 9c7f02662f
2 changed files with 30 additions and 20 deletions

View file

@ -163,10 +163,16 @@ Known gaps, roughly in order of how visible they are:
outside the rule tree, for eroded badlands spires and frozen-ocean icebergs. outside the rule tree, for eroded badlands spires and frozen-ocean icebergs.
Parity baseline (fixture seed 12345): biomes and heightmaps exact everywhere; blocks 95.378% through Parity baseline (fixture seed 12345): biomes and heightmaps exact everywhere; blocks 95.378% through
the single-chunk path, 98.028% through the production region replay. The remaining block gap is the single-chunk path, 98.028% through the production region replay. A featureless vanilla capture
entirely underground and is driven by ~966 base-terrain cells (0.246%) where vanilla carved a cave (`cmd/vanillacapture -featureless -blocks-only`, biomes stripped to their carvers) proves the
segment we kept solid or an aquifer edge we sealed — those flips turn air-exposure discard rolls undecorated pipeline bit-exact against it — density, surface rules, carvers, aquifers, and
inside later veins, which is why ore drift looks symmetric (extra ≈ missing). noise-router veins match every one of the fixture's cells — so the residual block gap is entirely
inside feature replay. Plain-state mismatches that once looked like base-terrain defects are
air-writing features the replay does not cover yet: monster rooms (stage 3) open cave_air pockets,
geodes leave voids, lava lakes fill stage-1 cavities. Vanilla runs those stages before the ores, so
ore ellipsoids crossing that pre-existing air roll air-exposure discards our run never sees, which
is why high-attempt ore drift looks symmetric (extra ≈ missing). The next step toward exact parity
is replaying the remaining pre-ore stages, monster rooms first.
## Testing worldgen ## Testing worldgen
@ -198,8 +204,12 @@ The older optional
Beyond the always-on tests, `internal/world` carries env-gated diagnostics for hunting the residual Beyond the always-on tests, `internal/world` carries env-gated diagnostics for hunting the residual
parity gap (all skip unless the variable is set): `REGIONIO_REGION_ORE_DIAGNOSTIC=1` compares the parity gap (all skip unless the variable is set): `REGIONIO_REGION_ORE_DIAGNOSTIC=1` compares the
legacy / center-only / region-replay ore paths per state, and legacy / center-only / region-replay ore paths per state, and
`REGIONIO_BASE_TERRAIN_DIAGNOSTIC=1` classifies fixture mismatches into base-vs-base defects (with `REGIONIO_BASE_TERRAIN_DIAGNOSTIC=1` classifies fixture mismatches by what could have written each
sample coordinates), feature flips per family, and an ambiguous bucket for disk-shaped outputs. side. `TestVanillaBaseTerrainParity` compares against `testdata/vanilla_base_12345.bin`, a capture
The base-vs-base count is the number to drive toward zero: each such cell can flip air-exposure of vanilla running with features and structure sets stripped out; regenerate it after any change to
discard rolls inside overlapping ore ellipsoids, so one sealed cave edge shows up as dozens of the derived-datapack logic:
missing and extra ore blocks.
```
go run ./cmd/vanillacapture -server server.jar -featureless -blocks-only \
-port 25585 -output internal/world/testdata/vanilla_base_12345.bin
```

View file

@ -115,17 +115,17 @@ a complete decorated 3x3 neighborhood, while persisted neighbors still take
precedence. This closes the chunk-lifecycle integration boundary without precedence. This closes the chunk-lifecycle integration boundary without
exposing undecorated chunks. exposing undecorated chunks.
The remaining block-parity gap is entirely underground: no surface or waterline The remaining block-parity gap is entirely inside feature replay: a vanilla
cells mismatch. Parity diagnostics confirm the stage-6 feature schedule, the capture with every feature and structure set stripped out matches our
feature-index seeds, and the climate biome ordering are aligned with vanilla, undecorated pipeline on all 393,216 cells, so density, surface rules, carvers,
and rare ores such as gold and redstone already match exactly. High-attempt aquifers, and noise-router veins are already bit-exact. What drifts is the
features instead drift because a few hundred residual base-terrain differences interaction between stages — vanilla opens air pockets (monster rooms, geode
(aquifer fluid edges and carver air boundaries) flip air-exposure discard rolls voids, lava lakes) before the ores run, and ore ellipsoids crossing that
inside later veins; the base-terrain diagnostic measures them at 966 fixture pre-existing air roll air-exposure discard rounds our replay never sees, which
cells (0.246%), concentrated in whole cave segments rather than isolated is why high-attempt ore drift looks symmetric. The next worldgen milestone is
positions. The next worldgen milestone is to close those base-terrain to replay the remaining pre-ore stages, monster rooms first, and raise the
differences and raise the 98.028% block parity toward exact equality while 98.028% block parity toward exact equality while keeping cold batch generation
keeping cold batch generation within an acceptable latency budget. within an acceptable latency budget.
## Project layout ## Project layout