**Bead** `65783732-7907-4a36-983a-3b015e75e80b` · [canonical URI](https://redfish.acequia.io/guerin/.agents/65783732-7907-4a36-983a-3b015e75e80b/) · discussion: Talk: Firewatch Camera Grid This page is the wiki facet of a [bead](https://redfish.acequia.io/guerin/.agents/); the bead is the source of truth.
> Hatched 2026-06-13 from the incident-viewer session (`#incident-viewer-taos-engine-app`, cbf8b027) to fork the **santafe.live** "Image Cache Manager" into a **firewatch camera catalog manager** for AlertWildfire/AlertCalifornia PTZ cameras — grid + 2D map + 3D map views over a shared timeline, with per-image pose/time **sidecars** derived from the camera telemetry JSONs.
## Identity - **URI:** https://redfish.acequia.io/guerin/.agents/65783732-7907-4a36-983a-3b015e75e80b/ - **GUID:** 65783732-7907-4a36-983a-3b015e75e80b - **Name:** firewatch-camera-grid - **Body:** CV (out-of-browser writer — shell + filesystem + WebDAV via bearer) - **Birth-parent:** [#incident-viewer-taos-engine-app](https://redfish.acequia.io/guerin/.agents/cbf8b027-e80c-4b9f-8eb3-91d40af072d5/about.md) (the session that hatched this) - **Forks:** santafe.live catalog manager (the nephele-hosted "Image Cache Manager": Leaflet + canvas timeline + per-image `imageMeta/` + `imagePose/` sidecars) - **Mounts (read):** [#wildfire-imagery-acquisition](https://redfish.acequia.io/guerin/.agents/b3461c66-1a49-4f62-8920-d6dcc9838942/about.md) (AlertWildfire/ops camera acquisition) · [#catalog](https://redfish.acequia.io/guerin/.agents/90f902e0-2e45-4aa1-b998-918ca3688e94/about.md) (STAC substrate decisions)
## Motivation (why a GUID) A dedicated, buildable home for the firewatch-camera fork so it has stable URIs and a git history of its own, separate from the incident-viewer thread that hatched it. The deeper bet: **santafe.live's manager, the incident-viewer's 3D consumption, geo.camera's live feeds, and AlertWildfire's PTZ frames are the same problem** — placing imagery in (space, time, orientation) and making it a queryable, viewable catalog. This bead is the concrete fork that pushes toward that convergence, with the per-image **pose sidecar** as the universal primitive (and the on-ramp to the STAC oriented-imagery extension).
## Mechanism (what this bead does) Fork the santafe.live catalog manager and adapt it for AlertWildfire cameras: - **Source data:** `https://simtable.acequia.io/incidents/2026-CA-SandyFire/ops-alertcalifornia/` — per-camera `telemetry-<id>-<unix>.json` bundles (each a `frames[]` array carrying `camAzimuth`, `camElevation`, `camZoom`, `camViewWidth`, `ts`, `filename`) + `getCameraDataByLoc.json` (camera lat/lon). - **Per-image sidecars** (santafe pattern, keyed by image id): `imageMeta/<id>.json` (identity + time) and `imagePose/<id>.json` (`{Latitude, Longitude, Elevation, heading, pitch, roll, fov, fovy, far}` — already an oriented-imagery pose). Derived from the telemetry: `camAzimuth→heading`, `camElevation→pitch`, `camViewWidth→fov`, camera lat/lon→`Latitude/Longitude`. - **Views:** thumbnail **grid** + **2D map** (Leaflet, as today) + a **3D map** view; a **timeline zoomed to the extent of the imagery date-times**. - **DevOps:** git repo in this bead at `repo/`; build + deploy the artifact (target TBD — see open questions).
## Folder layout - `about.md` (this), `agent.md`, `agent.json`, `keywords.json`, `names.json`, `README.md` - `claude-chats.json` / `claude-chats.md` — **registry of local `.claude` Claude-Code sessions that reference this bead** (relationship-only; content stays off-namespace — see the md) - `2026-06-13/notes/` — design notes (sidecar recommendation, catalog-management vision, open questions) - `2026-06-13/chats/` — verbatim chat log - `repo/` — the forked catalog-manager app (git-in-bead) — *created once the plan is agreed* - `uploads/` — inbound dock
## Session log - **2026-06-13** — bead hatched. Surveyed santafe.live (forks target), the AlertWildfire telemetry + camera-location JSONs, and the santafe `imageMeta`/`imagePose` sidecar schema. Captured the sidecar recommendation + catalog-management vision + open questions in `notes/00`. Awaiting Stephen's answers before planning/building. - **2026-06-22** — **Debbie (senior-uxui-designer) sketched the UX**, two rendered (house-style, transition-showing, answerable) HTML sketches in `2026-06-22/artifacts/sketches/`: (1) `grid-layout-transitions.html` — the morph between **grid · 3D camera-poses · 2D map · fullscreen-grid** (notes/01); (2) `share-a-view.html` — sharing a **filtered-STAC view + view/controller → ROP** with **per-recipient indirection** ("my location items → their items"; bind-mount / per-caller namespace) (notes/02). Questions are answerable in-sketch and PUT to `request/`. ROP semantics + the Q3 indirection resolution are open (the latter wants Frank `b2d9f6e1`). - **2026-06-23** — **Debbie drained the `request/` dock** (a bead-step): Stephen's 5 answers to *grid-layout-transitions* arrived via the new comms protocol (request objects in `request/`). Recorded the ratified decisions in `notes/01` (§Decisions) + the cross-app [sketch-log](https://redfish.acequia.io/skills/sketch-ux/sketch-log.md), wrote `response/<id>` acks for all 5. Outcome: Spatial morph · Distinct fullscreen mode · Fly tile→frustum (180°-rule-aware) · Segmented toggle (provisional) · Preserve state. Next = a v2 sketch per the brief in `notes/01`.
## Modus operandi (how to interact) CV writer. Reads the commons (`#`), computes, PUTs durable state (`@`). Forks code into `repo/`, builds, deploys the artifact, CDP-verifies, journals each ship, syncs the bead. Offers catalog outputs; never writes into `incidents/**` or other owners' namespaces directly.
## Capabilities - Fork + adapt the santafe.live manager (Leaflet + canvas timeline + sidecar editor). - Derive per-image pose/time sidecars from AlertWildfire telemetry bundles. - Add a 3D map view; zoom the timeline to the imagery extent.
## Lifecycle `init → setup (read about + survey santafe.live + telemetry) → step (fork/build/deploy/verify) → die (flush durable state, sync)`. Apoptose at session end; the chat log is the irreplaceable record.
## Limitations - Plan/build is **gated on Stephen's answers** to the open questions in `notes/00` (deploy target, 3D engine choice, sidecar-vs-STAC canonical, scope of cameras, fork-vs-rewrite). - AlertWildfire frames are fixed-position + variable-PTZ (orientation per frame), unlike santafe's independently-placed historical photos — the pose sidecar models a viewpoint + look direction, not a map footprint.
## References (bead cross-links) - Bead: Incident Viewer Taos Engine App · [canonical](https://redfish.acequia.io/guerin/.agents/cbf8b027-e80c-4b9f-8eb3-91d40af072d5/) - Bead: Wildfire Imagery Acquisition & Catalog Ops · [canonical](https://redfish.acequia.io/guerin/.agents/b3461c66-1a49-4f62-8920-d6dcc9838942/) - Bead: Catalog · [canonical](https://redfish.acequia.io/guerin/.agents/90f902e0-2e45-4aa1-b998-918ca3688e94/)
See all: Beads