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.2 KiB
title, description, type, status, workshop, created, decision_refs, resolves, participants
| title | description | type | status | workshop | created | decision_refs | resolves | participants | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Workshop Outcomes: Tile Derivation Contract (Q-101) | Final outcomes of the tile-derivation-contract workshop — resolution of Q-101 via D-239, the coarse→fine tile refinement chain, morphology family, anti-squaring warp, and district-temperature climate primitive. | workshop | complete | tile-derivation-contract | 2026-06-07 |
|
|
|
Workshop Outcomes: Tile Derivation Contract (Q-101)
Result: Q-101 resolved → D-239 filed (architecture domain, confirmed, 2026-06-07).
The keystone "what's in a tile" question — how a coarse Layer-1 cell + seed becomes coherent ~1 m voxel geometry across ~3 scale jumps — is now contracted. This was the one unbuilt layer of the Phase-4 cascade (L0–L4 already exist).
What was decided (D-239 in brief)
-
Three-carrier refinement chain.
RegionProfile(~1 km) →ChunkContext(64 m) →VoxelColumn(1 m). Each a pure deterministic function of(seed, atlas, body-params, position)per D-227. Each scale boundary is its own derivation. -
No authoring at the derivation layers, ever. Zero per-body override hooks. All gating params (
RIVER_THRESHOLD→ derived per-body-class, not the global200;tectonic_class;GlaciationGrade;precipitation_class) derive from body params. Lore bodies (Kallast, Velen, Cygni B) are honoured by setting params and serve as validation cases — fix params, never patch the derivation. -
District temperature is the climate primitive. A scalar °C per 2×2 km district, nullable (no atmosphere → null → no climate branch; airless surface ice is geology). Derived from sun (luminosity + insolation), planet (latitude + elevation lapse + orbital/axial phase = season, day-phase = diurnal), atmosphere (greenhouse → base, heat-retention → diurnal-swing amplitude). Moisture is a separate primitive. Everything climatic — precipitation, vegetation/treeline, glaciation, the seasonal/clock state (Q-105) — derives from temperature (+ moisture). Formalises D-210's temperature proxy.
-
Scattered, transient freeze/snow model. Ice/snow is a band with coherent spatial scatter, not a hard
temp<0contour: freshwater (lakes/rivers) +5 → −10 °C district mean (the +5 is night-frost reaching the coldest tiles); sea ice its own lower/wider band (≈ −2 onset, pack-ice pattern); snow (land) the same, gated on moisture. Transient in the marginal band — forms in the cold phase (night/season), melts in the warm phase → time-of-day passability shifts. Forward contract to Q-105. -
Anti-"squaring" warp. A stateless, hash-based position-keyed domain-warp; f64 sub-metre precision through to the final voxel coordinate, then truncate to the integer voxel address (a cast, IEEE-754-deterministic). ±8 m range makes FMA ULP variance harmless. Position math, not a structural decision — D-010 integer discipline preserved.
-
8 morphology families via a gated decision tree over integer
RegionProfileinputs: LavaField · FjordWall · CliffCoast · BraidedDelta · DuneStrand · IncisedGorge · MeanderReach · AlluvialPlain (fallback). Hard gates: fjord ≥ GlaciationGrade 2; LavaField = Volcanic; lithology bounds slope/form. -
Frozen 17-zone
MorphologyZonevocabulary. Freeze point = the Rust enum; changes need a D-record amendment (classifier tuning stays free). Four zones (tidal flat, estuarine, alpine, wetland) are derived sub-classifications, not generator families. -
Seams — prevent incompatible, allow valid (never patch). Decision-tree gate ordering
- a build-time compatibility-matrix invariant blocks incompatible adjacencies (e.g. MeanderReach↔Volcanic). Valid geomorphic seams (cliff↔fjord, lithology faults) are kept sharp (real geology is sharp), made organic by the warp — no feathering.
-
Believability laws + game-feel constraints are binding (drainage monotonicity, lithology→landform, glaciation→form, climate→vegetation; ≥1 tactical point/chunk, cover ≠ concealment, chokepoint widths, real seasonal passability via
ElevationDelta↔Q-105).
Process notes
- 2-round lean format (independent positions → lead-interviewed synthesis), not the full
5-round workshop. Round-1 positions:
tyre-round1.md,gestalt-round1.md,troblum-round1.md,miri-round1.md. - The four core calls (seams, body-params-fully-derived, vocabulary lock, warp precision) were made by the human via AskUserQuestion. The climate model (temperature primitive, separate moisture, the three-sibling scattered freeze, day/night swing, transient ice/snow) was a human-driven design pivot during synthesis.
- An adversarial verification pass (the same four perspectives) caught ~10 issues, all folded into the final D-239: the "continuous→continuous" seam argument was false (boolean gates are discontinuities) → rewritten to gate-ordering + matrix; warp determinism gaps (FMA / statelessness / truncate-not-compare); "Block-or-higher" → "Region-or-higher"; D-209 tier → D-203; missing LavaField tectonic gate; seasonal regained mechanical teeth; the 17-zones-vs-8-families gap closed; believability laws inlined; "frozen" given a real enforcement mechanism.
Open siblings (left for later, contract does not preclude them)
- Q-102 — cohesion matrix: effectively is the D-239 warp; can be closed against it or folded in when the material-scatter layer is built.
- Q-103 — tile-mutator op schema: open, needed at the save system (Phase 5+).
- Q-105 — region seasonal/clock state: D-239's temperature(time) +
ElevationDeltacalibration is the forward contract to it.
Process friction captured
- Team mode is broken in clide — see
docs/briefings/clide-team-mode-friction.md. Teammates ran in-process (no pane), the Team Chat view stayed inert, noclide teamverb. The workshop ran as background Agent subagents instead. Hand-off material for the clide team. - The
miriagent type is read-only (no Write/Bash) — the lead transcribedmiri-round1.mdto disk.