Back

Rookery

Codebase

Annotation tooling · 2026

An annotation tool for image data. The renderer is four Canvas2D layers split by how often each one actually needs repainting, which cut 1,800 redraws a second down to something a laptop can hold sixty frames through.

Undo is command pattern rather than stored snapshots, covering both vector and raster edits, with snapshots used only to bound how far a replay has to walk back. Labels come from a schema, so attribute controls are built at runtime instead of hardcoded per label type.

Six Next.js API routes sit over Prisma and Postgres with validated payloads and transactional writes. Export produces per instance state and RLE masks as JSON, verified by 155 tests.

Rookery annotating a lab bench photo, with the label schema on the right
Masking a pipette tip across a lab bench dataset

I might begin improving this by adding in object detection tracking, so the app can take videos rather than only stills.