Jazil Imran
← All work

05 / 06Cricket biomechanics2026

CreaseLab

Record a batting shot or bowling action. It classifies the movement, measures the biomechanics and replays your own clip with coaching grounded in the measurements.

13shot and action classes
67.4%bowling, leave-one-session-out
0clips kept after analysis

01 · Try it

Live · pose replay
stancebackliftback and acrosscontactfinish

Classification · experimental

Dashed line: displayed confidence is capped at 60%.

Measured from the pose

front knee flexion
shoulder rotation
hand speed
head movement

A pull shot keyframed in 3D for this page, shown from a raised broadcast angle, with scores modelled on a real CreaseLab result. The metrics are computed from the 3D joints as it plays. Try the live app with your own clip.

02 · The problem

Coaching feedback in cricket usually means someone watching you and describing what they saw. CreaseLab measures it instead: shoulder rotation, knee flexion, head movement, release height, all tied to frames of your own clip.

03 · How it works

Scroll the steps. The scene follows.

pixels

framing, background, lighting, camera

pose

joints only · the same for every camera

stancebackliftcontactfinish
0.25×0.5×◀ frame ▶
front knee flexionseeks to contact
shoulder rotationseeks to backlift
capture-quality gate

Athlete visible

Single athlete in frame

Shoulders, hips and knees visible

Full body inside the frame

Clear movement detected

✗ feet cut off · move back and re-record

coaching cueKeep your head still through contact.cites: head movement at contact
your clipshot.mp4
temporary directoryanalysed
after the resultdeleted

Nothing stored. Nothing shared. Never used for training.

Illustrated from the project’s README and code. Values shown are examples.

  1. 01

    Pose, not pixels

    MediaPipe extracts a pose from each frame. Classifying on pose features normalises away framing, background and camera, which is exactly what broke the broadcast-trained video model it replaced.

  2. 02

    A replay you can trust

    Your clip is the centrepiece: pose overlay, 0.25× slow motion, frame stepping and phase markers. Every metric card seeks the replay to the moment it measured.

  3. 03

    Coaching that cites its evidence

    Coaching cues are deterministic by default. Each claim must point to a measurement. A capture-quality gate refuses to label poor footage and explains how to re-record.

  4. 04

    Private by design

    Clips are processed in a temporary directory and deleted. Nothing is stored, shared or used for training.

04 · Architecture

The whole system, running.

Your cliprecorded or uploadedUpload checkstype · size · ≤ 12 sMediaPipe posejoints per frameQuality gaterefuses poor footagePose classifierONNX, capped confidenceBiomechanicsangles, speed, timingPhase detectionSynced replay0.25× · frame steppingCoachingcites a measurementClip deletednothing stored

05 · Stated plainly

The models are evaluated leave-one-recording-session-out, because clips from one session are near-duplicates and a random split leaks. That honest split gives 37.5% for batting and 67.4% for bowling, and 54.5% and 86.1% on classes present in training.

The published broadcast video model scored 29.6% on these clips. I traced it to an upstream preprocessing bug and a genuine domain mismatch, and replaced it rather than ship the higher-looking number.

Built with

  • Python
  • FastAPI
  • MediaPipe
  • ONNX Runtime
  • scikit-learn
  • React
  • Docker