This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
What I Built
Grass Hunt 🌿 — an outdoor scavenger-hunt web app that forces people to actually go outside and touch grass.
The Game Master describes their real neighbourhood on a phone (a neem tree, a Hanuman temple, a chai stall…). An open-weight Gemma 4 model instantly turns that description into riddles written in the local language — Hinglish, Hindi, Gujarati or English. Teams then race outside against a countdown timer to find the real object and photograph it.
A second Gemma call judges every photo: is it the correct target, and is it genuinely outdoors (no TV screens or Google Images allowed)? Points, retries, funny in-language commentary, a live scoreboard, and a Gemma-written sports-commentator style recap at the end.
Built for kids, families, housing societies and school camps — anyone whose idea of fun has been stuck behind a screen. The phone is only the starting line and the referee. The real game happens under the sky.
Demo
Live: https://sherlawn-holmes.onrender.com
(Open on any phone. Free Render instance sleeps after ~15 min idle, so the first load may take 30–60 seconds.)
Want it fully offline? Run it locally in 4 steps (see README) and open http://:5000 on any phone on the same Wi-Fi. Or set USE_OLLAMA=1 and the entire game runs on a local Gemma model with zero internet.
Code
GitHub: https://github.com/shreychauhan02/Sherlawn-Holmes
Deliberately tiny — no database, no login, no framework soup:
app.py — single Flask file with Gemma 4 REST calls (cloud or local Ollama), defensive JSON parsing, and error-safe routes
templates/index.html — the complete mobile-first game UI in one file (inline CSS + JS)
How I Built It
The brain of the game is Gemma 4 (gemma-4-26b-a4b-it), used in three ways:
Riddle writer — turns the Game Master’s area description into N rhyming scavenger riddles in the chosen language and difficulty.
Photo judge — a vision call that returns {correct, outdoors, comment} for every uploaded photo (client-side compressed to ≤800px).
Commentator — writes a funny match recap at the end.
Because Gemma doesn’t offer native JSON mode, all instructions live in the prompt and the parser extracts JSON from the model’s reasoning preamble (with a retry). A single USE_OLLAMA=1 flag switches the entire game to a fully offline local Gemma via Ollama — same code, same experience, zero internet required.
Why Open Innovation Matters
A closed, fixed-pricing API would have killed this project. Grass Hunt makes many small vision calls per game (one per photo per team). Open weights mean a whole society’s tournament can run on a laptop with Ollama and zero billing anxiety. It also means the game works in a village with no internet, schools can self-host it, and anyone can swap in a better open model tomorrow by changing one line. The model is a replaceable part, not a paywall.
My Agent Session
Built with Qoder (agentic IDE): Flask backend, single-file game UI, and live API debugging sessions (model 500s, Gemma 4 reasoning-preamble JSON parsing) — all verified end-to-end against the real model.
Prize Categories
Open-weight AI / Gemma category
“Touch Grass” real-world impact
Top comments (0)