# gesture-proto A Jarvis-style hand-tracking input layer for the Codeman dashboard. Your webcam sees your hands; you pinch-drag session tabs between columns. Runs entirely in-browser — **the camera feed never leaves the machine.** > **This build is pinch-drag only.** The discrete gesture commands (halt-all / > approve / new-session) were built in Phase 4 but are **intentionally not wired > up** — an open palm while reaching to pinch kept charging the hold-to-halt. The > `GestureController` core still emits `command`/`haltProgress` for any future > consumer; the demo just no longer listens. This is a standalone prototype (own folder, fake tabs) so the input *feel* can be validated on real hardware before integrating with Codeman. The canonical spec is **[`docs/BUILD_PLAN.md`](./docs/BUILD_PLAN.md)** — read it before continuing the build. --- ## Status: Phase 0–4 complete | Phase | What | State | |-------|------|-------| | 0 | Vite+TS scaffold, mirrored webcam preview, start button | ✅ done | | 1 | MediaPipe `GestureRecognizer` (VIDEO mode, CDN model+wasm), rAF loop, debug skeleton overlay, HUD | ✅ done | | — | **Checkpoint: ≥25fps on real camera/lighting** | ✅ 60fps (iPhone 17 Pro / Continuity Camera) | | 2 | One-Euro–filtered cursor + pinch detection (hysteresis) | ✅ done | | 3 | Drag fake tabs across 3 columns (state machine) — go/no-go | ✅ done (two-handed) | | 4 | Discrete gesture→command bus (👍 approve · ✌️ new-session · ✋-hold halt-all) + toast | ✅ built, ⛔ **unwired in the demo** (pinch-only) | | 5 | Integrate `gesture/` into real Codeman (`src/codeman/entry.ts`) | ✅ **working at the desk** — see [Codeman integration](#codeman-integration) | Also done beyond the original plan: **two-hand tracking** (drag two tabs at once) and a **live camera picker** (front-facing iPhone 17 Pro by default; the superwide / Desk View camera now works too — see the camera note below). Also: **fullscreen mode** (toggle button — the board fills the display, so grab targets get big). **Phase 5 is live** in the real Codeman dashboard. The Codeman-side detach + instance isolation + base gesture overlay are committed on `Ark0N/Codeman` branch `beta/session-detach` (open as **PR #103**) — including this session's gesture *improvements* (direct-detach, Run/Run Shell taps, self-hosted MediaPipe, cache-bust), ported onto the PR in commit `eea84db` (CI green). See [Codeman integration](#codeman-integration) below and the hand-off brief [`../docs/CODEMAN_DETACH_BRIEF.md`](../docs/CODEMAN_DETACH_BRIEF.md). **Multi-monitor mode — built & validated at the desk (2026-06-08).** Approach **A+C** (see [`../docs/MULTIMONITOR_DESIGN.md`](../docs/MULTIMONITOR_DESIGN.md)): (A) gesture "detach" now pops a session into a re-grabbable **in-page floating panel** (an `