How it measures
Give it a clip, the dish and the dish's width, and it returns a path length and a replay, so you can see whether it followed the larva or a speck of agar. trackpy does detection and linking, because the agar is covered in specks the same size and shape as a larva. Trajectories out on the dish wall get dropped as glare, and fragments join only across gaps short enough to be the same animal.
The numbers are undercounts on purpose: time the larva was invisible isn't guessed at. For crowded plates, you trace each animal by hand at 10× to 20×.
Resolution has a cliff
The same recording, downscaled, against its full-resolution answer of 72.1 mm:
| Dish in frame | Measured | Error |
|---|---|---|
| 534 px | 71.4 mm | −1% |
| 445 px | 72.3 mm | +0% |
| 392 px | 112.4 mm | +56% |
| 297 px | 174.0 mm | +141% |
| 148 px | nothing found |
Past the cliff it returns a confident wrong number rather than a rough one, so those clips get refused. AirDrop, iMessage and iCloud Photos all shrink video, so send the original file.

