Stand back so your whole body is in frame and throw some
straight punches. Facing the camera works (depth is tracked in 3D), and turning
slightly side-on gives the fullest read of balance and hooks. A pose model reads 33
body landmarks per frame, then your own biomechanics engine grades each punch.
Video never leaves your device. All processing runs in your browser.
balance ·guard ·· fps
JAB
0
Load the pose model with “Start camera”, or “Run demo” to see it work with no webcam.
How it works
1
Pose
MediaPipe BlazePose returns 33 body landmarks per frame, in-browser and on the GPU. Positions are one-euro filtered before any velocity is computed. Smoothing before differentiation is the single biggest accuracy lever.
2
Features
Every landmark becomes a boxing-meaningful signal, normalized to a shoulder-width unit so it survives a change in camera distance: de Leva center of mass, sagittal base of support, elbow extension, guard height.
3
Detection
A punch is a wrist-speed peak coincident with real excursion of the wrist from its guard position. The classifier separates jab / cross / hook / uppercut from wrist-path shape and elbow behavior.
4
Scoring
Each punch is graded on five dimensions (balance, weight recovery, kinetic-chain sequencing, guard integrity, retraction speed) against reference bands, then turned into plain-language coaching notes.
The analysis engine is vendored from Kodawari, my boxing motion-analysis pipeline.
It's the same pose → features → detection → scoring code that ports into the jab-coach
pure-TypeScript analyzer. This page adds a thin real-time streaming layer on top.
Capture tips for a clean read
Frame the whole body. Step back so your feet are in view. The center-of-mass and base-of-support metrics need them.
Facing the camera is fine. Forward punches are tracked in 3D via depth; a slight turn toward side-on sharpens balance and hook reads.
Good light, plain background. Motion blur, not frame rate, is what makes pose models hallucinate the wrist on the frames that matter.
Shadow-box. A heavy bag occludes the arm at impact; sparring (multiple people) is out of scope here.