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.
Analyse a roll01 — 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.
02 — Round analysis
How the round went
Local analysis · not published
Output of the local pipeline: pose estimation, tracking, position classifier, and a temporal model that picks the most likely sequence of positions instead of the most likely single frame.
- Source
- —
- Length
- —
- Both athletes tracked
- —
- Position changes (raw → smoothed)
- —
- Accuracy vs. labels
- —
Time per position
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.
- 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
-
M1
Keypoint baseline
Single-frame classifier on keypoints, honest split by recording, baselines, an MLP in PyTorch, confusion matrix.
-
M2
Time
Positions last seconds, not frames. Use neighbouring frames: smoothing, then a temporal model.
-
M3
My own footage
Pose estimation on my own sparring videos — and working out which skeleton is me.
-
M4
Training stats
Time per position, transitions, where I get passed. The reason this project exists.