# Io scene C ("Krafla plume field" → game region `io.pele`): iteration log

Captures: `[path removed]` (gitignored workbench folder). Started from a copy of map A's pipeline (`[path removed]`, `[path removed]`, `io-a.html` as of 2026-10-12 22:30) and adapted it.

## Data and pipeline setup (before it01)
- **Crop.** 7168 m square at 2 m, EPSG:3057 (ISN93 / Lambert 1993) x 597716–604884, y 578316–585484, centred just east of Leirhnjúkur. It covers the Leirhnjúkur–Gjástykki fissure swarm and the 1975–84 Krafla Fires lava plain (west and centre), the Krafla massif and Hrafntinnuhryggur (east and south-east), the Víti explosion crater and the Kröflustöð geothermal field. Read from the ArcticDEM v4.1 2 m mosaic tiles 17_53_1_2 + 17_53_2_2 through the research VRT (`gdalwarp -r bilinear`), 100 % valid. World frame: x east, z south, y = elevation − 600 m, origin at the map centre.
- **Apron.** The same mosaic averaged to 16 m over 28 km (`-r average`), 91 % valid; the rest is inverse-distance fill (smooth, not data).
- **Human artifacts.** OpenStreetMap (Overpass, ODbL) roads and tracks (class width + 14 m cut/fill shoulders), 114 above-ground geothermal pipelines (9 m bench), buildings, the power plant, the IDDP drill site, parking areas and 12 man-made ponds were rasterised and inpainted (fillnodata + transplanted high-pass DEM roughness from an undisturbed offset, 5 m feather). Drill pads not in OSM were found as flat (< 6 cm local relief, < 3 % slope) patches of 600–60 000 m² touching the infrastructure network (157 patches) and inpainted too. 2.4 km² masked in total. Faint road traces remain visible in a raking-light hillshade (they are inpainted with smooth fill plus transplanted noise; at map scale they vanish under deposits and flows).
- **Víti.** The crater lake is a perfectly flat water surface in the DEM; it is kept flat (0.3 m below the shore) and becomes a frozen SO₂ frost floor.
- **2 m → 1 m.** Bicubic spline resample to the 1 m working grid, so the 1 m kit-bash donors keep their detail.

## Kit-bash (before it01)
- **Pit.** The Plosky Tolbachik summit pit (ArcticDEM 2 m) cut out relative to its own rim and carved into the plain at (300, −1550) on the vent fissure: rim radius 272 m, depth 146 m, feathered apron. First try let the lava CA pour into the pit and build concentric terraces (CA terracing) and source domes; the pit is now an obstacle for the flow CA (+400 m during the spread) and holds only the lake.
- **Lava lake.** Lowest 4 % of the pit floor + 9 m flooded: 25 600 m² crusted pond (~180 m across) at 486 m.
- **Flow field.** CA from the south vent-fissure segment (232, −1060)→(120, −560), 24 units, 30 M m³, window 5.6 km anchored so the field can run west and south; 3.8–4.0 km² of new flows. They bury the inpainted Kröflustöð site in the south valley, which hides the last road traces. The surface relief is a **stitched mosaic** of ~140 Etna tiles (700 m, rotated to the local flow direction, half mirrored across the flow axis, raised-cosine blended) plus ~110 Big Obsidian tiles on patchy distal zones.
- **Cones.** The Great Rift strip (as in map A) on the north fissure segment (380, −1870)→(560, −2900): 6 cone throats detected.
- **CA bug found later (it01).** The copied CA could build 1 km lava spikes: (a) its active-region box was refreshed every 25 iterations with a 6-cell margin, and (b) the squared downslope bias could hand a neighbour ~20× its head difference, so converging flows overshot. Fixed with a 30-cell margin, a per-neighbour cap of half the unbiased head difference, a 3×3 median and an 18 m clamp on the residual thickness.

