feat(simulation): WaterBody voxel family — oceans/lakes/tidal flats render wet (T-1082)

The water zones (OpenOcean/Lake/TidalFlat) fell through to the dry-land AlluvialPlain
fallback, so the sea rendered as dry forested land (the D-245 believability bug).

- voxel.rs: new MorphologyFamily::WaterBody (9th family) + generate_water_body,
  dispatched from zone_to_family. Deep open water with a Shallow shoal band on the
  district-anchored coast line (wider for shallower bodies); TidalFlat all-Shallow.
  Seabed Rock (steep) / Sand (gentle) / Wetland (tidal mud); Vegetation::Barren;
  water surface elevation_m = 0; seasonal Ice via derive_cover (frozen seas). Wetland
  stays AlluvialPlain (it is land — a marsh, not open water). Integer/D-010. + 4 tests.
- believability.rs: fix a sampling bias in the T-1083 enforcer found while verifying
  this — the metrics sampled the first 64 districts in BTreeMap order (a spatial corner,
  e.g. all-ocean), which reported a forested world as "0 vegetated". Now a deterministic
  seeded spread across the body (matches D-245's "randomly-sampled locations").
- D-239 amended (§5 8→9 families; §6 refined — the 3 water zones now dispatch to
  WaterBody). Believability golden regenerated.

Probe (Arbour @ yolo): water-renders-wet 4/64 FAIL → 42/44 PASS; terrain-material
variety 1 → 4 PASS; 3/7 → 5/7 criteria. (Remaining fails — moisture gradient,
vegetation-present — are T-1080.)

clippy --all-targets -D warnings clean; 1579 lib tests + the harness pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-28 15:30:25 +02:00
co-authored by Claude Opus 4.8
parent ed2c9853be
commit cdc55032df
6 changed files with 266 additions and 30 deletions
+10 -10
View File
@@ -27,15 +27,15 @@
},
"morphology_zones": 9,
"vegetation_classes": 3,
"terrain_materials": 1
"terrain_materials": 4
},
"coherence": {
"water_districts": 64,
"water_districts_wet": 4,
"drainage_samples": 16,
"drainage_monotonic": 4,
"water_districts": 46,
"water_districts_wet": 43,
"drainage_samples": 10,
"drainage_monotonic": 8,
"vegetation_samples": 64,
"vegetated_districts": 64
"vegetated_districts": 11
}
},
{
@@ -66,13 +66,13 @@
},
"morphology_zones": 9,
"vegetation_classes": 1,
"terrain_materials": 2
"terrain_materials": 4
},
"coherence": {
"water_districts": 20,
"water_districts_wet": 1,
"drainage_samples": 4,
"drainage_monotonic": 1,
"water_districts_wet": 17,
"drainage_samples": 6,
"drainage_monotonic": 6,
"vegetation_samples": 64,
"vegetated_districts": 0
}