

Velocity
Clocks how fast you kick a soccer ball, from a phone video.
2026
What it is
Upload a clip of a kick, tap two points a known distance apart, and Velocity tracks the ball frame by frame to report its real-world speed. Log in and it keeps a history of your shots, so you can watch your striking improve.
Built for myself and for Hack Club Horizons.
Strike clocked: top speed, launch speed, and the speed curve over time.
How it works
- YOLOv8n detects the ball in every frame. Missed frames are recorded as gaps rather than dropped, so later stages know what's missing.
- Kick detection scans for a sustained speed spike above an adaptive median threshold and returns the launch window.
- Two-point calibration converts pixels to metres. Top speed is measured inside the kick window, and launch speed comes from a trajectory fit.
- A FastAPI backend runs analysis as background jobs that the React frontend polls. Accounts use bcrypt and JWTs, and shots are stored in Postgres.
- The backend runs in Docker on Hugging Face Spaces; the frontend is on Vercel.
Stack
- YOLOv8n
- OpenCV
- FastAPI
- React
- TypeScript
- Postgres
- Docker
Results
- A working end-to-end app: upload, calibrate, measure, and keep a history of every kick.


