DEV Community

Shashwat Sinha
Shashwat Sinha

Posted on

WalkQuest: The AI That Ghosts You (So You Can Touch Grass) 🌿

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

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

WalkQuest 🌿

What I Built

An AI that creates a reason to go outside — then shuts up and gets out of your way.

WalkQuest is a local-first micro-app that uses a tiny open-weight model (Gemma 3 1B) to generate a personalized outdoor quest based on how much time you have, your mood, and where you're headed. You read the quest. You click "START WALK." The app explicitly tells you to put your phone away. You go outside. You come back. You optionally jot down one thing you noticed. Done.

No GPS. No maps. No step counting. No streaks. No notifications. No cloud. No account. No data leaves your machine.

Who is it for?

People who want a nudge to touch grass but don't want another app demanding their attention. The chronically online. The "I should go for a walk but I'm doomscrolling" crowd. Anyone who appreciates that the best technology is the kind you forget exists.


Demo

No deployed link. That's the point.

WalkQuest runs entirely on your laptop. Here's the 30-second demo flow:

┌─────────────────────────────────────────────────────────────┐
│  WALKQUEST 🌿                                               │
│  A tiny AI-generated reason to go outside.                  │
├─────────────────────────────────────────────────────────────┤
│  How much time?    [15 min] [30 min] [60 min]               │
│  What's your mood? [Relaxed] [Bored] [Stressed] [Energetic] │
│  Where?            [Park] [Campus] [Neighborhood] [Anywhere]│
│                                                             │
│  [ Generate My Quest ]           ← One local LLM call       │
└─────────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────────┐
│  🌿 YOUR QUEST: "The Crack in the Sidewalk"                 │
│  30 minutes                                                 │
│  1. Find three different textures underfoot.                │
│  2. Walk a block you usually skip.                          │
│  3. Stand still for 60 seconds. Just listen.                │
│  4. Spot something growing where it "shouldn't."            │
│  FINISH: What made you smile?                               │
│                                                             │
│  [ 🌿 START WALK ]                                          │
└─────────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────────┐
│                    🌱 GO.                                   │
│                                                             │
│         Your quest is waiting for you.                      │
│         Put your phone away.                                │
│         Go outside.                                         │
│                                                             │
│         See you when you get back.                          │
│                                                             │
│                    [ I'M BACK 🌿 ]                          │
└─────────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────────┐
│  🌿 WELCOME BACK                                            │
│  You went outside. That's the point.                        │
│  How did it feel?  [GREAT] [GOOD] [MEH]                     │
│  What did you notice? [________________________]            │
│  [ FINISH QUEST ]                                           │
└─────────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────────┐
│  🌱 NICE.                                                   │
│  You noticed: "the moss between sidewalk cracks"            │
│  That's enough. You went outside.                           │
│                                                             │
│  [ New Quest ]                                              │
└─────────────────────────────────────────────────────────────┘
Enter fullscreen mode Exit fullscreen mode

Try it yourself:

ollama pull gemma3:1b
ollama serve
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
streamlit run app.py
Enter fullscreen mode Exit fullscreen mode

Code

GitHub: https://github.com/ShashwatSinha03/HF_TouchGrass

WalkQuest/
├── app.py          # Streamlit UI + walk lifecycle (350 lines)
├── llm.py          # Ollama client + prompt engineering (120 lines)
├── requirements.txt# streamlit, requests (that's it)
├── README.md       # Full docs + architecture + offline demo
└── .gitignore
Enter fullscreen mode Exit fullscreen mode

Architecture:

┌──────────────┐     HTTP/JSON      ┌──────────────┐
│  Streamlit   │ ─────────────────▶ │   Ollama     │
│    (UI)      │ ◀───────────────── │  (localhost) │
└──────────────┘   Gemma 3 1B       └──────────────┘
       │                                  │
       ▼                                  ▼
  Session State                     Local Model
  (no database)                   (800MB, 1B params)
Enter fullscreen mode Exit fullscreen mode

How I Built It

The stack is intentionally boring:

  • Gemma 3 1B (open-weight, 800MB, runs on CPU/MPS)
  • Ollama for local model serving
  • Streamlit for the UI (zero frontend fuss)
  • requests for the HTTP call
  • Python + session_state for everything else

No frameworks. No LangChain. No vector DB. No RAG. No agents.

Just one carefully crafted prompt → one HTTP POST → one structured response.

The prompt engineering is where the magic lives:

  • 7 challenge categories (Observation, Movement, Exploration, Mindfulness, Play, Creativity, Optional Social)
  • Mood-aware energy tuning (Stressed → calming, Bored → playful, Energetic → movement)
  • Environment-specific guidance (Park vs Campus vs Neighborhood vs Anywhere)
  • Time-aware scoping (15min = 3 simple things, 60min = richer variety)
  • Anti-repetition via last-5-quest-titles context
  • Explicit safety + screen-free constraints

The UX philosophy:

Every screen after "START WALK" is designed to be unengaging. The "Walk Started" screen has one button: "I'M BACK." No timer. No map. No progress bar. The app wants you to close it.


Why Does Open Innovation Matter?

Because closed APIs would have ruined this.

Closed API Approach WalkQuest (Open Weight + Local)
$0.002/call × 1000 users × daily = $$$ $0 forever
Requires internet, API key, account Works on a plane, in a cabin, offline
Your mood + location + habits logged Your data never leaves your machine
Model updates break your prompts You own the model file
Rate limits, quotas, TOS changes ollama pull and you're current
"We'll use your data to improve" "We don't even have a server"

Open-weight models made this possible because:

  1. Privacy by architecture, not policy — There's no server to leak from.
  2. Zero marginal cost — The 500th quest costs the same as the 1st: electricity.
  3. Hackability — Want a different model? Swap gemma3:1b for llama3.2:1b in one line. Want to fine-tune on "better quests"? The weights are yours.
  4. No gatekeepers — No approval process, no waitlist, no "enterprise plan" for local inference.

The irony: We used AI to build something that reduces screen time. That only works if the AI lives on the user's device, not in a data center optimizing for engagement. Open weights let the incentive structure align with the human.


The Philosophy, In One Line

AI generates something useful. You read it. Screen goes away. Real life begins.

If you spend less time in WalkQuest, the product is working.

Top comments (0)