BJJ/Positions

White belt · ML lab notebook · 001

Read
the roll.

A model that recognises Brazilian Jiu-Jitsu positions from two skeletons — and, eventually, tells me where I actually spend my rounds.

Input
2 × 17 keypoints
Output
18 positions
Status
Milestone 1
Analyse a roll
—
—labelled frames
—position classes
—sparring sequences
—frames with one athlete lost

01 — Analyse

Upload your roll

Drop in sparring footage and get a breakdown of where the round went. The video is processed on your own machine — it is never sent to a third party. On this public demo nothing is analysed: the pipeline runs locally, so the page will tell you that no backend is reachable.

No video selected.

03 — Positions

What the model sees

No pixels, no gi colours — only joints. Every clip below is a real 64-frame stretch from the dataset. Pick a position.

    —
    00 / 64

    • Athlete 1
    • Athlete 2

    04 — Data

    Where the frames are

    Most positions come in two flavours: the number says which athlete the dataset attributes the position to. Standing and 50/50 are symmetric.

    Frames per position

    • Athlete 1
    • Athlete 2
    • Symmetric

    Position mix per recording segment

    Share of each segment's frames. Stronger red = more.

    05 — Roadmap

    Four stripes to go

    1. M1

      Keypoint baseline

      Single-frame classifier on keypoints, honest split by recording, baselines, an MLP in PyTorch, confusion matrix.

    2. M2

      Time

      Positions last seconds, not frames. Use neighbouring frames: smoothing, then a temporal model.

    3. M3

      My own footage

      Pose estimation on my own sparring videos — and working out which skeleton is me.

    4. M4

      Training stats

      Time per position, transitions, where I get passed. The reason this project exists.