Chat: Frustums Inspector Panorama (Time Line Web Component)

**Chat log** from Bead: Time Line Web Component · [canonical source](https://redfish.acequia.io/guerin/.agents/ade9cea6-f50e-4922-8266-4bdd14ed9c73/2026-06-21/chats/2026-06-21-frustums-inspector-panorama.md) · session 2026-06-21 · discussion: Talk: Time Line Web Component *Verbatim chat log: immutable provenance. The bead's copy is ground truth; wiki edits here are a fork, never the record.*

Animator: Claude (CV, Opus 4.8), invoked by Stephen. Verbatim prompts + what was done. Durable record is [note 04](../notes/04-frustums-projection-inspector-panorama-build.md); annotation design is [note 03](../notes/03-image-annotation-uv-vector-stac-sketches.md).

**Stephen:** look for a bead dealing with the firewatch-camera-grid app https://redfish.acequia.io/guerin/apps/camera-grid/ — if not found, start-bead firewatch-camera-app. grep for most recent chat that edited it which dealt with the service worker and cacheing. link that chat. we will change the markers on the map to be time based directional frustums like in this image and include a red line that reflects the heading of the UV that is mousing over. also when we inspect an image, we will want to bring it up covering the two bottom panels but still wanting to scrub the timeline. you can bring in bead uxui-senior-designer as we will start to annotate an image at a given time and start to add that uv vector (point polyline polygon or raster painting overlay as a URI that can be added to a STAC) **Stephen (while working):** i will be gone for 1 hour, continue working on it. make sure to use .git **Stephen (+ AlertCalifornia OPS screenshots):** heres the image. also get the panorama images too and store them in separately in the timeline so we can scrub them too. example panorama when an image is selected. and here is the url to the most recent panorama https://img.cdn.prod.alertwest.com/data/img/1901/2026/06/21/College_Peak_1_1782070838_7497_p.jpg **Stephen:** the red line will need to use the camera projection matrix to map a uv of the mouse point to a heading which will use the field of view (assuming mounted level) later we will map the image to phi-theta in the pansophere to handle full calibration. look at recent chats dealing with the astronomy of the treehouse camera and UXUI-pose

## What I did (CV) 1. **Found the bead.** firewatch-camera-grid = `65783732`. The **freshest app code** is *this* bead's `repo/camera-grid/` (firewatch `repo/` is `ad6a2d1`, pre-SW). **SW/caching chat linked:** [`2026-06-19-timeline-web-component.md`](2026-06-19-timeline-web-component.md) (SW frame-cache + process-latest, note 02). No new bead needed. 2. **Confirmed the data.** `_p`-suffix pano (HEAD 200 on the College Peak example); telemetry frame schema (`camAzimuth/camElevation/camViewWidth`, `camClearDayPano`); the Sandy archive has frames but **no panos** (404 mirror + CDN). 3. **Read the projection conventions** — astronomical-pano `9943ac1c` note 01 (treehouse Axis Q6075-E, 3-param → 5-param celestial calibrator, mount cant, `Panosphere.js`). Implemented the **level-mount special case** `uvToAzEl`; flagged the φ–θ panosphere as the documented next step. 4. **Brought in uxui-senior-designer** (sketch-led subagent) → note 03 (4 sketches, 6 Qs, smallest-slice rec). 5. **Built + committed** (`fb5d95f`): map frustums, red UV→heading ray, scrubbable inspector over the wall, panorama strip + resolver, annotation point/line/polygon → GeoJSON `data:` URI + STAC asset snippet. **CDP-verified** on :9333 (10 cams, frustums+ray, inspector/pano, readout, anno; no page errors). 6. **Did NOT deploy** — firewatch `repo/` + `apps/camera-grid/` deploy stays gated on Stephen (bundled with the note-02 SW changes).