Mayank BishtThis is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass ...
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
Touch Grass is an AI-powered offline activity companion designed to help students and anyone who spends too much time in front of a screen reconnect with the real world.
Instead of simply telling users to reduce their screen time, it gives them something meaningful to do offline.
Users can choose their interests—such as reading, drawing, walking, gardening, sports, or cooking—and select how much time they want to spend offline. The AI then generates a personalized challenge with clear instructions and a specific goal. Users can also choose Surprise Me to discover a random activity.
Once a challenge begins, the app provides a timer to help users stay focused on the activity. Afterward, they submit activity-specific evidence, such as summarizing something they learned from reading or describing what they observed during a walk. The AI evaluates their submission and provides feedback and a score.
The goal isn't just to spend less time on a screen. It's to make the time away from it more meaningful.
https://github.com/Mayank-0-0/Touch-grass.git
I built Touch Grass using a local-first architecture inspired by my previous AI project, Day Planner.
The tech stack includes:
Frontend: React + Vite
Backend: Python + FastAPI
Database: SQLite with SQLAlchemy
AI Model: Google's Gemma 4 E2B, using a local GGUF model
Inference: llama.cpp
The React frontend communicates with the FastAPI backend through REST endpoints. The backend sends prompts to the locally running Gemma model, validates its structured responses, and stores challenge and activity history in SQLite.
AI is central to the experience: it personalizes challenges based on users' interests and available time, generates activity-specific instructions, and evaluates the evidence submitted afterward.
Rather than requiring users to upload a photo for every activity, the app supports different forms of evidence depending on the challenge. This makes activities more flexible and keeps the focus on the experience itself.
Open innovation made it possible to experiment with AI in a way that is accessible, transparent, and under my control.
Using an open-weight model with local inference means Touch Grass can generate challenges and evaluate submissions without depending on a paid, cloud-hosted AI API. It also gives me greater control over prompts, model behavior, and how user data is processed.
For a project that encourages people to disconnect from their screens, keeping the AI lightweight and local feels especially appropriate. The AI should help users get outside and engage with the world—not require another always-connected service.
Open tools also make it easier for other developers to inspect the implementation, improve the experience, and build on the idea.
Best Use of Gemma