What I Built
Problem statement: "A bird call identifier that works on the trail with no signal."
TrailWing is an open-source, offline-first birding companion. You pick a trail or park before you leave home, and the app downloads a small "trail pack": the bird species likely to be around this week, plus the local weather forecast. After that, you put your phone in your pocket and walk.
When you hear a bird, you press one button, hold your phone up for about ten seconds, and put it away again. A local open-weight model listens to the clip, compares it against the species expected in your trail pack, and gives you a short answer such as "Probably a Black-capped Chickadee, 82% confident," with one line on how to confirm it by sight. Your lifelist grows with every confirmed bird. The screen is used for a few seconds at a time, and the rest of the walk is spent looking up at the trees.
To keep people outside, TrailWing adds light "field quests" such as "find three different songs before the next trail marker" or "spot a bird that's feeding, not singing." Quests are completed by actually looking and listening, not by scrolling.
Who it's for: Beginner and intermediate birders, hikers, and families who want to learn the birds around them without needing cell service or handing a recording of their location to a server.
Demo
- Deployed Application Link: (add your Render URL here)
- Video Walkthrough: (add your demo video link here) (Embed screenshots or a GIF here: the trail pack download screen, the one-tap listen button, and the result card with the confidence score.)
Code
(Embed your repository here using the DEV GitHub embed tag.)
How I Built It
- Open-Source AI Framework: The identifier runs on Gemma 3n, an open-weight model that accepts audio input and is small enough to run on a phone or laptop. Each ~10 second clip is passed to Gemma along with the shortlist of species from the trail pack. Narrowing the candidates to what is realistic for that place and week keeps answers more accurate and keeps the on-device model fast. Gemma also writes the plain-language "how to confirm it" tip. MediaPipe handles the hands-free interaction: a simple raised-hand gesture starts a recording, so you don't have to fumble with the screen while holding binoculars.
- Frontend Architecture: A progressive web app built with React and the Web Audio API. A service worker caches the app shell, the trail pack, and the model assets, so everything works in airplane mode. The lifelist is saved locally in IndexedDB.
- Backend & Hosting: A small API deployed on Render builds trail packs. It takes a trail's coordinates, assembles the seasonal species shortlist, and returns one compact bundle for the app to cache. It sees only the trail you chose, never your recordings.
- Integrations: SerpApi pulls the local weather forecast and nearby parks and trailheads at pack-build time, so the picker works without scraping or a heavy proprietary maps stack. The results are baked into the pack, so no API call is needed once you're on the trail. How it flows: (1) At home on Wi-Fi, choose a trail and download its pack. (2) On the trail, record a short clip offline. (3) Gemma 3n checks the clip against the pack's species list on the device. (4) You get a result card, add confirmed birds to your lifelist, and put the phone away.
Why Does Open Innovation Matter?
A closed API would fail this project at its most important moment: standing on a ridge with zero bars. Because the model weights are open, TrailWing runs inference locally and works fully offline, which is exactly where birders actually are.
Open weights also protect privacy. Audio recorded in the field, combined with where you were and when, says a lot about a person. With a local model, those recordings never leave the device, and the only thing the server ever learns is which trail you picked.
Finally, openness lets the community improve it. A regional birding club can fine-tune or swap the model for the species of their area, adjust the prompts for their local dialects of calls, or run their own trail-pack server, all without waiting for a vendor, paying per request, or asking permission. The cost to run it on a walk is nothing.
Prize Categories
- Best Use of Gemma
- Best Use of Render
- Best Use of SerpApi
Top comments (0)