← 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, then 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, 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