This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
What I Built
GrassQuest β an AI app that wants you to stop using it.
Most AI apps try to keep you on your screen.
GrassQuest does the opposite.
It is an offline AI-powered nature scavenger hunt. The app gives you a real-world challenge like:
π Find a leaf.
You go outside, find one, take a photo, and GrassQuest uses a local open-weight vision model to check whether you've completed the challenge.
If you succeed:
π Challenge Complete!
+10 XPπ± Now put your phone away.
The idea is simple: AI should sometimes help you leave the screen, not spend more time on it.
It's designed for anyone who wants a small excuse to step outside β especially people who spend most of their day working or studying in front of a screen.
The game includes XP, levels, streaks, milestones, and different challenges to make going outside feel a little more fun.
Demo
GrassQuest works in one simple loop:
Get a challenge β Go outside β Find it β Take a photo β Local AI verifies it β Earn XP β Put your phone away.
In the demo, I complete a real challenge by finding a leaf and having the local vision model verify it.
The AI runs locally using SmolVLM2 + MLX, so the core image analysis doesn't depend on a cloud vision API. I also tested the local version with the internet disconnected after the model was downloaded.
The best part of the demo is what happens after the AI does its job:
βChallenge Complete π Now put your phone away.β
I also tested the application with the internet disconnected after the AI model had been downloaded.
Code
π» GitHub: https://github.com/DiyaVj/grass-quest
The project is intentionally small and easy to run locally. There is no database, no user account, and no cloud AI API involved in the core experience.
How I Built It
GrassQuest uses SmolVLM2-2.2B-Instruct, an open-weight vision-language model, running locally through MLX and mlx-vlm.
The architecture is:
GrassQuest
β
βΌ
Next.js PWA
β
Take a photo
β
βΌ
Local FastAPI API
β
βΌ
SmolVLM2-2.2B-Instruct
+ MLX
β
Visual perception
β
βΌ
Deterministic Python
validation
β
βΌ
Challenge result
β
βΌ
XP / Milestone
β
βΌ
π± Put it away
The important part is that the AI is not just an optional feature added on top of the application.
It is the mechanism that makes the scavenger hunt work.
A problem I ran into
My first implementation asked the vision model something like:
"Does this image satisfy the challenge?"
That sounded reasonable.
It wasn't.
The model could see the image correctly but still hallucinate that the required object was present because the challenge itself was influencing its answer.
For example, an image containing a person could be incorrectly judged as containing a rock when the challenge was "Find a rock."
So I changed the architecture.
Instead of asking the model to make the final decision:
VLM β "Yes/No, did they complete the challenge?"
I now use:
VLM β "What target object is visibly present, and how many can you see?"
Then deterministic Python code makes the final decision.
For example:
Challenge:
Find two leaves.
AI perception:
leaf β count: 1
Python validation:
1 >= 2 β false
Result:
Challenge failed
This separation makes the system much more reliable and gives the AI a clearly defined role: visual perception, not business logic.
Why Does Open Innovation Matter?
I could have built this using a closed vision API.
But that would miss an important part of the idea.
GrassQuest is specifically designed around local AI.
Once the model has been downloaded, the image analysis can happen without sending the user's photos to a third-party AI service.
That gives the project several advantages:
- π Privacy β photos don't need to leave the local environment for AI analysis.
- π‘ Offline capability β the core AI inference doesn't depend on an internet connection.
- π° No per-image API cost β there is no cloud inference bill for every challenge.
- π§© Model freedom β the open-weight model can be replaced, optimized, or experimented with.
- π Transparency and control β I can inspect and change how the AI is used rather than treating a closed API as a black box.
For this particular project, open AI also makes the product concept stronger.
The whole point is to disconnect from the screen.
It felt contradictory to build an app encouraging people to go outside while requiring a constant connection to a cloud AI service.
Local inference makes that contradiction much smaller.
The idea behind GrassQuest
The easiest way to describe GrassQuest is:
What if the best AI app was one you were supposed to stop using?
AI is becoming very good at helping us do more things on our screens.
I wanted to build something that used AI for the opposite purpose.
Go outside. Find something real. Take one photo. Let AI verify it. Then put the phone away.
That's GrassQuest.


Top comments (0)