--- title: Perch emoji: 🐦 colorFrom: green colorTo: blue sdk: docker app_port: 7860 pinned: false license: mit short_description: Ask questions about bird distributions in plain language --- # Perch Plain-language questions about bird distribution, range and abundance, answered over [eBird Status and Trends](https://science.ebird.org/en/status-and-trends) data from the Cornell Lab of Ornithology. Ask something like *"animate how Ruby-throated Hummingbird abundance shifts through the year"* and Perch picks the datasets, writes the SQL, runs it, and returns a map, a chart and an explanation. No GIS software, no SQL. ## What's inside - **16 species across six continents** — 82 datasets covering weekly abundance, seasonal ranges and regional statistics, on an H3 hexagon grid. - **A tool-calling agent** (Gemini) that searches the catalog, inspects schemas, writes DuckDB SQL, and fans out to parallel sub-agents for multi-species questions. - **Spatial joins** against Natural Earth country and state boundaries. The API and the frontend are served by the same FastAPI process, so there is one origin and no CORS. ## Configuration Set `GOOGLE_API_KEY` as a Space secret. Without it the app loads but cannot answer questions. ## Data and attribution Bird data: eBird Status and Trends, Cornell Lab of Ornithology (2023 release). Boundaries: Natural Earth. Species photographs and recordings come from Wikimedia Commons under Creative Commons licences, each credited in the app beside the image and the audio player.