# GrassQuest

> Source: <https://dev.to/akhimithu9/grassquest-40ad>
> Published: 2026-10-07 16:05:34+00:00

**"Touch Grass. Literally."**

*A privacy-first, offline-capable outdoor quest generator powered by local open-weight AI.*

**GrassQuest AI** is a privacy-first outdoor activity generator built specifically for the **Hacktoberfest 2026 "Touch Grass"** challenge.

The goal is simple:

Use open-source and open-weight AI to encourage people to spend **LESS time on their screens** and **MORE time outdoors** in nature.

Unlike conventional AI tools that draw users deeper into infinite screen scrolling and digital chats, **GrassQuest AI** uses AI as a brief launchpad. It generates a personalized real-world micro-quest (e.g., 20 minutes of nature observation or a mindful walking walk) and then **explicitly instructs you to put your phone away and step outside**.

The AI interaction is the shortest part of your experience.

Modern AI applications and social media platforms are optimized for screen retention, endless doomscrolling, and perpetual device engagement, leading to digital fatigue and disconnect from physical nature.

GrassQuest AI inverts the modern app paradigm:

`gemma3:4b`, `gemma:2b`, `llama3.2:1b`, `mistral`).` 0 – 499 pts`: 🌱 `500 – 999 pts`: 🌿 `1000 – 1999 pts`: 🌳 `2000+ pts`: 🌲 `LocalStorage`.
| Layer | Technology | Purpose | 
|---|---|---|
| **Frontend** | React 18 + Vite | Fast, modern, responsive UI | 
| **Icons** | Lucide React | Nature-inspired clean vector icons | 
| **Styling** | Vanilla CSS Design System | Glassmorphism, custom tokens, zero heavy frameworks | 
| **Backend** | Python + FastAPI | High-performance async API server | 
| **Local AI** | Ollama API | Inference engine for open-weight models | 
| **Storage** | Browser `LocalStorage` | Zero-tracking local data persistence | 

``` php
flowchart TD
    User([👤 User]) -->|1. Select Time & Activity| ReactUI[🌿 React + Vite Frontend]
    ReactUI -->|2. POST /generate-quest| FastAPI[⚡ FastAPI Backend]
    FastAPI -->|3. Local HTTP API| Ollama[🦙 Ollama Local Engine]
    Ollama -->|4. Inference| Model[🤖 Gemma / Open-Weight AI]
    Model -->|5. Structured JSON| FastAPI
    FastAPI -->|6. Quest Payload| ReactUI
    ReactUI -->|7. "📱 Put Phone Away"| User
    User -->|8. Go Outdoors & Touch Grass| Outdoor[🌳 Physical Nature]
```

In an era dominated by centralized, proprietary cloud AI APIs, **GrassQuest AI** stands for open innovation:

`OLLAMA_MODEL=gemma3:4b` to | Feature | Closed Cloud AI (Traditional) | GrassQuest AI (Open Innovation) | 
|---|---|---|
| **Data Flow** | User ➔ Internet ➔ Cloud API ➔ AI | User ➔ Local Machine ➔ Local AI | 
| **Internet Required?** | ❌ Yes (Always) | ✅ No (Runs 100% Offline) | 
| **API Costs** | ❌ Per-token charges | ✅ Free forever | 
| **Model Swappability** | ❌ Locked to provider | ✅ Swappable via `.env` | 
| **User Privacy** | ⚠️ Remote data logging | 🔒 100% On-Device | 

Ensure you have installed:

Start Ollama and pull your preferred open-weight model:

```
# Start Ollama service (if not already running as background service)
ollama serve

# Download the lightweight Gemma open-weight model
ollama pull gemma3:4b
git clone https://github.com/guunda/GrassQuest
cd grassquest-ai
cd backend

# Create Python virtual environment
py -3 -m venv venv

# Activate virtual environment
.\venv\Scripts\Activate.ps1

# Install requirements
pip install -r requirements.txt

# Create .env from template
Copy-Item .env.example .env

# Run FastAPI backend
uvicorn main:app --reload --port 8000
```

*Backend runs at `http://localhost:8000`*

Open a new terminal window:

```
cd grassquest-ai/frontend

# Install dependencies
npm install

# Start development server
npm run dev
```

*Frontend runs at `http://localhost:5173`*

`http://localhost:5173` in your web browser.
If you are running the project on a machine where Ollama is not installed or the model is still downloading, simply click the **Demo Mode** toggle switch in the top header.

GrassQuest AI will generate rich, deterministic outdoor quests simulated locally, allowing judges to test the entire quest workflow, countdown timer, points, and rank progression immediately!

`llava`).
This project is open-source software licensed under the [MIT License](https://dev.toLICENSE).

Built with ❤️ for **Hacktoberfest 2026 "Touch Grass" Challenge**.
