cd /news/artificial-intelligence/grassquest-a-local-gemma-scavenger-h… · home › topics › artificial-intelligence › article
[ARTICLE · art-148797] src=dev.to ↗ pub= topic=artificial-intelligence verified=true sentiment=↑ positive

GrassQuest: a local Gemma scavenger hunt that sends you outside

A developer built GrassQuest, a local-first photo scavenger hunt that uses Gemma 3 4B via Ollama to generate five nature-finding tasks, verify user-submitted photos, and write a short field journal from the confirmed finds. The app runs entirely on the developer's laptop with no cloud, account, or photo uploads, and testing showed five matching photos passed their tasks while mismatched photos were rejected. The project was submitted to the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass.

by read2 min views1 publishedOct 10, 2026

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.

── more in #artificial-intelligence 4 stories · sorted by recency
── more on @grassquest 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/grassquest-a-local-g…] indexed:0 read:2min 2026-10-10 · —