What counts as a rep
A rep counts only when the whole cycle is right:
- Jumping jacks: start at rest (arms down, feet together), then arms overhead (both wrists at least 15% of torso length above the shoulders) AND feet out (ankle spread at least 1.8 times shoulder width), then back to rest.
- Squats: hips drop at least 35% of leg length with knees bent to 110 degrees or less, then hips return within 10% of the start height with knees opened to 160 degrees or more, a full stand.
- Star jumps: both feet leave the floor (at least 4% of body length up) with arms wide and legs wide in a full star, then land softly and reset.
- Stretches: overhead reach needs both hands up with a tall stand; side bends need the shoulders leaned to the side with one arm overhead. Good-form seconds bank only while the position holds.
Arms up without feet out is rejected: Feet out wide. Feet out without arms up is rejected: Arms up overhead. A shallow dip is rejected: Go lower. Coming up without straightening the legs is rejected: Stand all the way up. Spreading your limbs without jumping is rejected: Jump, your feet never left the floor. Wrong reps always show the named hint, never just a score.
How the camera check works
Jumping jacks, star jumps and stretches use the FRONT view: face the camera, about 2 metres away, so it sees your whole body from head to feet. Squats use the SIDE view: put the camera to your side, because only the side view shows how low your hips go. The app tracks your joints (shoulders, wrists, hips, knees, ankles, nose) with a small pose model that runs entirely in your browser, about 6 MB, and every frame is checked against the rules above with the hint appearing within about a second.
From the wrong angle the app cannot judge the rep, so it will not count it. If it cannot see your head, hips and feet clearly, it says so instead of guessing. Loose clothing, poor light, a cluttered background, or another person in frame can confuse it. One person at a time: the app tracks joint positions, not faces or names.
The named hints
- Feet out wide: your arms went up but your feet never spread. Step your feet out to the sides as your arms go up.
- Arms up overhead: your feet spread but your arms never went up. Lift your arms all the way overhead.
- Go lower: your hips did not reach the down line. Bend your knees until your thighs are flat, like sitting back into a chair.
- Stand all the way up: your legs never straightened at the top. Stand tall on every rep.
- Jump higher: your feet never left the floor. Bend your knees and push off the ground.
- Reach higher / Lean further: your stretch shape broke. Push both hands to the ceiling, or lean further into the side bend with one arm overhead.
The hint tells you exactly what to fix on the next rep. That is the point of the app: specific feedback, not a score.
Stretch mode
Stretch mode times your hold with the same honest rule. Good-form seconds accumulate only while the position holds: overhead reach with both hands up and a tall stand, side bends with the lean plus one arm overhead. The moment the shape breaks, the good-form clock pauses and the named hint appears. Total elapsed time keeps running separately, so you can see how much of your hold was clean: 30 seconds total with 20 good-form seconds means the position broke for 10 of them.
Levels, workouts and quizzes
Each exercise has three levels with the same rule: learn (open), practice set (50 points), challenge (150 points). Stretches run overhead reach, side bend left and side bend right (open, 15 good-form seconds each) plus a 30-second long hold (150 points). Workouts include the PE circuit (10 jumping jacks, 10 squats, 5 star jumps, 15-second stretch), a leg builder (3 x 10 squats), and a warm-up (10 jacks plus stretch). Quizzes ask for 10 clean jumping jacks, 10 clean squats, 5 clean star jumps, or a 20-second clean stretch. Points: +10 per clean rep, +1 per good-form stretch second, +20 for a passed quiz. Levels run First Rep, Warming Up, PE Star, and Rep Machine. Badges cover the first clean rep, the first stretch hold, a perfect set, thirty seconds, a passed quiz, the full PE circuit, and practising on seven days in a row. Confetti and chimes celebrate wins, and both can be turned off in Settings.
Your video never leaves your device
Video frames are analysed on your device and discarded. The page security policy blocks connections to every outside server. There is no account, no analytics, no recording, no names, and no photos. The built-in Offline proof panel shows a live log of every network request the page makes, lets you simulate a fully offline session, shows exactly what is stored on your device, and deletes it all with one button. The app works offline after your first visit, which makes it usable in school gyms with patchy wifi. Pose tracking is approximate: a rep the app counts may not be perfect, and a rep it rejects may have been fine. The rules are the authority inside the app; a real PE teacher is the authority outside it.
Training something else? Push-up and Plank Coach counts clean push-ups and times planks, Fingerspell teaches the ASL alphabet, and Mandarin Tone Trainer coaches tones, all the same private, on-device way.
This is a home practice tool, not a teacher, therapist or safety device. Everything runs on your device: no video, audio or images are sent anywhere. Feedback is automatic and can be wrong. For real instruction, learn from a PE teacher or qualified fitness instructor, linked on the Resources page. Not a fitness assessment. Stop if anything hurts. Follow school safety rules: clear the space around you, and use with teacher supervision at school.