Note 01 (2026-07-03) — FFT Light Field Exploration (Image Pose Uxui)

**Note** from Bead: Image Pose Uxui · [canonical source](https://redfish.acequia.io/guerin/.agents/74c30681-2b0c-48b2-b2a8-9e21190a4926/2026-07-03/notes/01-fft-light-field-exploration.md) · session 2026-07-03 · discussion: Talk: Image Pose Uxui

## Goal Use FFT analysis of saved camera views to discover "coherence attractors" — poses where the three saved views align best in frequency domain. This complements the existing Levenberg-Marquardt solver with a global coherence landscape view.

## Three Saved Views - View A, B, C: camera poses saved in through-the-lens calibrator OPFS storage - Each has: camera position (Lat/Lon/Elev), orientation (heading/pitch/roll), FOV, + rendered reference frame

## FFT Light Field Concept **Analogy:** The frequency response of the 3D reference scene (as seen from different camera poses) is like a "light field" or "potential energy landscape." Where poses see maximum coherence (consistent frequency patterns), they sit in a "potential well." - **Frequency-domain stability** = how much FFT magnitude/phase changes with small camera motions - **Gradient field** = direction of maximum stability change in camera parameter space - **Attractor** = pose where all three views' FFT gradients converge (consensus coherence)

## Three Visualization Families (Buxton Sketches) ### Family 1: Landscape Views (A, B, C) - **Idea A:** Color-coded FFT stability (red=unstable, green=sticky) - **Idea B:** Gradient vector field in (heading, pitch) slice - **Idea C:** Phase coherence matrix across frequency bands ### Family 2: Real-Time Guidance (D, E, F) - **Idea D:** "Coherence Compass" — arrows overlay showing where to move camera - **Idea E:** Parallel coordinates showing pose dimensions vs. FFT response - **Idea F:** Screen-space "coherence contour" heatmap (like topographic map) ### Family 3: Multi-View Consensus (G, H, I) - **Idea G:** Pairwise FFT distance (find centroid in pose space) - **Idea H:** "The Lens Attractor" — 3D visualization of convergence point - **Idea I:** Helmholtz decomposition (curl-free + swirl components)

## Open Questions (for Debbie + implementation) 1. **Which visualization family resonates?** Passive landscape (A/B/C), active guidance (D/E/F), or consensus view (G/H/I)? 2. **Frequency-domain or image-domain?** FFT magnitude/phase vs. SIFT/ORB features (they may disagree on coherence) 3. **Real-time vs. on-demand?** Compute FFT gradient field continuously, or sample on-demand? 4. **Scope:** Three views only, or generalize to N views? (scales from 3 poses to full survey of parameter space)

## Implementation Roadmap ### Phase 1: Data Extraction - CORRECTED (same day): the saved views live in **localStorage key `v2_shots`** (not OPFS) — three `{url: JPEG dataURL, pose}` snapshots persisted by `repo/dev/through-the-lens-test-v2.html` (`saveShots()`) - Tool: [repo/dev/export-shots-to-bead.html](https://redfish.acequia.io/guerin/.agents/74c30681-2b0c-48b2-b2a8-9e21190a4926/repo/dev/export-shots-to-bead.html) — open on the origin where v2 ran; it reads `v2_shots`, previews, and PUTs `shot-N.jpg` + `poses.json` into `2026-07-03/artifacts/saved-views/` (the earlier generic OPFS/IndexedDB extractor was wrong and was deleted) ### Phase 2: FFT Analysis - Compute FFT for each view's rendered frame - Compute FFT gradient (finite-difference perturbations in pose space) - Build gradient field heatmap / vector field - Implement Ideas A, B, C as exploratory visualizations ### Phase 3: Interaction Design - Test which visualization (family 1/2/3) most useful - Prototype preferred idea (D, E, F, or G/H/I) - Integrate with existing through-the-lens UI (separate panel or overlay?) ### Phase 4: Solver Integration - Use FFT attractor as initialization hint for LM solver - OR: use FFT gradient as regularization term in LM cost function - Measure speed/quality gains vs. pure manual pinning

## Related Beads & Concepts - `#astronomical-pano` (9943ac1c): through-the-lens using celestial tie-points instead of terrain - `#nuke-geo-camera` (a55f5270): camera isomorphism + bundle adjustment solver - `#pose-ux-ui` (edb06426): design of the calibration ladder (pinning, soft constraints)

## Open: Debbie's Sketch Input Awaiting Debbie's feedback on which visualization family best supports user mental model. Sketches posted at `2026-07-03/artifacts/fft-visualization-sketches.html`.