Files
settled-reach/server/tests/golden/believability.json
T
jpmschweitzerandClaude Opus 4.8 ab6e1413d9 feat(simulation): voxel-tier mid-scale relief — navigable hills (T-1081)
The voxel tier read flat (the D-245 "0–3 m, no hills to navigate by" bug):
family generators set elevation from elev_q at a compressed scale plus only ±4 m
micro-scatter, and detail-scatter's mid-scale relief (D-243 §2) only ever reached
the district tier (elev_q), never per-voxel elevation_m.

- detail_scatter.rs: extract the enveloped-fBm core; add `voxel_relief` at the
  0.25–2 km octave band (vs the district 4–40 km band).
- voxel.rs: add the mid-scale relief post-dispatch in derive_voxel_column, body-global
  SeedDomain::VoxelRelief seed (position-keyed), f64 truncated to integer metres (D-010).
  Envelope = slope_q*3 + elev_q — the coarse heightmap gives slope_q ≈ 0 even on high
  ground (Arbour max 13), so elevation must drive ruggedness. Flat families only
  (Alluvial/Lava/BraidedDelta/Dune/Meander); the dramatic families already carry strong
  internal relief and WaterBody stays at sea level.
- seed.rs: SeedDomain::VoxelRelief (D-224 domain separation).
- believability.rs: new `contrast.voxel_relief_m` metric — mean within-district elevation
  range over a 2 km transect (a single 64 m sample chunk is narrower than the relief
  band) + a "voxel relief" criterion.

Arbour @ yolo: voxel relief 5 m → 59 m, 6/8 → 7/8 criteria (remaining fail = the
Q-123 vegetation-denominator item). Edict 59 m. Golden regenerated; 1586 lib tests +
believability harness (determinism) pass; clippy -D warnings clean.

D-239 amended (T-1081); Q-123 item 4 updated. Deferred to Q-123/follow-up: the
provisional span + threshold, and a per-body hypsometric absolute-elevation model.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 20:41:59 +02:00

83 lines
1.7 KiB
JSON

[
{
"body_id": "GJ338Bd",
"world_seed": 13200299156134074780,
"district_count": 2048,
"voxel_sampled_districts": 64,
"contrast": {
"moisture_q": {
"min": 32,
"max": 80,
"distinct": 49
},
"elev_q": {
"min": 0,
"max": 98,
"distinct": 99
},
"slope_q": {
"min": 0,
"max": 13,
"distinct": 14
},
"ocean_fraction_q": {
"min": 0,
"max": 100,
"distinct": 65
},
"morphology_zones": 9,
"vegetation_classes": 3,
"terrain_materials": 4,
"voxel_relief_m": 49
},
"coherence": {
"water_districts": 49,
"water_districts_wet": 44,
"drainage_samples": 0,
"drainage_monotonic": 0,
"vegetation_samples": 64,
"vegetated_districts": 8
}
},
{
"body_id": "GJ244Ad",
"world_seed": 13200299156134074780,
"district_count": 2048,
"voxel_sampled_districts": 64,
"contrast": {
"moisture_q": {
"min": 0,
"max": 20,
"distinct": 21
},
"elev_q": {
"min": 0,
"max": 99,
"distinct": 100
},
"slope_q": {
"min": 0,
"max": 6,
"distinct": 7
},
"ocean_fraction_q": {
"min": 0,
"max": 100,
"distinct": 65
},
"morphology_zones": 9,
"vegetation_classes": 1,
"terrain_materials": 4,
"voxel_relief_m": 45
},
"coherence": {
"water_districts": 25,
"water_districts_wet": 22,
"drainage_samples": 0,
"drainage_monotonic": 0,
"vegetation_samples": 64,
"vegetated_districts": 0
}
}
]