Bead: Pose Ux Ui

**Bead** `edb06426-e7b9-4df1-aca5-64b385ba0d02` · [canonical URI](https://redfish.acequia.io/guerin/.agents/edb06426-e7b9-4df1-aca5-64b385ba0d02/) · discussion: Talk: Pose Ux Ui This page is the wiki facet of a [bead](https://redfish.acequia.io/guerin/.agents/); the bead is the source of truth.

> Seed. Hatched 2026-06-11 from `#incident-viewer-taos-engine-app` on Stephen's instruction (`bead-hatch pose-ux-ui`). Workshop for the **manual pose-setting UX/UI**: how a participant interactively gives imagery-without-telemetry a pose (position, heading, time, then full 6-DOF + intrinsics) — the calibration interaction layer of the catalog/viewer ecology.

## Identity - **name:** `pose-ux-ui` - **URI:** https://redfish.acequia.io/guerin/.agents/edb06426-e7b9-4df1-aca5-64b385ba0d02/ - **GUID:** `edb06426-e7b9-4df1-aca5-64b385ba0d02` - **Opened:** 2026-06-11 - **Birth-parent:** [`cbf8b027-e80c-4b9f-8eb3-91d40af072d5`](https://redfish.acequia.io/guerin/.agents/cbf8b027-e80c-4b9f-8eb3-91d40af072d5/about.md) (`#incident-viewer-taos-engine-app`). Immutable. Adoption-open.

## Motivation (why a GUID) Most incident imagery has **no telemetry or useful metadata** (crowdsourced photos, YouTube footage, watch-duty user images — cf. the Palisades archive's `kml-from-youtube/`, `watch-duty/user-images/`). To enter the catalog usefully, each image needs a **pose** — and when no KLV gives it, a human (or assisted human) sets it interactively. This bead designs that interaction. Stephen's framing (2026-06-11, verbatim intent): 1. **santafe.live is the first crack at a catalog manager** — placing imagery on a **2D map** (position), adding **heading**, and **setting it on the timeline**. That trio (where, which way, when) is the **beginning of calibration** for imagery with no telemetry. Existing stores: `santafe.live/imageMeta/` + `imagePose/`. 2. **A further 3D calibration function** belongs in incident-viewer (or probably a **companion app**, but partially implement some features in-viewer) — surfaced as TABS: - **Snapshot-current-view-as-pose:** navigate the 3D view (orbit/fly) until it matches the photo, then snapshot the view camera's pose+fov as the image's pose. (The dual of `h` sensor-lock: `h` takes the camera *to* a known pose; this *takes a pose from* the camera.) - **The campanile approach:** set **world geopoint constraints on UVs** in an image at a point in time — click a pixel (u,v), click its world point on terrain/3D, repeat; solve the camera (Debevec-style image-based pose recovery). Manual correspondence → solved pose. 3. Both are **manual interaction to set pose** — the human-in-the-loop end of a spectrum that runs toward solver-assisted and eventually automatic.

## Mechanism (what this bead does) - Holds the UX/UI design notes for pose-setting interactions across the 2D (santafe.live) and 3D (incident-viewer / companion) surfaces, and the schema the interactions emit (a pose record the catalog can bind — STAC Item + `view`/pose extension per `#catalog`). - (Next, TBD) wireframes/specs for the calibration tab(s), the snapshot-pose action, and the uv↔geopoint constraint editor.

## Folder Layout - `2026-06-11/{notes,skills,chats,artifacts}/` — standard session homes by kind. - `uploads/` — inbound dock.

## Session Log - **2026-06-11** — Hatched by `#incident-viewer-taos-engine-app` at Stephen's request, in the session that mounted `#taos-engine` + `#cataloging-incident` + `#incident-cataloging` + `#catalog` + the AnyHazard critique pair. Seeded with the directive note ([notes/00-stephen-directives.md](2026-06-11/notes/00-stephen-directives.md)) and the prior-art map. - **2026-06-17** — Mounted from the incident-viewer layer-tree session. Added [2026-06-17/notes/01-kml-init-georegistration.md](2026-06-17/notes/01-kml-init-georegistration.md): a KMZ/KML ground overlay (`LatLonBox`/`gx:LatLonQuad`) gives an image a **free initial georegistration** (the orthophoto-camera case) that the pose-setting UX refines. Hatched sibling **georegister-image** (`58091f55-cb28-41b6-98a9-be56cdab5890`) — shares this bead's UV↔geopoint editor + solver; georegistration = the ortho-image-producing aim of the same interaction.

## Related (cite, don't duplicate) - **santafe.live** — the live first crack: 2D placement + timeline; `imageMeta/`, `imagePose/`, `timeline.js` (lane-packing timeline studied in `#taos-engine`). - **Owen's Cesium image-placement plan** — [waldo.acequia.io/oduncan/plans/palisades-image-placement.md](https://waldo.acequia.io/oduncan/plans/palisades-image-placement.md): same function in Cesium (intrinsics/extrinsics panels, dual camera, view-from-image, gizmo). Parallel effort to learn from. - **`#catalog` ([90f902e0](https://redfish.acequia.io/guerin/.agents/90f902e0-2e45-4aa1-b998-918ca3688e94/about.md))** — the STAC substrate; a manually-set pose is what this bead's UX *emits* (posed photo = Item + `view`; FMV = pose-stream extension). - **`#incident-viewer-taos-engine-app` ([cbf8b027](https://redfish.acequia.io/guerin/.agents/cbf8b027-e80c-4b9f-8eb3-91d40af072d5/about.md))** — birth-parent; the 3D viewer where calibration tabs partially land; notes 03/04 hold the tab/manager UI frame. - **gsd `camera-pose.html`** — pose-matching precedent (`h` fly-to-pose adopted in the viewer).

## Modus Operandi (how to interact) - `#pose-ux-ui` to read this bead; `@pose-ux-ui` (PUT into `uploads/`) to message it.

## Capabilities TBD (seed).

## Lifecycle - Active, energized by the inbound reference from its birth-parent (`#incident-viewer-taos-engine-app` notes/session-log). Not yet synced.

## Limitations - Seed; design-only. No calibration code exists yet anywhere in the ecology beyond santafe.live's 2D placement.

## References (bead cross-links) - Bead: Incident Viewer Taos Engine App · [canonical](https://redfish.acequia.io/guerin/.agents/cbf8b027-e80c-4b9f-8eb3-91d40af072d5/) - Bead: Georegister Image · [canonical](https://redfish.acequia.io/guerin/.agents/58091f55-cb28-41b6-98a9-be56cdab5890/) - Bead: Catalog · [canonical](https://redfish.acequia.io/guerin/.agents/90f902e0-2e45-4aa1-b998-918ca3688e94/)

See all: Beads