Files
settled-reach/docs/workshops/tile-derivation-contract/miri-round1.md
T
jpmschweitzerandClaude Opus 4.8 fa8b6ebf08 docs(governance): file D-239 tile derivation contract, resolve Q-101
Resolves Q-101 — how a coarse Layer-1 cell + seed becomes coherent ~1m
voxel geometry across the scale jumps. The tile-derivation-contract
workshop output:

- three-carrier refinement chain RegionProfile -> ChunkContext -> VoxelColumn,
  pure deterministic, no authoring at the derivation layers
- district-temperature climate primitive (2x2 km, C, nullable) + separate
  moisture; everything climatic derives from temperature(+moisture)
- scattered, transient freeze/snow model (freshwater +5..-10, sea ice own
  band, snow moisture-gated; forms cold phase / melts warm phase)
- stateless f64-to-voxel domain warp (anti-squaring)
- 8 morphology families over a frozen 17-zone vocabulary, gated decision tree
- seams prevented at source (gate ordering + build-time matrix); valid
  geomorphic seams kept sharp + warped

Includes workshop brief, round-1 positions, and workshop-outcomes.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 12:14:55 +02:00

104 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Miri Round 1 — Morphological realism and named-feature stability"
workshop: tile-derivation-contract
participant: Miri
round: 1
date: 2026-06-07
note: "Authored by the Miri agent (read-only tool-set); transcribed to disk by the lead."
---
# Miri Round 1: What the Morphology Family Must Honor
## Framing: what "reads true" on an alien world
The Reach's bodies are not Earth — different gravity, hydrospheres, tectonic
histories — but they obey the same physical laws. "Reads true" ≠ "looks like
Earth"; it means terrain behaviour is internally consistent with the body's
parameters. A moonless world shows no tidal flats; a tropical ocean world shows
no fjords; a volcanic body has immature drainage and lava sheets, not deeply
incised river valleys; a GlaciationGrade-0 body has V-shaped fluvial valleys, never
glacial U-profiles. The uncanny valley in terrain is one rule broken visibly in
one spot — one river flowing uphill destroys a hundred correct ones.
## 1. Morphological laws the derivation must honour
- **Drainage consistency (non-negotiable).** Channels descend monotonically; the
meander algorithm adds sinuosity but must respect the D8 thalweg direction
(D-208) — never raise the channel floor. Tributaries join from upstream; river
mouths sit at sea level, no exceptions.
- **Lithology → landform.** TerrainMaterial bounds the allowed slope/form: Rock →
vertical faces/cliffs; Sand → ≤ angle of repose (~32°), dunes not cliffs; Gravel
→ braided channels/fans (not single-thread meander); Soil → rolling/floodplain;
Wetland → ≤5° flats; Lava → sheets/shield slopes + lava tubes, immature drainage.
The family selector must honour this at region scale (no dune algorithm on a rock
coast; no incised-gorge family on high-Lava regions).
- **Glaciation history → form (globally visible).** Fjord requires GlaciationGrade
≥ 2; U-valleys ≥ 1; moraine ridges ≥ 1; cirques ≥ 2. GlaciationGrade-0 high-relief
is knife-edge V-ridges from fluvial erosion, not glacial. Fjord-vs-cliff-coast is
a **boolean exclusion** on GlaciationGrade, not a weighted roll.
- **Climate → vegetation coherence.** Treeline transitions Forest → Scrub → Barren
(no direct Forest→Barren); polar latitudes are Tundra/Barren even at sea level;
riparian Thicket/Scrub band 1–3 tiles along every perennial waterway (visual +
tactical); natural vegetation boundaries follow contours/moisture, not chunk edges.
- **Coast type is multi-factor** (slope × lithology × glaciation × tidal/moon ×
sediment): fjord / cliff coast / dune strand / tidal flat / delta / lava coast,
with the fjord↔cliff gate hard-keyed on GlaciationGrade.
## 2. Named features — the wiki/atlas consistency contract
D-228 is right that named types are derived display labels, never stored — which
makes **label derivation canonical + stable** load-bearing: the `MorphologyZone`
enum→label-string mapping must be frozen at content-authoring time, or every named
feature across all bodies shifts at once (bulk lore contradiction). The stable API
wiki authors/Atlas depend on is the **zone vocabulary**, not the underlying axis tuple.
**Priority-1 lore-anchored bodies (direct wiki→generator contracts):**
- **Kallast (Ran)** — "grain fields visible from low orbit" ⇒ alluvial-plain dominance, Soil, very low slope; no mountain ranges/fjords.
- **Velen (Van Maanen's Star, D-050)** — temperate-maritime, fog ⇒ CoastalLowland, tidal-flat/dune coast, no cliff coasts/fjords.
- **Ross 128 primary** — "predominantly ocean" ⇒ low-elevation island terrain, dune/tidal coast, no cliff coasts/fjords.
- **Cygni B** — dense high-iron ⇒ Rock/Lava substrate, volcanic plains, immature drainage; not incised valleys/alluvial plains.
- **Grünfeld** — dim flux + decades of soil amendment ⇒ marginal Gravel/Rock substrate, Scrub/Barren natural baseline (settlement layer adds Crop).
**Priority-2 type-consistency:** wherever the Atlas shows "fjord"/"mountain pass"/
"river bank"/"delta", the geometry must follow through (deep water by cliff walls;
saddle profile + flanking elevation; riparian band + bench; distributary fan).
**Proposed canonical MorphologyZone vocabulary (~17):** open ocean, lake, tidal
flat, dune strand, cliff coast, fjord, delta, estuarine, alluvial plain, river
bank, meander reach, braided plain, valley floor, mountain pass, alpine, volcanic,
wetland. Agree these before Phase-4 content authoring resumes (named now, not
necessarily implemented).
## 3. Answers to Tyre's questions
- **Sub-chunk variation:** no secondary zone field needed on `ChunkContext`. Meander
reach (ox-bows) and delta (distributary islands) handle sub-chunk features
*internally*; tidal-flat wet/dry is a whole-region state from the Q-105 water
height. Tyre's `ChunkContext` as sketched suffices.
- **RegionProfile persistence:** store `RegionProfile` (incl. `morphology_zone`) in
`BodyWorldState` at the **same cache tier as D-209 feature tags** — the Atlas
reads labels at region resolution (~6,000 regions/body) and must not trigger
chunk-level derivation. ~tens of KB/body; populate in the D-206 background pass
(~50 ms/body order).
## 4. Body-class modulation of RIVER_THRESHOLD
The global `RIVER_THRESHOLD = 200` should vary by body class via an integer lookup
`(hydrosphere, tectonic_activity, precipitation_class) → threshold`. Crucially,
`precipitation_class` (and `GlaciationGrade`) should be **derived from body-level
params** (stellar type, orbital radius, hydrosphere), not authored per body —
authored values silently drift from the terrain the generator actually produces.
## 5. Setting-voice note (Phase-6, flagged not to foreclose)
Keep the label vocabulary as plain English geography terms; the Drifter's-Guide
setting voice layers on top in content authoring. Round 2 should not constrain the
vocabulary in a way that blocks that later layer.
## 6. What I need in Round 2
- **Gestalt:** the ≥6 families + selectors; confirm the Priority-1 lore bodies are
reliably producible, and that GlaciationGrade-0 → no-fjord is a hard pre-selector gate.
- **Tyre:** confirm `RegionProfile` lives in `BodyWorldState` at the D-209 tier; confirm
`GlaciationGrade`/`precipitation_class` are derived from body params, not authored.
- **Troblum:** confirm memory feasibility of ~6,000 `RegionProfile`s/body in the cache.