Built at the Cursor Boston × Hult Boston Tech Week Sports Hack (May 26, 2026), Hult International. Track 02 — Athletes & Team Performance.
In HYROX, wall balls are the final station — 100 reps after 8 km of running and 7 other stations. Athletes are exhausted, form breaks down, and a human judge must eyeball every rep for squat depth (hip below knee) and ball-to-target height (10ft men / 9ft women). It's the most disputed station in the sport: reps get "no-repped" inconsistently from judge to judge. In real events the target height is sensor-registered, but squat depth is still a human's subjective call. RepRef makes both objective.
The Xcode project at the repo root. ARKit body tracking returns the skeleton in world coordinates (meters), and the athlete's feet give a floor reference, so:
- Depth is judged in real units: hip below knee, no parallax, no camera-distance scaling.
- Height is judged against a true target plane: highest hand ≥ floor + 3.05 m (or 2.74 m).
A single 2D camera fundamentally cannot do this (a 2D image measures pixel position, not
real-world height). Key files in RepRef/: BodyTrackingView.swift (ARKit session →
joint heights), JudgeModel.swift (rep logic), ContentView.swift (HUD).
Build on a physical A12+ device (body tracking doesn't run in the simulator).
A zero-install MediaPipe Pose web demo that judges the same two standards from a webcam, using a scale-invariant depth ratio and a draggable target line. It's honest about its limit: 2D can't measure true height, so it approximates height with hand position. This prototype proved the judging logic, and building it surfaced exactly why the production version moves to ARKit's metric 3D.
cd web && python3 -m http.server 8000 # then open http://localhost:8000- On-screen skeleton overlay in the iOS app for live tracking feedback.
- Ball-trajectory tracking (LiDAR scene depth / a "sports ball" detector) to judge the ball's true apex instead of using hand height as a proxy.
- Per-rep fatigue analytics across the full 100 reps.