Chat: Fire Progression (Fire Progression)

**Chat log** from Bead: Fire Progression · [canonical source](https://redfish.acequia.io/guerin/.agents/182bd1a7-a376-4dd0-b445-578adc6635b9/2026-06-16/chats/2026-06-16-fire-progression.md) · session 2026-06-16 · discussion: Talk: Fire Progression *Verbatim chat log: immutable provenance. The bead's copy is ground truth; wiki edits here are a fork, never the record.*

Verbatim user prompts; assistant turns summarized with pointers to durable notes/artifacts.

**User (start-bead):** > start-bead fire-progression > this is an interpolation of time-stamped fire perimeters and origin point if available. > output is a time-of-arrival raster. we encode integer minutes from origin in rgb channels with red the significant bits. > we use a kind of level-set method for interpolation. if no origin is available, use an interior point of the first perimeter closest to the "center of mass" **Assistant:** Read the canonical bead protocol (`beads.md`) and `.ai/START-HERE.md`; generated GUID `182bd1a7-a376-4dd0-b445-578adc6635b9`. Surveyed the sibling fire bead `b6fcda63` (forward fire CA). Scaffolded the bead and distilled the spec into `notes/00-toa-raster-from-perimeters.md` (origin rule, level-set/signed-distance interpolation, RGB red-MSB encoding, output triple).

**User:** > mount-beads with sandyfire STAC infor that has kml permiters and a first TOA fire progression. the origin was reported in https://njsr.com.ng/index.php/home/announcement/view/187 to be: > > 2600 block of Rudolph Drive, Simi Valley, CA > 34.25235, -118.746484 > > import the narrative of the fire **Assistant:** Located the Sandy Fire STAC in bead `cbf8b027` (`…/2026-06-11/artifacts/stac/2026SandyFire/`) — confirmed it holds the time-stamped heat-perimeter KMLs (`perimeters/`) and an existing TOA item (`progression/items/toa-2026_CAVNC_042326_sandy.json`, `toa:source: levelset interpolation of NIFC perimeter KMLs`). Mounted it via `names.json` (`sandy-stac`, `sandy-toa-item`). Recorded the reported ignition origin (2600 Rudolph Dr, `34.25235, -118.746484`, ~17:17 Z) in `notes/01-sandy-fire-worked-example.md` and flagged that it sits just north of the existing raster bbox and that the existing TOA `start_datetime` (23:49 Z) post-dates ignition. Imported the fire narrative from njsr.com.ng #187 to `artifacts/sandy-fire-narrative.md`.

**User:** > but this reported origin in the STAC for sandy fire to be viewed in the incident-view.html. find the incident-view-epics to figure out structure and context **Assistant:** Studied the incident-viewer epic-4 bead (`be9c3efd`) + repo (`Documents/src/incident-viewer`): catalog walk is generic (loads any `rel=child` collection into the roster), `COLLECTION_ORDER` is sort-only, 3D rendering is per-collection and only `cameras` draws Point glyphs. Added an `origin/` collection + Point item (`sandy-ignition-origin.json`, `Point [-118.746484, 34.25235]`, 17:17Z, `fire:role: ignition-origin`) to the Sandy STAC in `cbf8b027`, wired as a catalog child, and synced. Recorded structure + render-feature plan in `notes/02`; dropped a dock note to `be9c3efd`. Flagged that the viewer repo is mid-flight (`dev/engine-update`, review-pending) so the marker render-feature + deploy are gated on Stephen's branch/deploy call.

**User (AskUserQuestion answer):** "Implement, verify, don't deploy." **Assistant:** Implemented `originFeature` on `dev/engine-update` (mirrors `camerasFeature`: red octahedron glyph at the origin Point, `loadOrigin` wired into `switchIncident`, `'origin'` in `COLLECTION_ORDER`, `window.__misb.origins()` hook). Built clean (chunk `index-CmHfQXWf.js`). CDP-verified against the Sandy STAC: `origin=1` ingested, `[origin] 1 loaded`, and `__misb.origins()` → `built:true, provisional:false, glyph:true, hidden:false`. NOT committed, NOT deployed (uncommitted on `dev/engine-update`: `index.ts` + `tools/origin-check.mjs`). Verification recorded in `notes/02`; follow-up dropped to `be9c3efd` dock.