DEV Community

Shreshth Khetan
Shreshth Khetan

Posted on

Campus Flora Finder: An Offline-First AI Botanist That Gets You Outside

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

What I Built

As developers, we spend hours hunched over keyboards staring at screens and debugging code. For this week's "Touch Grass" challenge, I wanted to build a project that turns outside breaks into an engaging exploration.

I built the Campus Flora Finder, an offline-first botanical companion designed to make the screen the shortest part of the experience:

  1. Get outside: Step away from the desk, walk around campus or local parks, and discover local plants, shrubs, and trees.
  2. Snap a photo: Take a quick photo of unfamiliar flora.
  3. Instant identification: Upload the image to receive the common name, scientific classification, key botanical traits, and an ecological fun fact—then put the phone away and get right back to the walk.

Demo

(Tip: Drag and drop a screenshot or GIF of your Streamlit app running locally with a plant identified right here!)

The interface runs locally in the browser with zero external network dependencies, processing uploaded plant photos in seconds.

Code

🌿 Campus Flora Finder

Hacktoberfest 2026 Week 1 Challenge Entry (Theme: "Touch Grass")
An interactive, 100% offline, privacy-first botanical identification web application built with Streamlit and open-weight vision models running locally via Ollama.


🍃 Overview & The "Touch Grass" Philosophy

The goal of Hacktoberfest's "Touch Grass" challenge is simple: encourage developers and university students to step away from code editors, take a breath of fresh air, explore their campus green spaces, and reconnect with the natural world.

Campus Flora Finder bridges tech and nature. Take a walk across your university grounds, snap a photo of any wild tree, shrub, or blooming flower on your laptop or phone camera, and receive instant field botany diagnostics—without sending a single byte of personal data or images to external cloud APIs.


✨ Features

  • 🌲 100% Offline & Private: Runs entirely on your local machine using open-weight vision models (llava, moondream…

How I Built It

The application is built in Python with Streamlit for the frontend and powered by local open-weight vision-language models via Ollama.

  • Architecture: The app processes images locally using the open-weight llava (or moondream) vision model through Ollama's local inference runtime.
  • Pipeline: Streamlit ingests images (JPEG/PNG), converts them directly into byte streams, and sends them to the local model endpoint along with a targeted botanical prompt to extract structured taxonomy and ecological details.
  • Resilience: The tool includes clean fallback handling to notify users if the Ollama daemon or model weights need to be initialized.

Why Does Open Innovation Matter?

Open-source AI and local inference are uniquely suited for an outdoor application:

  1. True Offline Utility: Trails, botanical gardens, and campus perimeters frequently suffer from weak cellular reception and dead zones. Running open-weight models locally ensures the identification pipeline works without an internet connection.
  2. Zero Cost and High Accessibility: Cloud-hosted multimodal APIs incur continuous token and image ingestion costs. Using open weights allows students and outdoor enthusiasts to scan hundreds of specimens without subscription barriers or API fees.
  3. Data Privacy: Exploration photos and metadata stay entirely on the local device rather than being uploaded to third-party corporate servers.

My Agent Session

Scaffolded the Streamlit interface and image byte-stream pipeline using an IDE coding assistant to quickly test prompt structure and local inference speed.

Top comments (0)