Real-world computer vision demos.
| Project | What it does | Key model |
|---|---|---|
| dance_sync | Compares dancers' sync performing the same choreography and computes a similarity metric. | vitpose-plus-large |
| chin_ups | Counts chin-up reps from a clip and times the ascent and descent of each one. | vitpose-plus-large |
| pull_ups | Counts pull-up reps, times each pull, and grades each rep's range of motion as full or partial against the athlete's own calibrated dead hang. | vitpose-plus-large |
| push_ups | Counts push-up reps from a side-on clip, times each push, and grades each rep for full range of motion and a straight back. | vitpose-plus-large |
| rock_climbing | Segments bouldering holds, returns which holds the climber used and in what order, and compares attempts at the same route. | sam3.1 + vitpose-plus-large |
| rock_climbing_3d | Reads the same route from a video recorded with depth (iPhone LiDAR), placing the wall, holds and climber in 3D and measuring the route in meters. | sam3.1 + vitpose-plus-large |
| running | Measures a runner's cadence, times every foot strike, and averages the knee shape at contact. | vitpose-plus-large |
| deadlift | Counts deadlift reps and classifies each rep's back as straight or rounded, with the probability. | sam3.1 + vitpose-plus-large + gemma-4-26b-a4b-it |
| basketball | Calls every shot a make or a miss by following the ball through the rim, and plots each shot on a court from above with the FG%. | sam3.1 + vitpose-plus-large |
Each project has its own README with setup and instructions. To try them in a browser instead:
conda env create -f environment.yml && conda activate vision-demos # or: pip install -r requirements.txt
python app.py # -> http://127.0.0.1:7860Upload a clip, trim it, analyze. No API key needed (anonymous, rate-limited tier); paste a VLM Run key or set VLMRUN_API_KEY for higher limits. rock_climbing_3d (it needs a LiDAR capture) and push_ups aren't in the app. ffmpeg is required.




