We're teaching a computer to watch softball. It is not very good yet.
There's a camera behind the plate and a second one out by the shed. Software watches them and tries to find every pitch, measure how high it arcs, and see where each batted ball lands. Some of that works. A lot of it doesn't. This page is the honest version of where it stands — and how you can make it better in about two minutes.
What we have today
Those are counts of what the software proposed, not of what it got right. Nobody has checked most of them — that is the whole problem.
| Game | Clips found | |
|---|---|---|
| Bash Bros v 7th Floor · 7/26 | 587 | |
| Nails v Bash Bros · 7/27 | 579 | |
| Nails v Big Papi's · 7/26 | 394 | |
| Big Units v Lunch Pail · 7/25 | 379 | |
| Honey Badgers v Ryan Express · 7/25 | 349 | |
| Wild Things v Big Units · 7/22 | 330 | |
| Mambas v Lunch Pail · 7/24 | 324 | |
| Sultans v 7th Floor · 7/26 | 311 | |
| Mambas v Muscle Hamsters · 7/30 | 250 | |
| Jul 13 night session | 135 | |
| Bash Bros v Lunch Pail · 7/19 | 84 | |
| 7th Floor v Big Units · 7/16 | 73 | |
| Big Units v Sultans · 7/19 | 68 | |
| 7th Floor Crew v Nails · 7/23 | 63 | |
| Muscle Hamsters v Nails · 7/9 | 59 | |
| All-Star · 7/11 | 44 | |
| Mambas v 7th Floor · 7/14 | 37 |
Why only these games?
Because a game can only be analysed once every one of its cameras is completely copied off the field box — 99% is as unusable as 0%, since gaps in the footage don't produce an error, they produce invented and missed pitches. That copy is still running, and the disk at the field deletes old footage to make room.
What's actually wrong with it
What's new in v2
v1 asked one question: “is this clip a ball, yes or no?” — always about a clip the software had already found. That can make it more accurate, but it can never make it see more: a checker can't find a pitch the finder never proposed. asks four questions instead.
Shown on stretches of game where the software found nothing. This is the only question that can raise the ceiling — every “yes, there was a pitch here” is a miss we can go and fix. The clips for it are still being cut, so it isn't open yet.
The old question, with two fixes: you can say “can't tell” instead of being forced to pick a side, and you can say “the clip is off” when the video is mis-cut, so a bad clip is never counted against the detector. 4,066 clips are waiting, and only about 1 in 10 has been looked at once.
One click on a frame. A fast ball smears across the picture, and we always click the middle of the smear — a published 2026 result got a large accuracy jump from that convention alone, with no change to the software at all. Waiting on the panoramic frames.
Point at a base, the rubber, a foul pole. A few dozen of these could roughly halve that ±18 ft error on the field map — and because we store every click as a raw click, fixing the map improves every spray label we have ever collected, retroactively. Also waiting on the panoramic frames.
How you actually teach one of these
No jargon. This is the whole idea.
“Here is a picture. The ball is here.” Thousands of times. That's a label, and that's what the grading page collects. The software isn't told any rules about softball — nobody writes down what a pitch looks like.
It doesn't understand softball. It finds patterns in pixels that reliably line up with the answers you gave. If your examples were all bright first-inning pitches, the pattern it finds will quietly be “bright” as much as “ball”.
Grading itself on its own homework proves nothing. We hold some labels back, and the score on those is the only score that counts.
Varied matters more than many. Bright and dusk and near-dark. Both cameras. Lobs and line drives. Rain. The clips where you weren't sure. A thousand near-identical bright clips teach it less than two hundred mixed ones.
Train, look at what it still gets wrong, collect labels aimed at exactly that, retrain. The reason we ask “can't tell” is that the clips people are unsure about are usually the ones the model is about to get wrong too — they're the most valuable things in the pile.
What we still need
| Question | Why it's needed | Roughly |
|---|---|---|
| Any pitch here? | Breaks the recall ceiling — the only one that can | as many as we can get |
| Real pitch? | Stops the bats, birds and sprinklers getting in | 2 people per clip |
| Click the ball | The actual training material for a ball detector | a few thousand |
| Click this landmark | Halves the field-map error, retroactively | a few dozen |
Grading is for signed-in league members (that changed on 28 July). Your answers are stored against your league account rather than an anonymous browser ID — that is the only way we can tell two graders apart, weigh a careful one above a hurried one, and avoid showing you the same clip twice. We also record how long you spend on each clip, so answers that came too fast to be real can be filtered out. Nothing else is kept.
Two minutes is genuinely useful
We are starting from nothing, so twenty clips from you is a real contribution and a hundred is a big one. It works fine on a phone at the field.
The small print
This is a fan-run side project, not a league system, and it is not affiliated with the league office. The league's real statistics are kept in TurboStats and that remains the record — nothing here replaces it or is meant to. Any pitch measurement on this site is experimental, frequently wrong, and should never be used to argue a call. We publish the mistakes on purpose; that's the only way anybody can tell whether it's getting better.
Everything from before is still online and still works: browse the v1 archive →