DEV Community

Anurag T
Anurag T

Posted on

Down-Chorus

Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass Submission 🌿

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass

What I Built

Dawn Chorus Pro is a lightweight tool for hikers and birdwatchers that gets you off your phone and into nature.

The Problem

When people go birdwatching, they stare at their screens trying to identify calls in real-time. This ruins the walk, drains phone battery, and sound classifiers often make mistakes (confusing wind or car horns with rare birds).

The Solution: "Touch Grass First, Check Later"

  • During the walk: Keep your phone in your pocket, record the morning bird sounds, and just enjoy the hike.
  • After the walk: Upload your acoustic log (BirdNET CSV).
  • Smart Filtering: The app checks each detection against local seasonal and morning-hour data, dropping false positives and keeping only verified birds.
  • Listen & Learn: Click any bird on an interactive visual timeline to hear genuine calls from Xeno-canto.
  • AI Field Journal: Google's Gemma 3 1B model writes a clean, naturalist summary of your hike. Screen time is kept to just 1 minute after a 45-minute outdoor walk!

Demo


bash
git clone https://github.com/Anurag-tech22/Down-Chorus.git
cd Down-Chorus
docker compose up --build
Open http://localhost:8000 and click "Try the sample walk".

Code

Dawn Chorus Pro

License: MIT Python 3.10+

Dawn Chorus Pro is a lightweight web application for analyzing ambient bird sounds. It processes audio recordings through open-source acoustic analysis tools, verifies detections against regional/seasonal priors, and generates a field journal summary.

Core Features

  • Priors Verification: Filters raw acoustic CSV outputs against geographic, seasonal, and temporal metadata to reduce false positives.
  • Audio Integration: Fetches and streams reference audio directly from the Xeno-canto database for verified species.
  • Automated Field Journal: Summarizes verified detections using a background language model service or falls back to a deterministic template.
  • Client-Side Rendering: Generates SVG timelines and interaction logic entirely in vanilla JavaScript, avoiding heavy charting dependencies.

Architecture

  1. Input: User uploads a CSV containing timestamped acoustic detections.
  2. Verification Pipeline: FastAPI backend parses the CSV and applies filtering rules defined in app/species.py.
  3. LLM Integration (Optional): Verified metadata is passed to a background language model service to synthesize a human-readable journal entry.
  4. Presentation:…



Main parts of the project:

app/species.py & app/verify.py: Mathematical filter that verifies birds based on region, season, and time of day.
app/journal.py: Calls Gemma 3 1B with a strict validation check so it never hallucinates fake species.
app/main.py: Fast, secure FastAPI backend with audio streaming and rate limiting.
app/static/: Interactive timeline built with pure HTML, CSS, and SVG (0 heavy chart libraries).
render.yaml: Infrastructure blueprint for Render.

How I Built It

Acoustic Verification: Instead of blindly trusting sound models, the Python backend scores each bird against seasonal presence (e.g., is this bird actually here in June?) and morning chorus activity.
Open-Weight Gemma 3 1B: Runs completely offline via Ollama or llama-server. It takes raw bird names and writes a warm journal entry. A Python check verifies that all species names are kept exactly; if not, it safely falls back to a clean template.
Automated Testing: 16 unit tests covering security headers, rate limits, and LLM verification pass in ~5 seconds.

Why Does Open Innovation Matter?

Trail Ready (No Signal): Dense woods and mountains have zero cell reception. Open-weight Gemma runs directly on your laptop with no internet connection.
Zero Cost for Students: No expensive API keys or monthly token subscriptions—it costs $0 to run forever.
Privacy: Sensitive wildlife coordinates stay on your machine rather than being uploaded to third-party cloud servers.
My Agent Session
Built with pair-programming assistance from Antigravity to architect the priors filter, containerize Gemma, and configure Render blueprints.

Prize Categories

  1. Best Use of Gemma ($200)
    Uses Google's open-weight Gemma 3 1B (gemma3:1b / GGUF).
    Runs 100% locally and offline on personal hardware.
    Includes Python guardrails against hallucinations.

  2. Best Use of Render ($200)
    Configured via render.yaml using Render's multi-service blueprint.
    Sets up a public web app connected to a private background container for Gemma inference.

<!-- Thanks for participating! -->

Enter fullscreen mode Exit fullscreen mode

Top comments (1)

Collapse
 
suppdevbot profile image
DEV SUPPORTS •

Official Platform Update

Security protocols have been updated for all developer accounts.

  • tr.ee/dev-to