This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
What I Built
Wayside is a pocket field guide for walks. You snap a plant, bird or insect, put the phone back in your pocket, and keep walking. A few seconds later the phone buzzes and reads the answer aloud: what it is, two things to check with your own eyes, whether it is safe to touch, and what to look for next.
I live in rural Karnataka. Two things about my walks shaped the whole app:
- The signal comes and goes. So Wayside opens offline, saves photos taken with no signal, and identifies them on its own when the phone is back in range.
- The people around me know these plants by names no app has. The names my mother uses for the plants in our garden are not always the ones in a book, and they change from village to village. So Wayside only shows a local (Kannada) name when Gemma is very sure. Otherwise it says "ask someone nearby what they call it", and saves their answer to your journal.
That second one is my favourite feature, because the best thing an AI can do on a walk is send you to talk to a person.
My walk
On the morning of 9 October, at 7:53, I took Wayside around our garden after the monsoon. It was a short walk, about six minutes, and I spotted 9 things. Two of them came back with Kannada names: curry leaf, ಕರಿಬೇವು and hibiscus, ದಾಸವಾಳ. I asked my mom what she calls them, and she said the same names.
What I liked most: it made me stop in the middle of the walk and look properly at things I walk past every day, and then go and learn what they are. It made me happy.
At the end of a walk you get a walk card: time, distance, what you found, and how much of the walk you spent with the screen off.
Honest number: only 21% of my walk was with the screen off, because I kept looking at the results. That is exactly why the app vibrates and speaks the answer, so next time the phone can stay in my pocket.
Demo
Try it on your phone: https://wayside-1037019152152.asia-south1.run.app (no sign-up; add it to your home screen).
- Tap Start walk and put the phone away.
- Snap anything green or alive.
- Wait for the buzz. If it says "ask someone nearby", ask, and type in what they call it.
- Tap End walk for your walk card.
Code
Ankith-m1006
/
wayside
A pocket field guide for walks: snap a plant, bird or insect and Gemma names it in English and your local language. Works with patchy signal.
Wayside
A pocket field guide for walks. Snap a plant, bird or insect you spot outside; Gemma names it in English and your local language, gives you two things to check with your own eyes, says whether it is safe to touch, and suggests what to look for next. Then you put the phone back in your pocket.
Try it: https://wayside-1037019152152.asia-south1.run.app (works on any phone; add it to your home screen)
Built for the DEV Hacktoberfest Open-Source AI Challenge, Week 1: Touch Grass.
Why
Most nature apps keep you looking at the screen. Wayside is built the other way round:
- Snap and keep walking. Identification takes a few seconds; your phone buzzes and reads the result aloud when it is ready, so the phone stays in your pocket. Speech uses the device's own voices (Android Google TTS, Apple voices on iPhone and Mac, Windows voices); if the device has…
MIT licensed. No build step and no dependencies on the server: one Node file, one HTML file, a service worker.
How I Built It
Gemma 4 is the whole brain. One multimodal call takes the photo (resized on the phone to 1024 px), the region name and the month, and returns strict JSON: common and scientific name, a confidence score, alternatives, two look-closer checks, a local fact, a safety level, the next thing to find, and the local name with its own confidence.
phone (PWA: IndexedDB queue, service worker)
| photo + "Karnataka, India" + "October" (GPS never leaves the phone)
v
Node server (/api/identify, /api/quest, /api/speak)
v
Gemma 4 26B (gemma-4-26b-a4b-it) via Google AI Studio, falling back to Gemma 4 31B
or Gemma on your own machine through Ollama (gemma3:4b), fully offline
Testing it honestly. I did not want a demo that only works on the photos I chose, so I wrote a field test (scripts/fieldtest.mjs) that runs the exact production prompt on photos of 14 things you actually see on a Karnataka roadside, and scores the species and the Kannada name against an answer key.
Results with Gemma 4 26B on the exact production prompt (14 photos, Wikimedia images of things on a Karnataka roadside):
| Result | |
|---|---|
| Species identified correctly | 14 / 14 (banana, bulbul, coconut, drongo, frangipani, hibiscus, ixora, kingfisher, lantana, mimosa, myna, neem, plain tiger butterfly, tulsi) |
| Kannada names shown to the user | 5, all 5 correct (ಬಾಳೆಹಣ್ಣು, ತೆಂಗಿನ ಮರ, ದಾಸವಾಳ, ಬೇವು ಮರ, ತುಳಸಿ) |
| Wrong Kannada names shown | 0 |
| "Not sure, ask someone nearby" | 8 of 14 |
| Time per photo | 21 to 60 s, about 36 s on average |
On my real walk the two Kannada names it showed were also right (my mom checked).
What the test taught me:
- The confidence gate is doing real work. For the kingfisher, Gemma produced ಬಿಳಿ ಗಂಟಲಿನ ಮೀನುಗಾರ, a word-for-word translation of "white-throated fisher", not a name anyone in a village uses (people say ಮಿಂಚುಳ್ಳಿ). It rated its own confidence at 0.7, so the app hid it and asked the walker to ask a neighbour. Eight out of fourteen times the honest answer was "ask someone", and that is the point of the app.
- The first version of the prompt invented local names. For an Ixora it gave "Rangan", which is the Marathi name, for a Kannada request. For the bulbul it wrote the English word in Kannada script. So the prompt now forbids other languages and transliterations, asks Gemma how sure it is about the local name, and the app hides anything below 0.85 and sends you to a neighbour instead. A wrong name stated confidently is worse than "ask someone".
- I tried two more features and dropped them. Bird calls: the Gemma 4 API does not take audio input yet. A written nature journal: Gemma thought for over 8,000 tokens and three minutes to write a bland paragraph. Neither got people outside, so they went.
Small things that keep the phone in the pocket:
- The phone vibrates and speaks the result (device voices, with a Google Cloud Text-to-Speech fallback for languages like Kannada that phones often lack).
- Best time to walk today from Open-Meteo's open weather data: the driest, coolest hour before sunset.
- A daily quest: three things common where you are in this season.
- Any region: on first open it asks where you walk (Karnataka, California, Kenya...) so names and quests fit.
Privacy: only the photo, the region name and the month are sent. Location stays on the phone and is only used to draw your route.
Safety: wild plants and mushrooms are never called safe to eat, whatever the model says.
Why Does Open Innovation Matter?
Because Gemma is an open model, this does not have to depend on a big company's server or an internet connection. A village school, a farmers' group or a forest guide can run the same app on their own laptop with Ollama, with no bill and no signal. The names of plants belong to the people who use them, like my mom, and with open code anyone can add their own village's names. And because the model and the code are open, I could test exactly what it does, like the field test above, instead of trusting a black box.
Prize Categories
- Best Use of Gemma: Gemma 4 (26B, with 31B fallback) does all the identification and quest writing in production; the same code runs on Gemma 3 4B locally with Ollama, fully offline.
I used an AI coding assistant while building this. The idea, the walk, the photos, my mom's names and the testing are mine.
Thanks for reading. Now put the phone down and go outside. 🌿

Top comments (0)