This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
GrassQuest turns a short walk into a photo scavenger hunt. You type where you're going, the season and how long you have. Gemma writes five things to find: a leaf shape, bark, a flower, a puddle reflection, a small insect. You snap a photo of each, and Gemma checks it. At the end it writes a short field journal from only what you actually found.
The idea is simple: the screen should be the shortest part of the walk. You plan in about 20 seconds, then put the phone away.
It runs entirely on my laptop. No cloud, no account, and no photo ever leaves my machine.
There is no live URL on purpose. The model runs locally through Ollama, so a hosted copy would defeat the point.
Screenshots from the demo:
A local-first app for the Hacktoberfest "Touch Grass" challenge.
gemma3:4b model pulled in Ollama
Install dependencies:
npm install
Pull the required model if you haven't already:
ollama run gemma3:4b
Start the server:
npm start
Open your browser and go to http://localhost:3000
Setup: install Ollama, run ollama pull gemma3:4b, then npm install and npm start, and open http://localhost:3000.
localStorage so a refresh doesn't lose the quest.
I tested the photo check with real photos on my laptop. Five matching photos passed their tasks, and mismatched photos were rejected. A photo of roses was correctly rejected on a different flower task.
| Task | Photo | Result |
|---|---|---|
| Leaf with five lobes | maple leaf | pass |
| Close-up of rough bark | tree bark | pass |
| Cluster of pink flowers | flowers | pass |
| Building reflection in a puddle | puddle | pass |
| Small insect on a leaf | stink bug | pass |
| Any task | unrelated photo | rejected |
I used Antigravity to help write the code, and a Claude assistant helped me plan the build and write this post. The app itself runs on Gemma locally.
Best Use of Gemma: Gemma 3 4B does all three jobs (planning, vision and writing) locally.