--- title: "Workshop Brief: Tile Derivation Contract (Q-101)" description: "Resolve Q-101 — how a coarse Layer-1 cell + seed becomes coherent ~1m voxel geometry across ~3 scale jumps, deterministically. The keystone of the 'what's in a tile' question." type: workshop status: active workshop: tile-derivation-contract created: 2026-06-07 decision_refs: [D-227, D-228] --- # Workshop Brief: Tile Derivation Contract (Q-101) ## The question The generation cascade is built down through Layer 4 (heightmap → drainage → economy → settlement → quarter skeleton + per-building tags). The **tile itself (Layer 5) is the one unbuilt layer** — and the design stalled at **Q-101**, the keystone: > How does a coarse, map-scale hint (a ~78 km Layer-1 cell) plus a seed become fine, > ~1 m-voxel **coherent** geometry — deterministically (D-010), without "squaring" (visible > grid artifacts at scale boundaries) — across ~3 scale jumps: > **78 km cell → ~1 km region → 64 m chunk → 1 m voxel**? The frame is already decided: - **D-227** — derive-don't-store: `subtile(x,y,z) = derive(seed, atlas, pos)`, recomputed on demand + cached, never persisted; volumetric voxels (1 m) / subvoxels (0.5 m); surface + subsurface. Only tile-mutators are saved. - **D-228** — a tile is orthogonal derived axes (`TerrainMaterial`/`FloorMaterial`/`Vegetation`/ `Water`/`elevation`); named types are display labels; snow/ice are seasonal region state. What's **open**: the *how* — the inter-layer hint+seed→geometry API (Tyre sketched a `RegionHint`) and a **context-driven morphology algorithm family** (≥6 distinct algorithms selected by local context: rivers meander in lowlands / incise in mountains; coasts dune / crag / fjord by slope + lithology + glaciation; etc.). Adjacent open questions to keep in view (not the focus, but the contract must not preclude them): Q-102 (cohesion matrix — seam-free variation), Q-103 (tile-mutator op schema), Q-105 (region seasonal/clock state). **Deliverable:** a resolution for Q-101 → a D-record (claim a fresh `D` in the architecture domain) defining (a) the `RegionHint`/refinement API across the scale jumps, (b) the morphology algorithm-family selection model, (c) the anti-squaring / cross-scale-coherence approach, within the D-010 determinism + D-227 perf (~<5 ms/chunk) constraints. ## Participants Tyre, Gestalt, Troblum, Miri (+ Qatux documenting) ## Questions for participants **Tyre** (architect — owns the inter-layer API): 1. The `RegionHint` shape: what does each layer hand *down* the chain (78 km → region → chunk → voxel)? Sketch the refinement-function signature(s) and what state each scale carries. 2. The anti-"squaring" mechanism — how do adjacent cells/chunks derive coherently at their shared boundary without seams or visible grid? (domain warping? overlapping kernels? boundary blending?) How does this compose with the D-227 by-chunk cache + eviction? 3. The determinism + perf contract: how does `derive(hint, seed, pos)` stay pure (D-010) and hit the per-chunk budget? **Gestalt** (systems — the morphology family + fun): 1. Enumerate the ≥6 distinct morphology algorithms and the **local context** that selects each (slope, lithology, glaciation, drainage, climate). Where are the boundaries between families? 2. What makes the *derived* terrain tactically interesting (cover, LOS, chokepoints, verticality) — i.e. the game-feel constraints the contract must serve, not just plausibility. **Troblum** (tech second opinion — feasibility/perf): 1. Algorithmic morphology vs noise fields: which parts of Q-101 are best served by explicit morphology algorithms vs multi-octave/domain-warped noise? Cross-scale coherence techniques. 2. Stress-test Tyre's API + the <5 ms/chunk + determinism claims; where does it break at scale? **Miri** (worldbuilder — believability): 1. Does the morphology family produce worlds that *read true* (rivers behave, coasts vary by geology, biomes cohere)? What real-world morphology must the family honor to avoid uncanny terrain? 2. The D-228 derived-label layer — which named features matter for the wiki/atlas to stay consistent. ## Workshop Format **Round 1 — independent positions.** Each participant writes their answer to disk at `docs/workshops/tile-derivation-contract/{agent}-round1.md`. No cross-talk yet. **Round 2 — synthesis.** After a user checkpoint, converge: Tyre + Troblum lock the `RegionHint` API + coherence approach; Gestalt + Miri lock the morphology family + selection model; resolve tensions. Qatux drafts the Q-101 resolution + the new D-record. (Lean 2-round design pass, not the full 5-round format — Q-101 is one focused contract.)