← William Dong
CV Punch Trainer (beta version)

Grade your boxing form, live

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; your own biomechanics engine grades each punch.

Video never leaves your device — all processing runs in your browser.

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, and turned into plain-language coaching notes.

The analysis engine is vendored from Kodawari, my boxing motion-analysis pipeline — 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