DEV Community

Cover image for BioScavenger: A Quest Game That Talks for 30 Seconds, Then Sends Me Outside Without My Phone
Deependra Gurjar
Deependra Gurjar

Posted on AI-assisted

BioScavenger: A Quest Game That Talks for 30 Seconds, Then Sends Me Outside Without My Phone

Hacktoberfest: Maintainer Spotlight

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

What I Built

There’s an irony in most “go outside” apps: they keep you staring at your phone the whole time. I wanted to build the opposite.

BioScavenger is a small scavenger-hunt game you mostly play with your ears. You pick where you are (a park, your campus) and how much time you have, then tap Embark on Quest. A local AI writes a few simple tasks for you: touch the rough bark of a tree, close your eyes and pick out two different bird songs, find a leaf bigger than your hand. A calm voice reads them out like a short guided walk, starting with a deep breath.

Then you put your phone in your pocket and go.

When you’re back, you upload a photo of what you found, a flower or a leaf, and claim 50 Nature Credits per task. There are balloons. I’m not sorry.

I made it for anyone who needs a gentle excuse to step away from the screen, and who doesn’t want their location or photos sent to some cloud service in the process.

Code

GitHub: https://github.com/DeependraGurjar/Bioscavenger

The README walks through setting up Ollama, Piper, and Streamlit, and lists a few ideas for contributors.

How I Built It

Everything runs on my own laptop, on the CPU, no GPU.

The quests: Qwen2.5-3B through Ollama
The app asks a small local model for a quest and requests strict JSON back, with the narration and the tasks separated. That way the app can turn the answer into proper task cards instead of dumping a wall of text on the screen.

The voice: Piper TTS
The narration goes into Piper using the en_US-lessac-medium voice, which writes an audio file the app plays in the browser.

My first version was embarrassing. It was a 5-second robotic line that felt nothing like a guided walk. I rewrote the prompt to ask for a calm, mindfulness-style script of about 70–90 words, opening with a deep breath, and now the briefing runs 25–35 seconds. That one change made the whole app feel different.

The interface: Streamlit
Streamlit handles the dropdowns, the audio player, the photo uploader, and the credit counter. Finished tasks collapse so the page stays tidy, and claiming one sets off the balloons.

Keeping the repo small
Piper plus the voice model make my project folder about 98 MB, which is far too heavy for GitHub. I used .gitignore so only the code is pushed, and the README tells people how to download Piper and the voice themselves.

The Honest Part
The photo check is on the honor system. The app takes your upload and awards credits, but it doesn’t actually look at what’s in the picture. A local vision model could fix that, and it’s at the top of my contribution wishlist.
A 3B model is still a small model. It writes nice quests, but sometimes it suggests something that doesn’t fit the place. I treat its output as a prompt for a walk, not as fact.
“Offline” has fine print. Once the models and voice are downloaded, nothing needs the internet.

Why Open Innovation Matters Here
It all stays on my machine. The quest writing and the voice happen locally. No accounts, no API key, no tracking.

It costs nothing per quest. I can generate a new one every day and the only thing I spend is battery.

Anyone can change it. Because each piece is open and swappable, someone can try a different model, add a voice in their own language, or redesign the interface without asking permission.

And local AI isn’t magic:
First-time setup takes longer than calling a hosted API.
On a CPU, generation can feel slow. I added progress messages and a timeout so the app doesn’t look frozen.
Ollama gave me WinError 10061 connection errors, and I lost a while to that before I learned to check whether it was already running in the background.
The Walk
When and where: [Date, general place, how long]
The quest I got: [The actual tasks]
What worked: [A moment where the audio really made you notice something]
What didn’t: [A task that didn’t fit the place, or something off with the voice]
One surprise: [Something small you noticed outside]
Screen time: [What you really did with your phone]

Want to Help?
The repo is tagged for Hacktoberfest, and I’d love contributions. A few ideas:

Take photos straight from a phone camera
Narration in more languages
Real photo checking with a local vision model
Saving credits between sessions
Printable quest cards
Setup guides for Linux and macOS

Top comments (0)