21 Commits
Author SHA1 Message Date
jessikitty 44126ec3b4 feat: HUD shows pose rejections and detect resolution; detection long-edge configurable via nbx.detectLong 2026-08-24 11:51:19 +10:00
jessikitty f1830fc961 feat: keep the previous pose when the worker rejects one, and expose the rejection reason 2026-08-24 11:49:00 +10:00
jessikitty 83976205d6 fix: reject the mirrored coplanar-ambiguity pose — camera-below-sheet and teleport gates, reproj gate 8px -> 4px, rejection reason reported 2026-08-24 11:47:50 +10:00
jessikitty 2c78c48bcc fix: FOV applies to the image's long axis (iOS gives portrait streams — focal was 1.78x short); cap detection canvas long side (portrait was 1.6MP not 0.5MP); show duplicate detections in HUD 2026-08-24 11:26:45 +10:00
jessikitty f2ee880bf1 fix: deduplicate repeated marker ids in a frame — two quads decoding to one id gave solvePnP contradictory constraints (reproj 5px+) 2026-08-24 11:24:42 +10:00
jessikitty ef3c13d8c8 feat: cylinder occluders (shape/radiusCm/heightCm) for round props like the test rig post 2026-08-24 10:39:51 +10:00
jessikitty 06816c97c3 fix: derive camera FOV from the video and the object-fit:cover crop (was hardcoded 60deg vertical vs the video's 36deg — measured 1.7x projection error); aim check now compares in viewport NDC 2026-08-20 16:08:02 +10:00
jessikitty c4709bd6f8 perf: throttle detection to 20Hz (render stays full rate), use the worker-backed solver, add fps to the HUD 2026-08-20 15:49:31 +10:00
jessikitty 1ca29dca9f perf: solve-cv becomes a worker client — non-blocking solves, Mat reuse, filter stays on main thread 2026-08-20 15:47:40 +10:00
jessikitty 61cfd7f09b perf: run OpenCV in a worker — 10.8MB script parse + embedded WASM compile no longer blocks the main thread 2026-08-20 15:47:01 +10:00
jessikitty 4eda9f25cc tune: scale wander/path fallbacks to the table (radius 60cm->2.5cm, vertical 10cm->4mm, path speed 8->1.5cm/s, lookahead 6->1.5cm) 2026-08-20 15:27:49 +10:00
jessikitty bf36a21c74 feat: wire the dev Motion button (label reflects state); chip toggle routes through the same setter 2026-08-20 10:41:31 +10:00
jessikitty 0f8d1ec9ee tune: idle float scaled to the real display — 3mm bob (was 6cm), matching shimmer for wander and path modes 2026-08-20 10:39:04 +10:00
jessikitty 7cfadf2aca fix: load scene over HTTP so tracking no longer depends on the WebSocket; HUD shows scene state and detected-vs-usable crests 2026-08-19 16:31:37 +10:00
jessikitty c0a998ad19 fix: report raw detections alongside scene-filtered ones so a discarded crest is visible 2026-08-19 16:29:55 +10:00
jessikitty fc1b13cc26 v3: ghost triage instrumentation — WS rx trace, ghost record count, buildGhost error reporting, dev beacon, pose self-consistency (aim) readout 2026-08-19 16:06:12 +10:00
jessikitty 166dade2e0 v3: HUD shows opencv download progress (cv:loading N%) and retries load when tapping back to opencv 2026-08-14 21:54:49 +10:00
jessikitty 77e0845a71 v3: hardened opencv.js loader — fetch with download progress, robust runtime detection, 45s failover, retryable 2026-08-14 21:53:36 +10:00
load-v3 290976a6cc Import v2 base (unchanged files) 2026-08-13 12:45:29 +00:00
jessikitty 81f2168717 v3: exhibit.js — dual tracking engines (opencv board solve default, posit A/B fallback) 2026-08-13 22:42:37 +10:00
jessikitty 9fa1806e3b v3: solve-cv.js — joint multi-marker board solve (OpenCV.js), validated vs synthetic projections 2026-08-13 22:40:29 +10:00