Sameer Chaturvedi
Follow Through

Follow Through

Shot-form analysis

Hold that
follow through.

There's a problem with the way passionate basketball players practice and improve. Hundreds of dollars and hours go to stubborn coaches, online programs that are scams in disguise, and mindlessly watching NBA games, and most of the world doesn't have access to even that. Follow Through gives ballers immediate feedback: record your shot, and it extracts your pose, lines every frame up against an NBA player, and returns a 0-99 similarity score plus the three mechanics to fix first.

It started with me recording my own jumper, watching pros on TV, and tweaking micromovements.

Reference -- Shaquille O'Neal

Target -- Steve Nash

Demo

See it in motion.

Pipeline

How it works.

01

Pose extraction

MediaPipe lands 18 joints per frame. Savitzky-Golay smooths the jitter without flattening the snap at release.

02

Normalisation

Centre on the hip midpoint; scale by the shoulder-to-hip distance. Camera angle and body size wash out, leaving only form.

03

Deviation + scoring

Per-joint Euclidean distance to the reference, resampled to a common 60-frame axis. Mean deviation collapses into one number.

The product layer

The score says how close you are.
The advice says what to change.

Mathematical analysis of your movements, turned into concrete steps to get to the next level. For the three most-deviated joints, the system writes specific cues in plain English: vertical offsets ("elbow drops 8% lower than Nash at release"), lateral offsets ("guide-hand wrist drifts across the body"), and timing deltas. The whole analysis layer is pure functions with no UI and no framework, so it drops straight into the phone app.

Joints tracked
18
Score range
0 -- 99
Unit tests on analysis
10

Example output -- Shaq vs. Nash

What the system actually returns.

Similarity score

50/ 99

Noticeably different mechanics

Mean per-joint deviation of 0.251 across 18 shared joints over a 60-frame aligned window.

Top-3 coaching cues

  1. 01

    Guide-hand wrist

    Sits lower than Nash’s. Lift it higher through the shot.

  2. 02

    Shooting wrist

    Tucked too close vs. Nash’s. Let it extend outward naturally.

  3. 03

    Right heel

    Tucked too close vs. Nash’s. Let the base open up on the release.

Per-joint deviation

Normalised Euclidean deviation per joint, descending. Top contributors drive the advice.

Left wrist (guide)
0.467
Right wrist (shooting)
0.432
Right heel
0.351
Left heel
0.326
Left foot index
0.316
Right foot index
0.310
Left elbow
0.300
Right ankle
0.295

Engineering note

Training data was the hardest part. I got around it with NBA 2K.

Labelled pose data from real basketball film is expensive and scarce. Before MediaPipe made the custom-trained pose step unnecessary in production, I generated synthetic training data from NBA 2K -- a game engine that renders realistic shooting mechanics on demand, with programmatic control over camera, lighting, and player. Good enough as a proof of concept, good enough to test on, and a pattern that still works wherever training data is the bottleneck. (The production system now leans on MediaPipe's pretrained landmarks.)

Under the hood

Stack.