Commit Graph

216 Commits (088fb7616087b59f4ae9b5adffd005c9eb671e30)
 

Author SHA1 Message Date
name 562f5b0950 [auto] fix step-right stuck: track which foot triggered, only check that foot for reset
Previously checked both feet's X displacement for step-left/right
reset, so a persistent offset in the non-stepping foot prevented
reset. Now tracks which foot triggered the step and only checks
that foot's displacement on the triggering axis.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 13:41:15 -07:00
name ef3529f950 [auto] fix step never resetting: check only the triggering axis for reset
stepsReset now checks only the X axis for left/right steps and only
the Z axis for forward/back steps. Previously used Euclidean distance
of both axes, so a persistent offset in the non-triggering axis
prevented reset indefinitely.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 13:31:42 -07:00
name 52d74bfb4e [auto] swap forward/back step labels to match actual direction
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 13:30:00 -07:00
name b32ed3310a [auto] full step log with raw toe positions, baselines, and displacements
Copy Log now exports unbounded StepLogEntry array from session start,
including: raw toe XZ (hip-relative), current baseline XZ, displacement
XZ, and active step signal per frame.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 13:27:54 -07:00
name 91d7255eae [auto] slowly adapt toe baseline when standing still to prevent drift
Applies 0.99/0.01 EMA to heelBaseL/R X and Z when no step is active,
same approach as the ankle Y baseline adaptation. Prevents the resting
position from drifting away from the threshold over time.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 13:25:46 -07:00
name 754b23010c [auto] require head visible at all times, reset to framing/paused if lost
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 13:24:37 -07:00
name e0780c4100 [auto] show specific framing hints: what's missing (head, ankles, toes, step back)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 13:20:18 -07:00
name f77297a2c9 [auto] require 10% gap below toes in framing check, revert bottom bar
Framing stage now checks toes are above 90% of frame height,
ensuring the person stands far enough back for room below feet.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 13:19:01 -07:00
name 896bb72886 [auto] add pause state on leaving frame, require arms-out to resume
Pauses when landmarks are lost during gameplay. Resumes when head,
ankles, toes are visible and arms-out is detected. Adds 100px
bottom bar below the video feed for the stage text.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 13:16:58 -07:00
name b133427f39 [auto] enlarge stage text to 48px and move to bottom of screen
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 13:13:25 -07:00
name 4ed6e679c4 [auto] add framing stage: wait for head + ankles + toes visible before calibration
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 13:12:15 -07:00
name 20ddb75708 [auto] update default step thresholds: L/R 0.17, F/B 0.12, reset 0.09
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 13:09:38 -07:00
name 13be862b79 [auto] hide graphs, coordinates, and copy log behind Show Debug toggle
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 13:08:29 -07:00
name 744a629bc4 [auto] use calibration-averaged toe positions as step baseline
Collect toe (31/32) X/Z positions during the 5s calibration and
average them for the step detection baseline. More stable than a
single snapshot. Switched from heels (29/30) to toes (31/32) for
step detection.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 13:02:24 -07:00
name a5fabe32d5 [auto] remove jump graph, enlarge step graphs to 500x220
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 12:59:03 -07:00
name 6f2fb06739 [auto] include step graph data (JSON) in copy log button output
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 12:56:29 -07:00
name 9ad8dea4ff [auto] highlight active step detection segments on graphs
Yellow background highlights the time range when a step is active
(from detection until reset). L/R graph highlights step-left and
step-right, F/B graph highlights step-forward and step-back.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 12:52:50 -07:00
name 26e3df6ad2 [auto] add per-direction step graphs with threshold and reset lines
Two graphs on the left side:
- LEFT/RIGHT (X): shows heel X displacement, L=cyan, R=magenta
- FORWARD/BACK (Z): shows heel Z displacement, same colors
Each graph shows threshold (red dashed) and reset (orange dashed)
lines symmetrically around zero. Updates live with settings sliders.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 12:46:02 -07:00
name 85beb3bbf1 [auto] add step threshold sliders to settings (live update, no restart)
Exposes L/R threshold, F/B threshold, and reset hysteresis as
sliders in settings. Uses a ref so changes apply immediately
without restarting the MediaPipe pipeline.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 12:43:45 -07:00
name e727067988 [auto] set step thresholds to 0.2 in raw mediapipe worldLandmark units
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 12:40:43 -07:00
name c185750bf8 [auto] bigger coordinate text (36px), remove camera-relative lines, keep hip-based
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 12:38:26 -07:00
name 4e9fa08d98 [auto] lower step thresholds: left/right -10% (0.108m), forward/back -30% (0.084m)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 12:33:53 -07:00
John Montagu, the 4th Earl of Sandvich 212bda8d5e feature: add song selection 2026-04-11 12:32:24 -07:00
name 1c6bb2e6d4 Revert "[auto] use camera-relative coordinates for step detection, swap forward/back"
This reverts commit 93b838202d.
2026-04-11 12:29:59 -07:00
name 93b838202d [auto] use camera-relative coordinates for step detection, swap forward/back
Step detection now uses worldToCamera-converted coordinates instead
of hip-relative worldLandmarks. Camera coords: X+ = right, Z+ = into
scene (forward for subject facing camera). Fixed forward/back mapping.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 12:28:30 -07:00
name f06fb15f93 [auto] replace floor squares with step detection (left/right/forward/back)
Remove AR squares and multi-step positioning. Simplify to:
1. 5s calibration → center confirm with arms-out → ready
2. Detect directional steps by comparing heel worldLandmarks XZ
   displacement from baseline (>12cm threshold, 8cm hysteresis)
