This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
🌱 TouchGrass AI: Using Local AI to Help People Spend More Time Outdoors
What I Built
TouchGrass AI is a local AI-powered application that generates personalized outdoor activity plans based on a user's chosen activity and mood.
Users can choose from activities such as walking, hiking, cycling, running, gardening, fishing, bird watching, and sketching. They enter their available time and current mood, and the application generates an activity description and practical steps to help them get outside.
The goal is to make planning an outdoor break easier and encourage people to put their devices away and enjoy the real world.
Demo
Source code: TouchGrass AI on GitHub
The application currently runs locally on my computer. I have included a screenshot of the working application showing an AI-generated bird-watching plan.
Code
GitHub repository: https://github.com/MedhaSunkad13/touchgrass-ai
The repository contains the Python application, dependency list, README, and supporting files.
How I Built It
I built TouchGrass AI using Python, Streamlit, Ollama, and Gemma 3 1B.
The application follows a hybrid approach:
- Streamlit collects the user's available time, mood, and selected activity.
- Python sends the selected activity and mood to Gemma 3 1B through Ollama.
- The model generates an activity description and practical steps in JSON format.
- Python parses and checks the generated output and cleans the steps.
- Streamlit displays the plan along with the duration and a screen-free reminder.
Gemma 3 1B is an open-weight model that I run locally through Ollama. This allowed me to experiment with AI inference on my own computer instead of depending on a hosted proprietary AI API.
Why Does Open Innovation Matter?
Open-weight models make AI experimentation more accessible to developers who want to understand how models behave and build applications around them.
For this project, running Gemma locally gave me the opportunity to integrate a language model into a real application without relying on a remote inference service. Once the model is downloaded, generation can run locally, so the activity-generation prompt does not need to be sent to a hosted AI provider.
This project helped me learn how open-weight AI can be combined with ordinary Python logic to build something practical. It also showed me that structured output still needs careful handling because small language models can produce inconsistent results.
I chose this approach because the project's purpose is to encourage people to spend less time on screens. Local inference also lets users experiment with the application without needing a hosted AI API key.
My Agent Session
This project uses a locally running model through Ollama rather than a separate agent-session workflow. I have not included a DevRelay session link.
What's Next?
I would like to improve output consistency, expand the available activities, and explore ways to make outdoor suggestions more useful while keeping the screen time required to use the application to a minimum.
Sometimes, the best use of technology is to help us put it down. 🌿


Top comments (0)