Track your wall rally.
Prop your phone up facing the wall and yourself, hit record, and Stroke Lab logs every stroke as you play — count, forehand/backhand split, estimated speed, and where the ball is landing.
Manual tap — you tap a button each time you strike the ball; fast, reliable, works in any light.
Auto (beta) — the app watches the video feed for a moving yellow-green ball and logs strokes on its own. It's a rough, single-camera estimate: it can miss fast shots or get confused by similarly coloured backgrounds, so treat its numbers as approximate, same as the speed readout.
Uploading a video defaults to manual: scrub through the clip and tap each stroke as you spot it — slower than auto, but it's your own eyes doing the tracking, so it's reliable regardless of court, lighting or distance. Auto (beta) for uploads now uses a real AI object-detection model (TensorFlow.js / COCO-SSD) that looks for actual ball-shaped objects rather than matching colour — it doesn't care that a clay court or a racket happens to be a similar colour to the ball. It's heavier (loads a few MB the first time, and processes slower than real-time) and still won't reliably catch a ball that's only a couple of pixels across on a very wide, far-away shot — but it fails differently than the colour tracker did, so it's worth trying on the same footage.