This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
What I Built
Trail Journal is a small two-script tool that puts the screen at the start and end of a walk instead of the middle.
-
Before the walk,
hunt.pyasks a local Gemma model for a short scavenger hunt that fits my place, weather and walk length. - During the walk, the laptop stays at home. I carry only my phone, take photos of what I find, and otherwise keep it in my pocket.
-
After the walk,
journal.pysends the photos to a vision-capable Gemma model, which describes each one and writes a short nature journal entry as a Markdown file.
It's for anyone who wants a reason to step outside and a small keepsake afterwards. You don't need to be a nature expert, and you don't need an internet connection once it's set up.
Demo
I generated a hunt for a street in Pune, India, then went for a 30-minute evening walk with a short list of things to photograph: a flower, a tree, a leaf and something blue. I heard crows and horns and saw lots of pink flowers. Back at my desk, I ran the journal on the four photos.

The hunt Gemma generated locally for a street in Pune.

The journal entry next to my flower photo. The model guessed chrysanthemum, which looks right.

The model called this tree a neem, but it looks closer to eucalyptus to me.
The walk left me relaxed, peaceful and calm, which is exactly what I hoped a "touch grass" project would do. The tool did its work before and after, and the walk itself was just me, my phone in my pocket, and the street.
Code
https://github.com/VaidehiThaware/trail-journal
How I Built It
- Model: Gemma 3 (4B), an open-weight model with vision support, run locally through Ollama.
-
Glue: two small Python scripts using the
ollamaclient library.hunt.pybuilds a prompt from the place, weather and duration.journal.pyworks in two stages: first it asks the model to describe each photo with a confidence level, then it writes a short entry from those descriptions and my own notes. - Tools: I used an AI assistant (Claude) to help write the scripts and draft this post. I ran, tested and debugged everything myself on my own laptop.
My first runs had problems, and I fixed each one by tightening the prompts:
-
The hunt assumed autumn leaves in India, left a
[Name of Park]placeholder, and asked me to record a sound for a photo-based journal. I rewrote the rules and the output improved. - The journal invented a date, made up species names, and added smells I never mentioned. I banned new species names, added rules against inventing details, and lowered the temperature to 0.2 and 0.3.
- A safety slip: one hunt told me to "close your eyes" and listen next to traffic. I ignored it and listened with my eyes open, away from the road edge. A tool like this shouldn't be trusted blindly.
How well did it work?
I checked each description against my own photos:
| Photo | What the model said | Verdict |
|---|---|---|
| Pink flower | Chrysanthemum with layered petals | Looks right |
| Tree | Neem | Probably wrong (long narrow leaves, looks closer to eucalyptus) |
| Blue car | Blue hatchback, white SUV behind it | Right |
| Leaf | Guava with serrated edges | Wrong (the edges are smooth, species doubtful) |
It got 2 of 4 right. It was reliable on colors, objects and the overall scene, and weak on precise plant species. It also ignored part of my notes: it wrote that it saw no other plants or animals, even though I'd mentioned crows and lots of flowers.
So a 4B model is a companion that describes and suggests, not an expert. The README warns never to eat or touch anything based on its output.
Why Does Open Innovation Matter?
- My photos and location stay on my laptop. Nothing is uploaded, and there's no account or API key. For a tool that looks at the streets near my home, that matters to me.
- It costs nothing to run. That let me rerun and rewrite the prompts as many times as I liked while fixing the problems above. Doing that against a paid API would have made me hesitate.
-
I can change the model. Both scripts take a
--modelflag, so a bigger or more accurate open model is a one-word change as better ones come out. - It works without signal once set up. After the one-time model download nothing needs the internet, which suits walks where coverage is poor.
I'm not claiming open beats closed on accuracy. A larger closed model might well name the tree correctly. What the open route gave me was privacy, control and zero cost, and for a hobby tool I think that's the better trade.
What I'd Do Next
- Mark every species guess as "unverified" by default.
- Pair Gemma with a small local plant-ID model for species, and let Gemma only write the journal.
- Add a voice-note option, so I can say what I heard instead of typing it.
Prize Categories
- Best Use of Gemma: Gemma 3 4B runs locally through Ollama for both the text and the vision parts of the project.
Top comments (0)