reefcensus
Built at Meta Global AI Developer Hackathon · Oct 26, 2026 · Remote

reefcensus counts animals in underwater survey video & finds the ones nobody asked for. Marine ecologists drop baited cameras (BRUVs) to the seafloor and film for hours. A person then watches every frame for MaxN: the most animals of each species on screen at once. For MBARI's deep-sea video "these 90 hours of video can take anywhere from 180 to 400 hours to annotate." Interning at the Korea Polar Research Institute, I built an offline in-house tool that sped up researchers' hand calculations of ice figures for papers. BRUV scoring is the same bottleneck: hand work between the data and the paper. On a 53-minute deployment reefcensus cuts a person's part to 24 to 84 answers or about 5 to 18 minutes at the 13 s a track measured on a phone over 9 tracks; answering the rest of its 1,082 queued tracks changed no MaxN or first arrival (when each animal first appears; simulated with three answer rules). Counts export as CSV & in GlobalArchive MaxN column order. Asked only for "fish" on four nautilus development clips it named and counted all 7 animals a person listed that the request did not name; among them were a nautilus, a swarm of shrimp and a hagfish (a jawless fish SAM's "fish" misses). Why not just ask a model? On 24 seagrass videos never used while building (scored on the dataset's boxes) Muse Spark alone asked "how many fish?" per frame got MaxN exact on 8 with nothing to check; reefcensus got 20 with a box behind every count. Its 3 big errors are fish the boxes skipped: on a hand recount it is 2 off in total & the boxes 11. SAM 3.1 alone reaches 19 with no species names or false-box check and none of those 7 animals. It returns MaxN and first arrival per label (common names a person confirms) with an evidence frame for each plus a short queue of doubtful tracks. The core loop is Spark >> SAM >> Spark. Spark names what is there; SAM 3.1 tracks each name (or a box around what moved) with no training; Spark audits every track. Measured: On eleven videos from other studies (run once under a protocol fixed beforehand) it named all five listed animals and counted four; the fifth (a squat lobster) was followed by a box and sent to a person. Each animal counted beyond the request held up on a label-hidden second look. On eight NOAA Gulf of Mexico reef-fish clips hand-counted beforehand the four without fish came back 0 with no false fish. The four with fish gave 1 for 1; 12–13 for 10; 10 for 12; 0 0 to 1 for nine faint far fish. A crowd-check re-run chosen after seeing that result flags the last as a lower bound for a person. Gregory J. Barord (first author of the nautilus survey we tested on) wrote back: "this would be an incredibly helpful tool for the BRUVS footage." We also shared it with Stony Brook's Institute for Ocean Conservation Science, and received an update on the next steps. MIT-licensed with 104 offline tests & a technical paper detailing these results. Demo with no key: https://kitavkdl.github.io/reefcensus/