This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
What I Built
TouchGrass AI is a lightweight, offline-first web application that generates hyper-local, 3-step micro-adventures. The goal is simple: make the screen the shortest part of the experience.
You select your current environment (e.g., a local park, city center, or quiet neighborhood) and the time you have available. The app instantly generates a unique real-world observation quest. Instead of scrolling, you get specific physical tasks-like finding a distinct architectural feature, observing specific colors in nature, or completing a walking challenge. You lock your device, put it in your pocket, and actually interact with the physical world around you.
Demo
Code
How I Built It
-
AI Engine: Google's open-weight
gemma2:2brunning locally via Ollama. - Backend: .NET 10 Minimal API (C#) to handle the prompt pipeline and schema enforcement.
- Frontend: Vanilla HTML, CSS, and JavaScript with a responsive, nature-accented dark UI.
The core challenge was taming a lightweight 2B model to generate realistic, physical tasks instead of fictional role-playing narratives (initially, it tried to send me on a detective quest to investigate a fictional neighbor). By enforcing a rigid JSON schema in the C# backend and explicitly restricting the prompt from inventing fictional characters, the API reliably outputs highly contextual, real-world tasks formatted as clean JSON arrays.
Why Does Open Innovation Matter?
Building this with an open-source model was mandatory for the core concept to work:
- 100% Offline Capability: You can generate a trail quest in the middle of a deep forest where there is zero cellular signal. Because it runs locally on a laptop, it doesn't need an internet connection to function.
- Total Privacy: Your location context, available free time, and walking habits are never sent to a corporate cloud server or API provider.
-
Transparency & Control: Working directly with local inference allowed me to rapidly iterate on prompt constraints and see exactly how
gemma2:2bprocesses spatial context, allowing me to adjust my C# backend to perfectly parse and sanitize its raw output.
Prize Categories
- Best Use of Gemma
Top comments (1)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.