diff --git a/CLAUDE.md b/CLAUDE.md index 2400818..2755273 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -167,12 +167,13 @@ the single-chunk path, 98.028% through the production region replay. A featurele (`cmd/vanillacapture -featureless -blocks-only`, biomes stripped to their carvers) proves the undecorated pipeline bit-exact against it — density, surface rules, carvers, aquifers, and 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. +inside feature replay. Monster rooms (stage 3, `world/monster_rooms.go`) now replay between geodes +and the ores with vanilla's draw order, so the air pockets ore ellipsoids roll discards against +exist where the schedule puts them; the fixture's four chunks contain no dungeons, so the measured +number did not move. The unreplayed air-writing stages are lava lakes (stage 1) and the remaining +structure sets: the fixture carries ruined-portal and mineshaft pieces (obsidian/gold/planks +markers), and a cobblestone-and-water pocket in chunk (-1,-1) that no replayed feature explains — +attributing it is the open lead for closing the gap further. ## Testing worldgen diff --git a/README.md b/README.md index 098defc..1e51361 100644 --- a/README.md +++ b/README.md @@ -118,14 +118,15 @@ exposing undecorated chunks. The remaining block-parity gap is entirely inside feature replay: a vanilla capture with every feature and structure set stripped out matches our undecorated pipeline on all 393,216 cells, so density, surface rules, carvers, -aquifers, and noise-router veins are already bit-exact. What drifts is the -interaction between stages — vanilla opens air pockets (monster rooms, geode -voids, lava lakes) before the ores run, and ore ellipsoids crossing that -pre-existing air roll air-exposure discard rounds our replay never sees, which -is why high-attempt ore drift looks symmetric. The next worldgen milestone is -to replay the remaining pre-ore stages, monster rooms first, and raise the -98.028% block parity toward exact equality while keeping cold batch generation -within an acceptable latency budget. +aquifers, and noise-router veins are already bit-exact. Monster rooms now +replay from their datapack configuration between the geodes and the ores, so +the air pockets ore ellipsoids roll discards against exist where the schedule +puts them; the committed fixture happens to contain no dungeons, leaving the +measured parity at 98.028%. What still does not replay is the stage-1 lake +schedule and the structure sets — ruined portal and mineshaft pieces are +visible in the fixture — and those are the next worldgen milestones on the way +to exact equality while keeping cold batch generation within an acceptable +latency budget. ## Project layout