DEV Community

Cover image for Sidewalk Safari: Local AI That Gives You a Reason to Leave the Screen
Sumeet Choudhary
Sumeet Choudhary

Posted on

Sidewalk Safari: Local AI That Gives You a Reason to Leave the Screen

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

What if AI's job wasn't to keep us looking at the screen — but to give us something worth looking at outside?

For the Touch Grass challenge, I built Sidewalk Safari, a screen-light outdoor quest generator powered by local Gemma AI.

The idea is simple:

AI creates the adventure. You go live it. 🌿

What I Built

Sidewalk Safari generates short, age-appropriate outdoor observation missions that encourage people — especially kids and families — to explore their surroundings instead of spending more time inside an app.

You choose:

  • 🌳 Outdoor setting
  • ⏱️ Available time
  • 👦 Age group
  • 🍂 Season
  • ☁️ Optional weather note

Then Gemma 3 4B, running locally through Ollama, creates a small outdoor adventure.

For example:

FIND SHAPES

Locate five different leaf shapes scattered across the ground and draw them in your mind's eye.

COUNT THINGS

Estimate the number of different shades of brown you can observe in fallen leaves.

The missions encourage simple actions:

FIND → COMPARE → COUNT → NOTICE

And once the safari is ready, the app tells you to put the phone away.

🌱 Why Sidewalk Safari?

A lot of AI products are designed to keep you interacting with the screen.

I wanted to reverse that.

Instead of:

AI → Screen → More Screen Time

PLAN
↓
GENERATE
↓
PUT PHONE AWAY
↓
GO OUTSIDE
↓
OBSERVE
↓
EXPLORE

The screen is only the starting point.
The goal is what happens after you stop looking at it.

Demo

SideWalk Safari Demo Video

Code

The entire project is open source:

GitHub:
Sidewalk Safari

The project is designed to run locally using Ollama and Gemma.
Tech Stack

  • React
  • TypeScript
  • Vite
  • Python
  • FastAPI
  • Ollama
  • Gemma 3 4B
  • Browser Storage

How I Built It

React + Vite
↓
FastAPI
↓
Ollama
↓
Gemma 3 4B
↓
JSON Mission Output
↓
Validation + Safety Rules
↓
Safe Mission Pack

Gemma doesn't directly control the application.
It proposes missions.
The application then decides whether those missions are acceptable.

🤖 Gemma Proposes. Code Validates.

This was one of the most important design decisions in Sidewalk Safari.
A language model can generate something that sounds reasonable but isn't necessarily appropriate for the selected age, time limit, or environment.
So generated missions go through validation for:

  • Age appropriateness
  • Time budget
  • Allowed outdoor activities
  • Safety rules
  • Mission structure
  • Required safety guidance

The system uses constrained JSON output so the backend receives structured mission data rather than arbitrary text.

The principle is:
Don't blindly trust the model.

If a generated pack doesn't pass validation, generation is retried.
And if bounded generation attempts still fail, Sidewalk Safari falls back to a handwritten backup mission pack rather than leaving the user with a broken experience.
This means the AI is responsible for creativity, while the application remains responsible for safety and control.

🔒 Local AI by Design

One of the biggest reasons I chose Gemma + Ollama was that Sidewalk Safari doesn't need a cloud AI endpoint to generate its missions.

That gives the project some important properties:

No cloud AI endpoint :The mission-generation model can run on the user's own computer.
No accounts :The application doesn't require users to create an account just to go outside.
No exact-location tracking :I deliberately avoided requiring precise location data. Even the weather field is user-entered rather than automatically sending coordinates to a weather service.
Saved packs can work offline :Once a safari pack has been saved, it can be played without a network connection.

🛡️ Safety Wasn't an Afterthought

Because this project is designed for children and families, safety couldn't simply be left to an LLM prompt.
For younger age groups, Sidewalk Safari includes adult-supervision guidance.
The application itself generates the safety guidance and performs validation rather than relying on Gemma to make the final safety decision.

This separation was intentional:

Gemma generates.
Code validates.
The user explores.
Enter fullscreen mode Exit fullscreen mode

Why Does Open Innovation Matter?

This is the part of the project I think matters most.

I could have built Sidewalk Safari around a closed cloud AI API.

But that would have worked against the problem I was trying to solve.
A product whose purpose is to help someone disconnect from the internet shouldn't necessarily depend on an internet connection just to generate the experience.

Using an open-weight model with local inference makes a different design possible.

Local AI changes the relationship between the model and the user.
Instead of:

User
↓
Internet
↓
Cloud AI
↓
Response

Sidewalk Safari can work as:

User
↓
Local application
↓
Local Gemma
↓
Outdoor mission
↓
Phone away

That means developers can experiment with:

  • Different open-weight models
  • Different prompts
  • Different validation rules
  • Different age groups
  • Different outdoor activities
  • Fully local inference
  • Privacy-preserving experiences There's also no need to treat the AI provider as a permanent dependency.

That's what open innovation made possible for this project:
AI that can help someone disconnect from the internet instead of giving them another reason to stay connected to it.

What I Learned Building It

One thing this project taught me is that adding AI is often the easy part.
Designing boundaries around AI is harder.
During development, I encountered cases where generated output:

  • Didn't contain the required safety language
  • Exceeded the intended mission text limits
  • Failed time-budget validation

Instead of simply changing the prompt and hoping for better results, I moved important guarantees into application code.

That led to a more robust architecture:

LLM for generation → deterministic code for constraints.

I also intentionally kept features out of the first version.

No:

  • Social feed
  • Leaderboards
  • Accounts
  • Maps
  • Location tracking
  • Photo verification
  • Cloud database

The goal wasn't to build another giant platform.
The goal was to build a small tool that gets out of its own way.

Prize Categories

This project is submitted for:

  • Best Use of Gemma
  • Best Use of ElevenLabs

ElevenLabs was used to create the narration for the project demonstration video.

Gemma is at the core of Sidewalk Safari's mission-generation system, running locally through Ollama.

🌱 Final Thought

The best AI experience isn't always the one that keeps you on the screen.
Sometimes...
it's the one that gives you a reason to leave it.
Sidewalk Safari

The AI creates the adventure. You go live it. 🌿

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.