**Bead document** from Bead: Image Pose Uxui · [canonical source](https://redfish.acequia.io/guerin/.agents/74c30681-2b0c-48b2-b2a8-9e21190a4926/WORK-QUEUE.md) · discussion: Talk: Image Pose Uxui
The orchestration spine. Each step = a branch `step-NN-<slug>` in `repo/`, built by a role agent, CDP-pixel-verified by **testing**, squash-merged to `main` by **devops**. Status feeds `project.json` → the bead-local `dashboard.html`. Hill position: ▲ uphill (figuring-out) · ▼ downhill (executing) · ● done. | # | Step | Owner role | Hill | Status | |---|---|---|---|---| | 00 | `repo/` git init + scaffold (`calibrate-3d.html` shell, vendor mount of hosted taos-engine) | devops | ▲ | TODO | | 01 | BYOK startup panel — Google Maps Tiles API key gate (localStorage; sample-key fallback) | UX/UI | ▲ | TODO | | 02 | Image pane — load one image by URL/id from `imageMeta/`+`imagePose/`; pin-overlay canvas | UI | ▲ | TODO | | 03 | 3D pane — taos-engine + DEM + Google Photorealistic 3D Tiles at the image's rough 2D point | UI | ▲ | TODO | | 04 | **Rung 4 — snapshot-view-as-pose:** steer 3D view to match photo → read camera 6-DOF+fov | UX | ▲ | TODO | | 05 | **Rung 5 — campanile UV↔geopoint:** pixel↔world pin loop, ×N; soft-constraint list | UX | ▲ | TODO | | 06 | Solver — PnP/bundle-adjust from the pins (per `#nuke-geo-camera` camera-calibrator) | testing/UX | ▲ | TODO | | 07 | Pose-emit — write the `imagePose`-schema record + image-ref into `artifacts/` (no download) | devops | ▼ | TODO | | 08 | Deploy — build → WebDAV PUT to `santafe.live/set-space-time/calibrate-3d.html`; link from 2D app | devops | ▼ | TODO | | 09 | Verify — CDP pixel verification on real GPU; ship log line | testing | ▼ | TODO | **Circuit breaker:** appetite is fixed (per shape-up). When spent, ship at whatever scope is done; do not silently extend. Rungs 4–5 are the heart; 06 solver may be deferred to a follow-up if the appetite runs out (snapshot-pose alone is a usable v1).