--- title: "Body Map Viewer — Clarification Rounds" description: "Q&A rounds on Jeroen's outline (T-1176 prep session): settled premises vs deferred workshop deliverables" type: workshop status: active workshop: body-map-viewer created: 2026-07-25 --- # Clarification Rounds (prep session) Two AskUserQuestion rounds on [jeroen-outline.md](jeroen-outline.md), questions merged from the lead and Tyre. Answers verbatim where they carry nuance. ## Settled by round A 1. **Zoom model — fully stepped.** *"fully stepped zoom, but still cursor centers and the edge scrolling also works. Just, we click through the zoom levels on scroll. We could investigate a client side morph."* Scroll wheel steps through discrete zoom levels; cursor-anchored centering and edge-scroll pan are retained; a client-side morph/tween between levels is an investigation item. **Supersedes** the continuous-multiplier zoom of the T-1143 ruling (entry-seam ruling 3) — to be recorded as a deliberate revision when the workshop's decisions are filed. 2. **Vocabulary — "tile" repaired, "gridunit" coined.** Tile means the ground-level 1×1 m unit (D-243) — Jeroen: *"I misused the term several times. Tile should mean the ground level 1x1m. I suggest we talk about gridunit (at zoom level) for the wrong uses."* Legitimate tile uses in the outline: the "~10px per tile" bottom-out (deepest step shows the 1 m tile at ~10 screen px on the smaller axis) and "the amount of steps … from largest to visible tile". Everything else (the n×n grid, per-pixel records) reads as **gridunits at a zoom level**. 3. **Data resolution is a tunable, not a constant.** *"I would like pixel resolution on the maps, but that may be too much, so maybe we do 5x5 pixels as a display unit … Crisper is better, but the computer must not catch fire."* Ideal = 1 gridunit per screen pixel; acceptable fallback ≈ 1 gridunit per 5×5 px display unit (a 4K-class canvas drops from ~8.3M to ~330K gridunits). The knob is decided by measurement, not taste. 4. **Hydrology — deterministic equilibrium.** Lake fill, overflow re-routing, gorge carving are a single-pass settled end-state computed from heightmap + moisture/climate as a pure function of seed ("over time" = geological backstory). Extends today's D8 drainage; no stateful simulation. ## Confirmed inline - **Step boundaries = compute-chunk boundaries.** Tyre's reading that zoom-step boundaries and deterministic-generation load-partitioning boundaries are intended to be the same boundaries stands unchallenged. - **Server side is in play** (premise from the outline itself): content determination relocates to the server; the server sends what is at a given world coordinate at that zoom level. Dudley is core roster. - **Performance is a first-class driver** (lazy/late compute, TTL cache, "snappy after first calc"). ## Deferred to the workshop (round B — all four explicitly "workshop deliverable") 1. **Named-feature encoding** (rivers/settlements/roads/POIs: dense rasters + sparse feature list vs inline identity vs ids-with-lookup). Jeroen's constraint: *"best fidelity vs wire contract possible … The information the client needs needs to be there."* 2. **Data-canvas sizing** (canonical fixed size for all clients vs viewport-sized capped): *"I see value in both."* 3. **Cache-tier architecture** (server TTL / client layer cache / disk-persisted global tier / predictive precache — which exist, and what "always keep the global level" means concretely). 4. **Map time axis** (climatology vs current sim state for frozen/flooded). Jeroen's hint, on record as direction not ruling: *"maybe we put shorter ttl on the climate sim state components?"* 5. **Step count** largest→visible-tile (deferred in the outline itself), coupled to compute-chunk partitioning. ## Flags carried forward (not questions) - **Cliff/multi-height data model gap** (Tyre): "two heights in the same tile and cliff forming" exceeds the one-height-per-cell model (`elev_q` u8); the per- gridunit payload needs a sub-unit vertical-structure answer, and a ruling on whether cliffs are Phase-4 Atlas content or Phase-5 geometry. - **Phase-5 reuse** of the map drawing component (same code path as the future in-world viewport or Atlas-only) — scoping decision for the workshop.