
jpmschweitzerandClaude Sonnet 4.6
f64ee9dded
feat(assets): annotated heightmap pipeline — Kallast spike #778
Validates full heightmap pipeline: pyplatec tectonics → erosion →
dynamic sea level → terrain classification (13 classes) → D8 river
network → settlement placement → geographic PNG + settlement JSON.
Key technical decisions:
- Dynamic sea level via np.percentile (pyplatec output is right-skewed;
fixed fraction gives ~0.2% land, not 40%)
- Terrain classes as fractions of land_range (not fixed offsets)
- Two-layer model: geographic PNG + human-layer JSON sidecar
- Rivers painted AFTER LANCZOS upscale via NEAREST neighbor mask
(painting before blurs rivers into invisibility)
- grain_belt removed — reclassified as grassland (natural terrain)
- Irrigation overlay removed — human activity, lives in JSON sidecar
Output: 4096×2048px (1024×512 simulation grid, 5.2s total runtime).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>