Tools
Small pieces of software I've built out of curiosity. Mostly open source, free to use, made to answer a specific question I had.
These are the things I build at the intersection of birding, the Met's open-access collection, small visual or print tools that don't have a polished commercial alternative, and the occasional game. Mostly open source, all free, all written in mostly-vanilla JavaScript so they keep working without me having to maintain a build pipeline. The first two are the most directly bird-aligned: Opera Glass is an interactive web edition of Florence Merriam Bailey's 1889 field guide, and METBird cross-references the Met's 9,751 open-access bird artworks with eBird taxonomy. The others sit adjacent: NYC tooling, print art, zine layout.
-
Opera Glass
Birds Through an Opera Glass (1889), interactive
An online reader for Florence Merriam Bailey's Birds Through an Opera Glass, the 1889 field guide written for someone who might see a bird on a walk and want to know what it was. All 70 chapters navigable, all 16 inline illustrations, all 11 of Bailey's transcribed bird songs. Public-domain text, modern reading experience.
Why it exists: Brings one of the first popular American bird books online as a navigable web edition, keeping the original illustrations and song notations Bailey set inline.
- Vanilla JS
- Public domain
- Internet Archive
-
METBird
9,751 Met Museum bird artworks, searchable
A searchable browser for the Metropolitan Museum of Art's open-access bird collection, cross-referenced with eBird taxonomy. Type a bird name and surface every Met artwork of that species: ukiyo-e warblers, Audubon folios, 18th-century cigarette cards, and a lot that doesn't fit a genre.
Why it exists: Maps the Met's 9,751 open-access bird artworks to modern eBird taxonomy, so a search for any species surfaces every depiction in the collection.
- Vanilla JS
- Met Open Access API
- eBird taxonomy
See also: Public Domain Bird Library · Opera Glass reader
-
NYC Off-Leash
A map of NYC dog runs, off-leash hours, and animal incidents
An interactive MapLibre GL map pulling from NYC Open Data. Shows every dog run and off-leash area across the five boroughs alongside 311 animal-related incident reports. Useful for dog owners planning a walk and for anyone curious about the pattern of urban-wildlife interactions in NYC.
Why it exists: Combines NYC's dog runs, off-leash hours, and 311 animal-incident reports on a single MapLibre map, so dog owners and the curious can see the whole picture in one place.
- MapLibre GL
- NYC Open Data
- Vanilla JS
-
Migration
A music-driven rhythm game where a bird evolves through the music
A small bird flies across a stylized landscape while geometric cues slide in from the right, generated from the song's spectral flux. Press arrows in time with the cues to build a streak; the bird transforms from egg, to fledgling, to songbird, to phoenix as the run progresses. Drift mode plays the same songs without scoring. Built in vanilla JavaScript with no engine, no framework, and no build step.
Soundtrack by Shane Curry.
Why it exists: Vib-Ribbon (1999) generated its levels straight from the music. Migration does the same in the browser, written in vanilla JavaScript and the Web Audio API.
- Vanilla JS
- Web Audio
- Rhythm
-
Riso Preview
Risograph print simulator with 3-layer overprint
Simulate how artwork will print on a risograph before committing ink. Load any image, assign up to three Riso Kagaku inks per layer, and preview how they'll blend in overprint. Saves a lot of test prints when you're working from home without a studio.
Why it exists: Previews how Riso Kagaku inks will composite in 1-, 2-, or 3-layer overprint, so you can commit color decisions before you commit ink and paper.
- Canvas API
- Vanilla JS
- Color theory
-
One-Page Zine
Eight-page zine from one sheet, exported to PDF
Arrange an 8-page zine from a single sheet with proper fold orientation baked into the layout. Drop in images and text per page, preview the fold, then export to a print-ready PDF. The output is the standard one-cut-one-fold mini-zine format.
Why it exists: Drops 8 page images into a single-sheet layout with the fold orientations baked in, then exports a print-ready PDF for the standard one-cut-one-fold mini-zine.
- jsPDF
- Canvas API
- Print layout