{
  "id": 13451873,
  "title": "Touch Grass Birder: On-Device Bird ID in the Browser with Open-Weight AI",
  "url": "https://urgent.news/2026/10/10/touch-grass-birder-on-device-bird-id-in-the-browser-with-open-weight",
  "topic": "ai",
  "section": "AI",
  "published": "2026-10-10T15:54:50.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/vaibhav_agrawal_562/touch-grass-birder-on-device-bird-id-in-the-browser-with-open-weight-ai-355f"
  },
  "original_language": "en",
  "account": "Touch Grass Birder is an innovative browser-based application that identifies bird species through their calls using open-source AI technology. The app records a 6-second audio clip of a bird call, processes it offline on the user's device, and provides a species identification within seconds. Users can then put their phone away and focus on finding the bird in its natural habitat. The app utilizes BirdNET v2.4, an open acoustic classifier from the Cornell Lab of Ornithology, trained on real-world field recordings, to achieve accurate species identification. It runs locally on the device using ONNX Runtime WebAssembly, eliminating the need for a server or API key, and ensuring privacy and zero marginal cost. The project is built using React, Vite, and other open-source technologies, making it accessible, portable, and easily modifiable for future improvements.",
  "summary": "This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass * What I Built Touch Grass Birder is an offline, on-device bird call identifier that runs entirely in your browser. Record 6 seconds of a bird call, get a species ID in seconds, then put your phone away and go find the bird. It identifies 6,522 species using the BirdNET v2.4 open model, running locally on your…",
  "key_points": [
    "Touch Grass Birder identifies bird species via audio calls",
    "Uses open-source AI (BirdNET v2.4) on user's device",
    "No server needed; runs locally for privacy and zero cost"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}