**Note** from Bead: Incident Viewer Taos Engine App · [canonical source](https://redfish.acequia.io/guerin/.agents/cbf8b027-e80c-4b9f-8eb3-91d40af072d5/2026-06-11/notes/10-gestures-incidents-views-order.md) · session 2026-06-11 · discussion: Talk: Incident Viewer Taos Engine App
Stephen's directives 2026-06-12 (second batch) + the order question. Shipped in repo `90b9869`, deployed.
## Shipped - **Drag = pan** (mouse + touch; `touch-action:none`), **click = seek/jump**, 4-px click slop. Cross-clip click jumps clip+instant **without moving the 3D camera** ("more sophisticated cinematography later"). - **"Focus" → "Range"** — recommended and applied: it's the image-sphere distance that *tracks MISB slant range* by default (reset button already said "track slant"; "throw distance" was the runner-up). Settings panel now hidden behind a **⚙ gear** (top-right). - **Incident selector** (top-left, options from the catalog projection): switching **lerps the timeline window** (900 ms smoothstep) to the new incident's master span and **lerps the camera** (1.3 s) to its footprint overview; any manual input cancels the cinematic. **Sandy is enabled** — first non-Palisades incident live in the viewer (`packets[]` dialect verified: 2,454 samples, re-anchor 2026-05-18T18:13:41Z; terrain re-anchor unneeded — Sandy is ~20 km from Palisades). - **LIVE button** on the transport — disabled for archived incidents; will wire to **`acequia.io/remote-camera.html`** (Stephen's pointer) when live camera Items exist.
## Captured, deferred by the order decision - **Stored views + querystring shares** — Stephen: *"I can store views and have an easy way to pull them back. In fact those are a kind of STAC. and they are shareable as querystring references."* = note 08's share grades 1–2 concretized: a saved view = `{incident, clip, UTC t, window, camera-pose-as-ECEF, layer state}`; the `?v=` querystring is the grade-1 encoding; the user's saved-view *collection* is a personal view-catalog (a STAC of view-Items) — syncable/shareable later. **Deferred until after tracks + cameras** so the view schema captures layer state from day one instead of re-versioning.
## Recommended order (answered to Stephen) 1. ✅ this ship (gesture fixes, Range/gear, incident selector + lerps, LIVE stub) 2. **Aircraft tracks** — KLV platform paths (tracks already cached client-side); first non-FMV layer → seeds the layer-toggle UI; needs engine line/ribbon API reading. (The archive's `air-traffic/` KMLs become a STAC `tracks/` collection later.) 3. **Camera markers** from the STAC cameras collections (62 Palisades + 30 Sandy Items already cataloged) — position + az wedge (rung-1/2 pose render); no streams yet. This is "get ready for alertwildfire." 4. **Views + `?v=` shares** — schema now stable w.r.t. layers; views-as-STAC. 5. **LIVE wiring** via remote-camera.html — needs cameras (3) present; + an active-incident flag at the catalog level (note 05). Rationale: each step is the next one's substrate; views before layers would churn the view schema; LIVE before cameras is a dead button.
## Verification lesson (additions) CDP `Runtime.evaluate` needs `awaitPromise:true` for async IIFEs (a Promise serializes as `{}` — cost one false-fail); sync probes preferred.
## Addendum 2026-06-12 (v2 — shipped 6c83a93) - **Fly-to bug found + fixed** (Stephen: "something is fucked with flying locations"): (1) camera-lerp endpoints were world coords — a cross-incident flight re-anchors the terrain frame mid-animation, shifting the origin under the lerp → garbage; endpoints now **ECEF, converted per frame**. (2) `fetchTrack` cached results not promises → double-fetch + a race where the fly targeted the *old* incident's pose; now single-flight, fly chained off telemetry-set. Lesson for all future cinematics: **animate in ECEF, never world**. - **Gesture v2** (drag-pan conflicted with playhead): pan only via a ~15 px **grip strip** at the timeline's top; below it drag = scrub; click = seek/jump. `clampT` falls back to catalog duration (pre-metadata scrubs can't escape the clip). - **Stellarium date/time picker** off the UTC readout: per-field ▲/▼ + editable numbers, Date.UTC rollover normalization, follows playback unless focused, seeks cross-clip. - **Fly-to menu = incidents + view slots 1–10** (digit recalls, shift+digit saves; selecting an empty slot saves). Slot = proto view-STAC `{incident, clip, UTC, window, ECEF pose, yaw/pitch, opacity, mode, range}` in localStorage. **Future (Stephen, verbatim intent): "stacks can even record the path of the view camera in space and time and layer visibility and z-ordering as animatable"** — view-Items graduate to view-*track* Items (camera path in space+time + layer vis/z-order keyframes) = the animatable-tour/cinematography layer; pairs with note 09's globe heat-map and note 08's share grades.