DEV Community

Viktor
Viktor

Posted on

TouchGrass AI: Local Gemma 2B Micro-Adventure Generator

Hacktoberfest: Maintainer Spotlight

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:2b running 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:

  1. 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.
  2. Total Privacy: Your location context, available free time, and walking habits are never sent to a corporate cloud server or API provider.
  3. Transparency & Control: Working directly with local inference allowed me to rapidly iterate on prompt constraints and see exactly how gemma2:2b processes 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.