cd /news/artificial-intelligence/nature-saathi-an-ai-companion-that-s… Β· home β€Ί topics β€Ί artificial-intelligence β€Ί article
[ARTICLE Β· art-146959] src=dev.to β†— pub= topic=artificial-intelligence verified=true sentiment=↑ positive

Nature Saathi: An AI Companion That Sends You Outside

A developer built Nature Saathi, an open-source AI outdoor learning companion that uses a locally run Gemma 3 4B model via Ollama to generate custom nature expeditions based on a user's available time, difficulty preference, and curiosity. The Flask-backed app returns structured missions with tasks, observation cues, learning notes, and safety notes, and includes a validation layer that blocks malformed, incomplete, or unsafe model output before it reaches the page.

by read5 min views2 publishedOct 7, 2026

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

We keep using our phones to learn about the world instead of looking at the world around us. We'll open an app to identify a bird while the bird is sitting ten feet away, ignored.

So I asked myself: what if AI didn't give us another reason to stare at a screen?

Nature Saathi is an AI-powered outdoor learning companion that turns an ordinary walk into a real-world nature expedition. Saathi (ΰ€Έΰ€Ύΰ€₯ΰ₯€) means "companion" in Hindi. Most apps want your eyes on the screen. Nature Saathi wants them on the sky, the soil, and the sparrow on the wall.

You tell it three things: how much time you have, how adventurous you feel, and what you're curious about (leaves, birds, and so on). A local AI model writes a custom expedition just for you. You read one mission, put the phone away, go explore, come back, and tap complete.

πŸ“± The screen should be the shortest part of the experience.

Who is it for? Curious kids, families, students, and anyone who wants a nudge to notice the world. It also suits anyone who has caught themselves "going for a walk" while scrolling.

The whole product is built around one idea: AI creates the mission, you leave the screen, and you come back with a discovery.

sessionStorage) Youtube demo video : https://youtu.be/5P2vqBBz-FI

Expedition setup: choosing time, difficulty, and an interest like 🌿 Leaves

Mission generation: Gemma writes the outdoor challenge

Active expedition: the key moment. The app literally tells you to put your phone away.

An AI-powered outdoor learning companion that turns an ordinary walk into a real-world nature expedition.

Quick Start Β· How It Works Β· API Β· Tests Β· Roadmap

Saathi (ΰ€Έΰ€Ύΰ€₯ΰ₯€) means companion. Most apps want your eyes on the screen. Nature Saathi wants them on the sky, the soil, and the sparrow on the wall.

Pick how long you have, how adventurous you feel, and what you're curious about. A local AI model writes a custom expedition for you. You read one mission, put the phone away, go explore, come back, and tap complete.

   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β”‚  1. PICK  β”‚ ──▢ β”‚  2. READ  β”‚ ──▢ β”‚ 3. EXPLOREβ”‚ ──▢ β”‚ 4. RETURN

… The README covers setup, Ollama configuration, the API, tests, and a roadmap.

Layer Tech
Frontend HTML, CSS, vanilla JavaScript
Backend Python, Flask
AI Ollama runningGemma 3 4B locally
Tests Python unittest + a Node test for frontend logic
        Nature Saathi
             β”‚
      Browser / UI
             β”‚
          Flask
             β”‚
     Mission Service
             β”‚
          Ollama
             β”‚
        Gemma 3 4B
             β”‚
     Generated Mission
             β”‚
          Browser

The browser sends your choices to a single endpoint:

POST /api/missions/generate
{
  "duration_minutes": 45,
  "difficulty": "Explorer",
  "interest": "Birds"
}

Flask hands the request to a mission service, which fills a prompt template and asks Gemma (through Ollama) for an expedition. The response contains a title, theme, intro, a safety note, and a list of missions. Each mission has a task, an observation_cue (what to look, listen, or feel for), a learning_note (the "aha" fact), and an evidence_type.

The part I'm proudest of is the validation layer. The mission service checks everything the model returns. Malformed, incomplete, or unsafe output never reaches the page. Errors always share one shape, so the frontend can respond predictably:

{ "error": { "code": "...", "message": "..." } }
Status Meaning
400 Invalid request
503 Ollama is unavailable
502 Model output was malformed, incomplete, or unsafe

When your product tells people to walk outside, "the AI said so" isn't good enough. Every expedition has to carry a safety note.

I'll be honest: running a model locally is slower than calling a hosted API. My first Gemma generations took significantly longer than a typical API call, and the default timeouts failed before the model finished.

So I:

That trade-off shaped the design. Because generation takes a moment, Nature Saathi generates the whole expedition once, up front. Then you put the phone away and never wait on the AI mid-walk.

The test suite is deliberately dependency-light:

python -m unittest discover -s tests -v   # mission service checks
node tests/test_frontend_render.js        # navigation, progress, refresh recovery, bad data

The mission I got: Find different types of flowers around you

Where I went: A park near my hostel.

What happened: I chose 45 minutes and flowers, and Nature Saathi gave me five field notes: Color Spectrum, Shape Seekers, Silent Observation, Flower Count, and Floral Sounds.I took it to a park near my hostel, and my friend came along. We did the flower activity together.

There were so many flowers: yellow, pink, purple, and white, plus some wild flowers growing on their own. I expected to find a few flowers. I didn't expect how much beauty I had been walking past.

The best part wasn't only the flowers. Once we stopped and really looked, we saw butterflies, honeybees, and other tiny insects moving from flower to flower. We also noticed how strong and different the fragrance was from each one.

While completing the missions, I felt calm. Doing it with a friend made it even better, because we kept pointing things out to each other.

I loved this experience, and we both enjoyed it a lot.

Nature Saathi uses Ollama to run Gemma 3 locally instead of sending every interaction to a hosted AI API. For this particular project, that open approach was better than a closed one in several ways:

127.0.0.1, the privacy story is simple to verify. ollama pull gemma3:4b. That matters for classrooms, community groups, and anyone who can't or won't hand over a credit card.OLLAMA_MODEL). If a better open-weight model arrives next month, Nature Saathi can adopt it without rewriting the app. There's also a philosophical fit. An app about noticing the world around you is stronger when the technology behind it is something you can inspect, run, and change yourself.

Contributions and ideas are welcome. Open an issue and say hello!

── more in #artificial-intelligence 4 stories Β· sorted by recency
dev.to Β· Β· #artificial-intelligence
GrassQuest
── more on @nature saathi 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/nature-saathi-an-ai-…] indexed:0 read:5min 2026-10-07 Β· β€”