This is a submission for Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
What I Built
Clearing is a small Flutter app designed to make a walk the main event. I take a photo outdoors; a locally running Gemma model checks whether it shows an outdoor scene and writes a short description and tags. Verified moments become pins on my personal map and entries in a chronological journal.
The idea is to give a walk a lightweight record without turning it into another social feed. There are no likes or public profiles.
Demo
The app runs as a PWA on my iPhone, with the backend and model running on my own computer. I’m including screenshots here because I don’t have a permanent public demo link.
Code
How I Built It
The client is Flutter Web. A local FastAPI backend stores verified photos and app data in SQLite, then calls Gemma through Ollama for image verification and descriptions. Perceptual hashing helps identify repeated photos.
The flow is deliberately small: capture, verify, then show the result on the map and in the journal. The map uses external map tiles; the photo and exact location stay with my local backend rather than going to a hosted vision API.
Why Does Open Innovation Matter?
Running an open-weight model locally lets me keep the image verification under my control and avoid sending personal photos to a closed vision service. I can inspect the flow and change the model or backend as the project evolves.
There is a tradeoff: the phone still needs to reach my computer while the app is running, and the map needs map tiles. Local inference keeps the photo analysis local, but it doesn’t make the whole app independent of connectivity.
My Agent Session
I used AI assistance while building and debugging this project. I’m not attaching a session transcript to this post.
Prize Categories
- Best Use of Gemma

Top comments (0)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.