3. Show step direction as text label

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 12:25:15 -07:00
name 19bf6d9e68 [auto] add arms-out gesture (T-pose) and use it for positioning confirmation
Detects both wrists at shoulder height using worldLandmarks Y.
Replaces palms-together as the positioning confirmation signal.
Both gestures remain available during gameplay.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 12:18:48 -07:00
name f5fe8c19a7 [auto] auto-detect square size from heel spread during calibration
Measures 3D distance between heels in worldLandmarks during the 5s
calibration, averages it, adds 10cm margin. Uses this as the tile
size for both preview and placed squares.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 12:17:01 -07:00
name 14b5bce512 [auto] shrink square tile size from 0.5m to 0.35m to fit around feet
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 12:14:13 -07:00
name f123b5449a [auto] add hip-to-camera 3D coordinate conversion and display both
Estimates hip depth from camera using hip-to-ankle height ratio
(pinhole model), then offsets all worldLandmarks into camera space.
Displays both hip-relative (cyan) and camera-relative (orange)
coordinates for ankles and toes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 12:10:12 -07:00
name 5db0cfa9b7 [auto] show preview square under feet from the start, not just during positioning
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 12:04:21 -07:00
name d825b69308 [auto] vertically center coordinate labels on screen
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 11:51:11 -07:00
name ab92cbd6c6 [auto] always show all 4 coordinate lines, show N/A for low-visibility landmarks
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 11:50:15 -07:00
name a184b28a1e [auto] fix mirrored coordinate text by counter-scaling on canvas
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 11:49:56 -07:00
name aeaa4c246b [auto] move 3D coordinate labels to fixed top-left position with larger font
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 11:48:39 -07:00
name 3aeb39e180 [auto] display live 3D coordinates for ankles and toes on pose overlay
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 11:47:37 -07:00
name 2d60fe0629 [auto] fix floor: use fixed camera height instead of dynamic worldLandmarks adjustment
The dynamic camera height from worldLandmarks was breaking the
raycast-in/render-out cancellation — squares placed at one camera
height rendered wrong when the height shifted later. With multi-step
calibration, a fixed camera is correct: any projection error cancels
out since the same camera does both placement and rendering.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 11:42:44 -07:00
John Montagu, the 4th Earl of Sandvich b13828875d chore: add pages skeleton 2026-04-11 11:34:28 -07:00
name 09fa2a7bc7 [auto] multi-step floor calibration: step to each square and confirm with palms
Replaces single-position lock with 5-step calibration:
1. Stand at center → palms
2. Step left → palms
3. Step forward → palms
4. Step right → palms
5. Step back → palms

Each confirmed foot position is raycasted to 3D and a square is
placed there. Since raycast-in and render-out use the same camera,
squares appear exactly at the calibrated screen positions regardless
of camera parameter accuracy.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 11:34:10 -07:00
name fbe275fa69 [auto] add palms-together gesture using worldLandmarks wrist distance
Detects palms touching when wrists are <15cm apart in 3D space.
Works as both a gameplay gesture and a positioning confirmation
(alternative to standing still 3s).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 11:23:32 -07:00
name 8504fc1aee [auto] prevent transport bar from overlapping settings panel
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 11:19:38 -07:00
name 3493c2bee0 [auto] add camera param sliders (FOV, height offset) and floor grid
Exposes webcam H-FOV and camera height offset as tunable sliders
in settings. Adds a subtle floor grid to the AR scene for spatial
reference.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 11:18:22 -07:00
name bbd5617799 [auto] use worldLandmarks for AR camera height + fix vertical FOV
- Compute proper vertical FOV from assumed 63° horizontal (was incorrectly
  using 63° as vertical, making depth ~2x off)
- Dynamically set camera height from worldLandmarks leg length instead of
  hardcoded 1.1m — adapts to actual person proportions
- Pass worldLandmarks from MediaPipe result to AR scene

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 11:14:44 -07:00
name 01d2421b66 [auto] record at 8 Mbps with VP9 for better pose detection from video
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 10:57:31 -07:00
name 3eb08d44dd [auto] confirm center by standing still 3s with UI countdown
Replace left-leg-raise confirmation with stand-still detection.
User walks to center, stops moving, and a 3-2-1 countdown confirms
the position. Uses EMA-smoothed ankle positions to detect stillness.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 10:51:53 -07:00
name f3730e9ecf [auto] anchor AR squares to grounded foot so raising a leg doesn't shift them
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 10:44:48 -07:00
name 2b0db0dae4 [auto] bolder AR squares (filled meshes + border) and larger guidance text
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 10:41:34 -07:00
name 6b8a51d186 [auto] center AR square via left-leg confirm at play zone center
Replace jump-to-lock with a positioning flow: after calibration,
user walks to center of play zone and raises left leg to confirm.
That foot position becomes the locked AR square center.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 10:37:13 -07:00
name 6f41122e3c [auto] add left/right leg raise detection with per-ankle tracking
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 10:32:45 -07:00
name 95761be1e7 [auto] persist settings in localStorage
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 10:27:00 -07:00