DEV Community

Yabrij01
Yabrij01

Posted on

RaahSaathi AI: An Offline Companion for Touching Grass

Hacktoberfest: Maintainer Spotlight

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

What I Built

RaahSaathi AI is a local-first outdoor mission generator. You pick a mode (Walk, Nature or Garden) and a time (5, 10 or 20 minutes), and a small open-weight model running on your own machine gives you three screen-light missions, like "Find something red, then listen for three different sounds." You pick one, put the phone in your pocket, and go outside. When you come back, you type what you noticed and the app turns it into a short personal field note.

The screen is meant to be the shortest part of the experience. The AI is only there to give you a reason to look up. It is for anyone who spends too much of the day on a screen and wants a small, easy nudge to go for a walk, sit in a garden, or notice their own neighbourhood.

Demo

The hosted version on Render uses predefined missions, because a free server cannot run a language model. The full AI experience runs locally with Ollama.

Code

https://github.com/yaansa/raahsaathi

How I Built It

  • Model: Gemma (gemma3:1b) served locally through Ollama. It is small enough to run on an ordinary laptop.
  • Backend: Python and FastAPI with three endpoints: /api/missions, /api/note and /api/history.
  • Storage: SQLite keeps every session (mission, reflection, field note) on the device.
  • Frontend: One plain HTML/CSS/JS page: choose a mode and time, tap a mission, write what you noticed.
  • Fallback: If the model is unavailable or returns bad output, the app picks from predefined missions, so the demo never breaks.
  • Hosting: The web interface is deployed on Render, running in fallback mode. The AI inference stays local.

The mission prompt gives the model an "outdoor activity designer" role and safety rules: no special equipment, no photographing strangers, no sending the user into roads, private property or unsafe areas, and each activity under 40 words.

What the small model got wrong

  1. It added an intro line. The first card often read "Absolutely! Here are three safe activities...", wasting one of three slots. I added a filter that drops lines ending in a colon or starting with "Absolutely", "Sure" or "Here".
  2. Missions were poetic, not actionable. "Feel the sunshine warm on your skin" is pleasant, but it is not a task. I added a rule that every mission must start with an action verb (Find, Count, Listen, Touch, Spot).
  3. The field note invented a plan. Given "I found a rough leaf near the gate, it felt like sandpaper", the model ended the note with "I'm going to keep looking around for a different one", which I never said. I tightened the prompt to describe only what happened.

What happened when I took it outside

I did a 10-minute Walk Mode test on a nearby street. The mission I got was: "Observe something around you that you usually ignore during your daily routine."

  • What worked: A simple mission made an ordinary walk feel a little more intentional.
  • What failed: The mission was too open-ended. I wasn't sure what exactly to observe or do, which is the opposite of what a screen-light app needs. I shouldn't have to keep checking my phone to work out the task.
  • What I would change:
    • Make missions short, specific and action-oriented ("Find three different sounds"), not "observe something".
    • Add more creative, location-aware missions.
    • Make the app usable without repeatedly checking the phone.

Why Does Open Innovation Matter?

RaahSaathi uses an open-weight model locally instead of a closed cloud API.

  • Privacy: Reflections and missions stay on the device. Nothing is sent to a remote service.
  • Offline use: Walks and hikes often have poor connectivity. A local model needs none.
  • Replaceable model: The model name is one line of config. A developer can swap in a smaller model, a newer Gemma, or one fine-tuned for a particular community.
  • Inspectable behaviour: The safety rules live in a prompt I can read and change. I did not have to trust a black box to keep users out of unsafe places.

The tradeoff is real: my hosted demo can only show fallback missions, because the intelligence lives on your machine, not on a server.

Prize Categories

  • Best Use of Gemma: Gemma runs locally and generates both the missions and the field notes.
  • Best Use of Render: The public web interface is deployed on Render, in fallback mode.

Top comments (0)