**Bead document** from Bead: Anysurface Simulation · [canonical source](https://redfish.acequia.io/guerin/.agents/11fd8598-5a87-4a96-bd1d-a1d1563c14d7/bead-bind-startup.md) · discussion: Talk: Anysurface Simulation
**Current focus: DEPLOYED v1.0.0** at [guerin/apps/simtable-simulator](https://redfish.acequia.io/guerin/apps/simtable-simulator/) with README → this bead, MIT license, github-style [source viewer](https://redfish.acequia.io/guerin/apps/simtable-simulator/source/) and a source chip in the header; git history in this bead's `repo/`. **Update flow (hydrants pattern):** edit the bead artifact → copy to `apps/simtable-simulator/index.html` (adjust importmap to `../../agentscript/lib/`, header name/version) → commit into `repo/` → regenerate `source/manifest.json` + zip → sync both. Previous milestones (v0.5.x, v0.4.0): jet colormaps + legends + rollover readouts everywhere (including the 3D table), absolute table height map, reconstructed-height drape back onto the sand (AR-sandbox loop), epipolar-refine option (outlier gate: 184 mm → ~1–9 mm under noise+gamma), camera resolution to 12 MP via streamed decode (table height rms 0.79 → 0.48 mm at 1 MP). See [notes/02](https://redfish.acequia.io/guerin/.agents/11fd8598-5a87-4a96-bd1d-a1d1563c14d7/2026-07-08/notes/02-multiview-geometry.md). Next declared phase: minimal projection probes (see todo). **Do this first:** open [2026-07-08/artifacts/anysurface-simulation.html](https://redfish.acequia.io/guerin/.agents/11fd8598-5a87-4a96-bd1d-a1d1563c14d7/2026-07-08/artifacts/anysurface-simulation.html) in a WebGPU browser, press "run calibration", then switch to "scrub + fft" and drag the frame slider.
## Operative docs - [about.md](https://redfish.acequia.io/guerin/.agents/11fd8598-5a87-4a96-bd1d-a1d1563c14d7/about.md) — what and why. - [2026-07-08/notes/00-rig-and-decode-design.md](https://redfish.acequia.io/guerin/.agents/11fd8598-5a87-4a96-bd1d-a1d1563c14d7/2026-07-08/notes/00-rig-and-decode-design.md) — geometry, pattern sequence, decode math, engine gotchas hit. - [2026-07-08/notes/01-fft-global-information-question.md](https://redfish.acequia.io/guerin/.agents/11fd8598-5a87-4a96-bd1d-a1d1563c14d7/2026-07-08/notes/01-fft-global-information-question.md) — the research question the scrub mode serves. - [2026-07-08/chats/](https://redfish.acequia.io/guerin/.agents/11fd8598-5a87-4a96-bd1d-a1d1563c14d7/2026-07-08/chats/) — verbatim log.
## Todo (durable) - [ ] **Next phase (Stephen, 2026-07-08): minimal projection probes.** On a calibrated rig, after the sand changes (regen), recover the new height with few frames instead of a full rescan: epipolar lines leave 1 DOF per correspondence, and the prior height map is a strong prior. Related: minimal patterns for cam↔cam uv-uv correspondences (notes/02 §next phase). - [ ] Stephen: evaluate the FFT scrub mode; is there value in the global FFT information (Takeda-style single-shot decode, sideband demodulation) vs per-pixel temporal decode? - [ ] Dual-photography continuation: adaptive (conflict-driven) subdivision + transport-matrix T framing; the fixed Morton 2D code shipped in v0.3.0. - [ ] Offer the drawer/rail chrome (`.dtab/.tabstrip/.pgroup/.grail`) to the shared-components home bead `52670670` (Debbie's cross-app consistency charter) — offer-only. - [ ] Optional polish: camera pose/separation sliders, lens distortion, hole-filling in projector depth bins, full-res uv-map downloads from the streamed pass. - [ ] Dev serving note: locally serve `Documents/sites/redfish.acequia.io/` and open `/guerin/.agents/11fd8598-.../2026-07-08/artifacts/anysurface-simulation.html`; the importmap resolves the taos bundle at `../../../../agentscript/lib/taos-engine-ion.js`.