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>
6.3 KiB
title, workshop, participant, round, date, note
| title | workshop | participant | round | date | note |
|---|---|---|---|---|---|
| Miri Round 1 — Morphological realism and named-feature stability | tile-derivation-contract | Miri | 1 | 2026-06-07 | 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'sChunkContextas sketched suffices. - RegionProfile persistence: store
RegionProfile(incl.morphology_zone) inBodyWorldStateat 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
RegionProfilelives inBodyWorldStateat the D-209 tier; confirmGlaciationGrade/precipitation_classare derived from body params, not authored. - Troblum: confirm memory feasibility of ~6,000
RegionProfiles/body in the cache.