DEV Community

Cover image for TrailBuddy: The AI That Disappears—Powered by Gemma, Built to Get You Outside
Kaushani Koner
Kaushani Koner

Posted on

TrailBuddy: The AI That Disappears—Powered by Gemma, Built to Get You Outside

Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass Submission 🌿

TrailBuddy: The AI That Disappears

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass.

What I Built

TrailBuddy turns a few choices—your mood, available time, activity, and preferred difficulty—into a personalized outdoor adventure.

It isn’t meant to be an AI companion you keep checking while you’re outside. Gemma designs a short sequence of sensory missions: listen for a sound you usually miss, notice a pattern, or explore your surroundings with curiosity. TrailBuddy then asks whether you’re going out, shows a closing scene where a bird takes off, and invites you to put your phone away.

The idea behind it is simple:

“What if the best thing an AI could do for you was make you stop looking at it?”

After generating and preparing an adventure, you can continue through its missions offline. Progress and an optional reflection are saved in your browser. Generating a new adventure still requires the configured backend and Ollama/Gemma to be available.

Demo

Watch the TrailBuddy screen recording

Code

TrailBuddy on GitHub

How I Built It

TrailBuddy uses Gemma 3 (gemma3:4b) through Ollama for local adventure generation. The React and Vite frontend sends the selected preferences to a Node.js and Express backend, which requests a structured adventure from the model and validates the response before showing it.

The frontend presents the generated missions one at a time in Phone Away Mode. The closing scene uses Three.js, and the production app includes a service worker that caches the application shell and assets for a prepared offline adventure. Local progress and reflections are stored in browser storage.

Why Does Open Innovation Matter?

The open-weight Gemma model and local Ollama setup let me build around a model I can run and experiment with on my own machine. I could shape the prompt for a specific purpose—an outdoor experience designer—and validate the result as structured missions instead of building another general-purpose chat interface.

Local inference also means the default setup doesn’t need a cloud LLM API to generate an adventure. The offline flow goes further: once an adventure is prepared, the user can leave the AI and backend behind and continue with the saved missions. That distinction matters: a new adventure still needs the configured model and backend.

My Agent Session

TrailBuddy Hacktoberfest Submission
You

Curate and save an Agent Session for my TrailBuddy Hacktoberfest submission. Remove secrets, credentials, and private machine paths. Save the session only—don’t create or publish my DEV article. Return the session ID or slug and the exact {% agent_session ... %} tag.

Agent

Saved this curated Agent Session for the TrailBuddy Hacktoberfest submission. No secrets, credentials, or private machine paths are included.

Prize Categories

  • Best Use of Gemma

devchallenge #hf26challenge

Top comments (0)