**Bead** `182bd1a7-a376-4dd0-b445-578adc6635b9` · [canonical URI](https://redfish.acequia.io/guerin/.agents/182bd1a7-a376-4dd0-b445-578adc6635b9/) · discussion: Talk: Fire Progression This page is the wiki facet of a [bead](https://redfish.acequia.io/guerin/.agents/); the bead is the source of truth.
## Identity - **URI:** `https://redfish.acequia.io/guerin/.agents/182bd1a7-a376-4dd0-b445-578adc6635b9/` - **GUID:** `182bd1a7-a376-4dd0-b445-578adc6635b9` - **Slug:** `fire-progression` - **Opened:** 2026-06-16 - **Body:** CV (Claude Code extension — shell + filesystem; local origin is source of truth, PUT/bead-sync propagates) - **Mounts (read):** `cbf8b027` incident-viewer-taos-engine-app — **holds the Sandy Fire STAC** (`cbf8b027/.../artifacts/stac/2026SandyFire/`): time-stamped **heat-perimeter KMLs** (`perimeters/`, 183 → 2,114 acres) AND a **first TOA fire-progression item** (`progression/items/toa-2026_CAVNC_042326_sandy.json`, encoding `simtable-flamesim-rgb`). This bead is the spec/workshop *over* that data. Sibling: `b6fcda63` ants/fire-in-taos (forward slope-biased fire CA — the inverse problem: simulate spread, not interpolate observed perimeters).
## Motivation (why a GUID) Stephen opened this bead with a spec: **interpolate time-stamped fire perimeters (+ origin point if available) into a time-of-arrival raster**, encoding integer minutes-from-origin in RGB (red = most significant bits), via a **level-set method**; if no origin is given, use an interior point of the first perimeter closest to the polygon centroid ("center of mass"). A fresh GUID keeps this algorithm's notes, chat, and the imported Sandy narrative out of the global namespace while giving siblings a stable URI.
## Mechanism (what this bead does) - Workshops the **progressionMaker / fireProgression** algorithm: ordered time-stamped perimeters → a level-set (signed-distance / Eikonal-style) interpolation of the fire front between observation times → a per-pixel **time-of-arrival (TOA)** field, written as an RGB PNG + worldfile + a timesteps/acres metadata JSON. Minutes-from-origin are packed across channels with **red carrying the high bits**. - **Origin rule:** prefer a reported ignition point; else pick the first perimeter's interior point nearest its centroid. For the worked example the true ignition point is now known (see below) and is *north of* the existing raster's centroid-derived origin — a candidate re-anchor. - **Worked example = the Sandy Fire** (CA-VNC-SANDY, 2026-05-18, Simi Valley). Origin imported this session; full narrative imported to `artifacts/`.
## Folder Layout - `about.md` (this), `README.md`, `bead-bind-startup.md`, `keywords.json`, `names.json` — root self. - `2026-06-16/notes/` — `00-toa-raster-from-perimeters.md` (algorithm spec) · `01-sandy-fire-worked-example.md` (origin point + STAC mount + the t0 discrepancy). - `2026-06-16/chats/` — verbatim chat log. - `2026-06-16/artifacts/` — `sandy-fire-narrative.md` (imported external source, attributed). - `uploads/` — inbound dock.
## Session Log - **2026-06-16** — bead opened. Spec captured. Mounted `cbf8b027`'s Sandy Fire STAC (perimeter KMLs + the existing TOA item with `toa:source: levelset interpolation of NIFC perimeter KMLs`). Recorded the reported ignition origin (2600 block Rudolph Drive, Simi Valley — `34.25235, -118.746484`) and imported the fire narrative from the njsr.com.ng announcement. Flagged that the reported t0 (10:17 PDT ≈ 17:17 Z) precedes the existing TOA item's `start_datetime` (23:49 Z). - **2026-06-16** — added the reported ignition origin to the Sandy STAC (`cbf8b027`): new `origin/` collection + Point item `sandy-ignition-origin` (`Point [-118.746484, 34.25235]`, 17:17Z), wired as a catalog child, synced. Implemented + CDP-verified (NOT deployed, Stephen-gated) an `originFeature` red marker in the incident-viewer (`be9c3efd` repo, branch `dev/engine-update`). See `notes/02`. - **2026-06-18** — **STEP: built `2026Sandy_v2`** (the open re-anchor action). Wrote the bead's first code — `2026-06-18/skills/progression-maker.mjs` (dep-free: scanline rasterize + chamfer signed-distance + per-interval level-set blend + zlib RGBA PNG) — and ran it on the 6 AEVEX/NIFC perimeters re-anchored to the reported ignition origin (`34.25235, -118.746484`, 17:17 Z). Outputs in `2026-06-18/artifacts/2026Sandy_v2/{png,pgw,json}` (1122×651, cell 0.00005°). Minted STAC item `toa-2026Sandy_v2` in `cbf8b027`'s `2026SandyFire-progression` (supersedes the centroid-origin v1). See `notes/00-step-2026Sandy_v2.md`. Pending `/bead-sync` of this bead + `cbf8b027`.
## Modus Operandi (how to interact) Read `bead-bind-startup.md` first. The algorithm spec is `notes/00`; the Sandy grounding is `notes/01`. The reference implementation already runs at `simtable.com/apps/fireProgression/` and produced `output2026/2026_CAVNC_042326_sandy.{png,json,html}` — treat that as the existing baseline this bead documents/reworks.
## Capabilities Documents the perimeter→TOA interpolation. Inputs: ordered `{datetime, polygon}` perimeters + optional origin. Output: RGB TOA PNG + worldfile + `{times_utc_ms[], acres[]}` metadata.
## Lifecycle Open. bead-sync after a dirtying turn. Apoptose when the spec + worked example are stable → fold a durable summary back and `/end-bead`.
## Limitations - The reference TOA PNG/JSON are hosted at simtable.com, not bead-local; this bead holds spec + provenance. - The imported origin (34.25235, -118.746484) sits just **north of** the existing raster bbox top (34.25173) — recomputing TOA from this true ignition point would shift the t0 anchor; not yet done.
## References (bead cross-links) - Bead: Incident Viewer Taos Engine App · [canonical](https://redfish.acequia.io/guerin/.agents/cbf8b027-e80c-4b9f-8eb3-91d40af072d5/) - Bead: Ants In Taos · [canonical](https://redfish.acequia.io/guerin/.agents/b6fcda63-c171-4293-9d99-75297f4205bb/)
See all: Beads