## Deposit simulation
- One Pele-type plume in the pit: vent speed 92 m/s, zenith 30° ± 11°, 3 M particles per episode, 3 episodes (current, older, oldest) with their own azimuthal **mass lobes** and **range lobes** (Pele's deposit is heart-shaped, not a ring), 7 rays, gas fraction 14 % at 1.25× speed (lands as frost/pale fringe). Range p50 ≈ 1.9 km, p95 ≈ 3.1 km at 76 m/s (first run), ring R ≈ 3.3 km at 92 m/s.
- **Dark pyroclastic fan:** the 20 % coarse proximal clasts (0.3–0.75 × V) are accumulated separately; many hit the pit walls, the rest form a dark fan round the pit (baked into `emit.png` alpha).
- **Incidence/lee:** slopes facing the vent catch up to 2× the fallout, lee slopes down to 0.15× (gradient of the 6 m-smoothed DEM against the direction to the vent). Together with the terrain control from map A (lows fill, crests and steep faces shed) this breaks the zones along the real Krafla relief.
- **Pele colour index:** red (1.0) to q = 0.42 R, orange to ~0.95 R, acid yellow to ~1.3 R, pale cream beyond, with ±12 % per-clast scatter so the zone edges are ragged; older episodes fade by 25 %/unit age.
- First run (76 m/s, no lobes) gave one near-perfect orange disc that left the south half bare; lobes, incidence and 92 m/s fixed the shape and reach.
- Fumarole crusts: narrow elongated clusters (2.5–5 × longer than wide) along the real Krafla fissures (great fault, two swarm fissures), the Víti rim, the real Leirhnjúkur solfatara, the vent fissure and the pit rim.

## it01–it05 (shader, against it01 data)
- **it01.** First full render. Spikes (CA bug above). Pit walls were not treated as walls (map A's wall threshold expects > 45°; the Tolbachik pit walls are 35–45°), wall camera pointed at flat ground, the deposit read as a tan/khaki orange, the plume was a dark smoky band.
- **it02.** Wall threshold lowered to 34–50° (`cliffW`), Pele palette made more saturated (orange .86/.34/.05, vermilion .62/.13/.04), coverage = smoothstep of the simulated amount so moderate deposit means continuous crust. The dark pyroclastic fan then swamped the whole near field; smooth slopes showed contour stripes from the 8-bit normal map.
- **it03.** Following the map A review notes: no mid-frequency noise in the deposit threshold at all (it read as leopard print); edges come from the terrain (fine and broad topographic position, slope) and the Dallol micro height only roughens the edge. Pyro fan narrowed. Plume volume made particulate (fine radial grain, lower gain, paler cool tint) — now a translucent umbrella of grains that the stars show through.
- **it04.** Polygon cracks in thick crust tried; at 0.55 opacity they read as a reptile net, now 0.35 with jittered cells and only on the thickest crust.
- **it05.** Added `[path removed]` (broad 80 m topographic position + deposit episode age). Lows and valleys go pale yellow/cream (condensate and fine fallout pool there), rises stay red-brown, older-episode areas are duller and browner. This gives the terrain-anchored red/yellow/cream mottling of the reference without noise blobs.
- **it06.** Night camera: thin red "neon" outlines along every flow margin. Not emission (debug view 4 showed none): the steep 2–8 m flow fronts now pass the lower wall threshold and got the reddish scoria wall beds, which the lava irradiance lit red. Scoria beds are now limited to old walls (× (1 − fresh)).
- **Deposit sampling noise.** The fringe "leopard" holes that survived it05 came from the simulation itself: few particles land at the fringe, and the 6 m-smoothed counts are Poisson noise that the shader then thresholds. The counts are now smoothed adaptively (6 m where dense, 30 m σ where below half the reference density), so fringe breakup comes only from the terrain weighting. The crack-condensation boost only acts inside thick fallout.
- **it07** (first render with the fixed CA, adaptive deposits, aux map). No spikes. Overview reads Pele-like: red/orange north and centre, a dark flow tongue and a dark pyroclastic halo round the pit, yellow and cream in the south and in the valleys, zone edges following the relief. Gameplay: red/orange plain cut by the black flow field, glowing fissure and lake in view. Problems: the scaled pit walls are smooth brown slopes; the 2 m lake emission mask smeared into horizontal glowing streaks on the pit walls; pit-rim fumaroles read as cream blobs; the en-echelon fissure steps (±1.6 m) were invisible at 2 km.
- **it08.** Fissure en-echelon steps widened (26 m segments, ±3.5 m offsets, jagged width, crust bridges): now readable as a broken dashed fissure from the gameplay camera. Deposit texture contrast raised (tint mix 0.42) with sparse crisp salt/SO₂ flecks on the micro-relief highs; palette pushed further to vermilion; fresh flows lighter grey so their relief reads.
- **Terrain roughness** baked into `aux.b` (rms of 2–8 m relief over ~20 m): rough old lava holds a thinner, redder crust with dark rock showing; smooth surfaces get an even coat. It brings out the real buried Krafla flow lobes under the deposit (terrain-anchored variety, no noise).
- **Pit walls, attempt 1: benches** (depth remapped to 9 m steps). Looked like an open-pit mine (zebra contour lines) and leaked onto the outer apron. Discarded.
- **Pit walls, attempt 2: concave depth remap** inside the rim, depth' = D·(1 − (1 − depth/D)^1.8): the real plan shape, rim line and floor stay, the top of the wall gets 1.8× steeper (near-vertical upper cliffs over a talus apron). A first version (depth^0.55) had an infinite slope at the rim and creased into double arcs. Flow obstacle tightened from 1.12 to 1.05 × rim radius so the lava laps the rim apron instead of stopping on a circle.
- **Lake.** Crust plates darker; only some plate seams glow, the fine network only where hot; the molten margin is broken into arcs (I32 Pele night image) instead of a continuous honeycomb ring.
- The CA result is now cached (`ca_cache.npz`, keyed on the flow config and pit footprint) with the RNG state, so pit and detail changes no longer re-run the 10–15 min spread.
- **Review notes on it08** (orchestrator): flat poster-like red fill, flat black flows, pale "vector stroke" outlines at the deposit/flow boundary, abrupt square map edge. Changes for it09+:
  - lighting from map A round 3: sun 5.2, exposure 1.4, neutral grey hemisphere ambient; basalt albedo from texture luminance (mid-dark grey, faint warm cast);
  - deposit tonal mottling from the scan sets themselves (mixed-ochre at ~140 m and iron-red at ~30 m, anti-tiled) instead of noise; rust-dark/bright patches; thin crust lets the basalt through (40 %); lighter crests; subtle broad radial ray structure from the plume vent (a first, strong version read as a cartoon starburst);
  - flows: grey-black luminance of the kit pahoehoe/'a'a sets (albedo ~0.08–0.12), roughness 0.5–0.86 varying with a ~10 m sheen pattern so glassy and dull patches catch the low sun;
  - the pale outlines came from the "lows are paler / hold more fallout" rules firing at the foot of every steep flow front; both are now suppressed within ~20 m of the flows (fresh mask sampled with a mip bias);
  - deposit thins onto the flows instead of stopping at their edge: on fresh lava a thin crust survives only in the pahoehoe micro-lows where the (pre-burial) fallout is thick, never on hot crust;
  - the apron (context ring) continues the plume deposit from the map's blurred edge and fades it out over ~2 km, patchy on the coarse relief, so there is no square seam; apron basalt uses the same grey as the map.
- **it10–it13.** it10 with the review changes: deposit has metre-to-100 m texture and tone; flows grey-black with sheen; but the flows near the vent got a heavy red crust (thin-onto-flow rule too generous), the cinder fan read chocolate brown (red cinder texture), the apron deposit was blocky (noise threshold on a 128 m mip), the pit interior read khaki/olive. it11–it13: flow crust limited to the thickest fallout in pahoehoe micro-lows; cinder fan from texture luminance (dark grey); thin crust = pale desaturated film at reduced opacity (no grey-yellow mix → no olive); apron fade without noise; map-A round-3 wall bedding copied (beds keyed to elevation with dip, lenses, occasional scoria, joints); wall detection 25–41° so the 35–45° pit and cone walls shed fallout; lake point light 60 000 → 25 000.
- **Pit khaki, root cause** (debug view 1): the cold-trap model filled the whole pit with SO₂ frost (low insolation in the deep pit), on top of pyroclastics and red deposit. The lake heats its pit, so frost is now suppressed within ~150 m of molten lava (σ 90 m blur of the emission mask). Larger 650 m tonal structure from the mixed-ochre set; thinner fallout darker and rustier.
- **it14–it17.** The pit still read pink/khaki and the walls red-brown even after the frost fix; tried darker neutral basalt, a rust-brown (not beige) thin crust, an iron/salt fumarole fringe without the green terrace set. Little changed, which pointed at a bug rather than tuning.
- **it18: the bug.** An albedo debug view (debug 6) and a weight view (debug 7: wDep/wPy/wFum) showed `wDep ≈ 0.5` everywhere, even with deposits switched off: the new "crust on flow tops" term was combined as `vDep = max(vDep, vFl)` with `vFl = fresh * (…)`, which is 0 (not negative) off the flows, so `vDep` was clamped to 0 and the smoothstep threshold returned 0.5 → a half-strength deposit wash over walls, the cinder fan, the pit and the fringes. Fixed (`vFl` = −1 off the flows). This removed the khaki/pink wash and most of the "flat poster" look: the pit is now dark grey cinder with lava-lit layered walls, the pit rim keeps its red crust, the dark fan is dark.
- **it19.** Crust on flow tops limited to the deepest pahoehoe micro-lows under the heaviest fallout (the near-vent flows had a spotty red film). Final round-1 captures: `030-it19-*`.

# Round 2 (2026-10-13)
Review notes (orchestrator, on it19): smooth painted pit walls (shrunk 2 m donor), graphic Voronoi lake, radial starburst, flat saturated red, cookie-cut fan/flow edges with orange outlines, camouflage on the vent-hero ridges, invisible scatter on the plain, blocky apron corners / square edge, orange lines at night.
- **r2-01: pit donor swapped** to the real Puʻu ʻŌʻō 2018 pit (USGS/OpenTopography 0.5 m DTM → 1 m) at **native scale**: walls added whole (> 20 m below the fitted flank plane), only the cone flank feathered (330–520 m). Rim ~180 m radius, 274 m deep, crisp near-vertical walls, real talus aprons at the wall feet. Lake levelled 105 m above the floor minimum (17 400 m²). Lake mask baked into `aux.a`; 4 spatter fountains placed near the margin (`features.json lakeFountains`). Rays removed from the sim (`rays: 0`), azimuthal mass lobes halved. Scatter: new `plain` (3 900 sparse 1.5–7 m blocks) and `pitbombs`[path removed]`apron_32m_dep.bin`, normalised-convolution extrapolation), no texture mips → no blocky corners.
- **Lava lake** (new shader): rafted dark crust plates at three nested Voronoi scales (36/10/3.2 m; big plates split at random → 2–40 m plates), domain-warped seams (torn, curved), per-seam opening and width, slow drift, per-plate rotation of the crust texture and slight tilt (relief), a broken incandescent margin from the baked emission, faint halo; GPU spatter fountains (Io ballistic, cooling). Restricted to the flat lake floor (geometric normal + lake level) — the 2 m mask first smeared up the walls as vertical glow streaks. The lake no longer receives its own baked irradiance (it was washing the crust orange).
- **r2-02..06: edges.** The fan and the deposit used to be cut by the hard 2 m flow mask in the bake (orange outline = deposit rim at the mask edge). Both are now reconstructed before burial and buried by one gradual factor from a ~10 m blurred flow mask, so fan → deposit → flow grade without strokes. Fan amount sampled at ~12 m (mip) and its sim accumulation half-blurred at 24 m: no tan speckle. Below-threshold fallout now gives a gradational thin dusting instead of bare ground.
- **r2-07: colour.** Terrain-tied hue mottling in the red/orange zone: rough old lava (aux.b) and rises go rust, smooth lows ochre/orange, on top of the scan-set structure; stronger relief shading of the crust (fine and broad topographic position). Fan slightly smaller.
- **r2-08..12: vent hero / lee.** Lee weighting in the sim softened (incidence 2.5, min 0.45, was 4/0.15), lee faces get a thin veneer from a ~60 m average of the fallout. A first wall-veneer term put orange blotches on the pit walls (and its lee term was not masked on walls); both fixed: walls only get a faint streaked stain in the cooler yellow zone. Apron fade made radial around the vent (the square-distance fade showed as a rounded square ring).
- **r2-13:** lake point light synced to the config (12 000, 85 m above the lake). Final captures: `045-r2-12-{gameplay,vent,overview}`, `046-r2-13-{close,wall,night}`.
