A boxing combo caller for training alone — the coach shouting numbers at you, without the coach.
Open index.html in a browser. No build step, no dependencies, no server needed.
Calls combinations out loud on a randomised beat while a round timer runs.
- Full 1–6 number system. 1 jab, 2 cross, 3 lead hook, 4 rear hook, 5 lead uppercut,
6 rear uppercut. A trailing
bmeans body:3b. - 105 combinations across four difficulty tiers, with defense (slip, roll, pull, weave, parry) and footwork (pivot, step back, angle out, circle) woven into the higher tiers.
- Randomised pace. A fixed metronome trains anticipation; the randomness slider scatters the gap between calls so you have to actually react.
- Rounds and rest with a synthesized ring bell and a ten-second clapper warning.
- Stance aware. Numbers are relative to your stance; switching to southpaw flips the directional cues ("circle left" becomes "circle right") and relabels which hand throws what.
- Filters for individual punches, difficulty, combo length, and whether defense or footwork appear at all.
- Your own combos. Type them how your coach says them —
1232,12 step back 632,123 slip step body 3 head 3 2all parse. - Screen wake lock, session history, punch breakdown. Space pauses, Escape ends.
Not built yet. Planned:
- Film breakdown — drop in a video file and get a timeline of what was thrown, labelled in the same notation, using in-browser pose tracking. A YouTube link can't be analysed directly: browsers block a page from reading the pixels inside another site's embed.
- Live camera coach — check whether you actually threw the combo that was called, and how fast you reacted.
index.html markup for both tabs
css/style.css
js/combos.js move catalog, combo library, notation parser
js/audio.js speech engine + synthesized bell
js/practice.js settings, combo pool, round engine
js/app.js tab and view routing