This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass.
OneScreenOut is a small Python CLI that turns a time budget, nearby surroundings, and energy level into one outdoor micro-expedition. It is designed for students and developers who finish a coding session and need a concrete reason to step outside.
The design constraint is simple: the useful interaction should fit on one screen. A local Gemma 3 model, served through Ollama, generates a mission with three short steps, a sensory cue, and a safety reminder. The program saves a local field card, prints it once, and exits.
Its final line is the product's goal:
📵 Pocket your phone now. The app is done; the outside part starts here.
There is no feed, streak counter, or follow-up chat. The intended flow is: request a plan, read it, close the laptop, and spend the break outdoors.
This is a local CLI rather than a hosted web application. To run it, download the project folder, start Ollama, and run:
ollama pull gemma3:1b
python app.py --minutes 15 --environment "college campus" --energy medium
For an interface preview without down a model:
python app.py --sample
The following is the static sample output, explicitly labeled as such. It is not evidence of a live AI inference:
🌿 OneScreenOut
Quest: Three Textures, Ten Minutes • 15 min • SAMPLE (no AI call)
Walk outside and find three natural textures you can observe without
disturbing anything.
1. Find one rough texture and describe it in three words.
2. Find one smooth texture and notice how light falls across it.
3. Stand still for 30 seconds and listen for the farthest sound.
Notice: Look for one detail you would normally walk past.
Safety: Stay in public, familiar areas and keep clear of roads or hazards.
📵 Pocket your phone now. The app is done; the outside part starts here.
The generated card is also saved to quest_card.txt. This makes it easy to read once before leaving the screen.
OneScreenOut source, README, and MIT license
The project was added during the October 5–11 challenge window. It currently lives in a dedicated folder within my existing repository.
The application uses the Python standard library for argument parsing, HTTP requests, JSON processing, and terminal output. Its default model is gemma3:1b, and its inference request goes to Ollama on localhost:11434.
The model is the core: it adapts the mission to the user's available time, environment, and energy. The Python layer formats the result into a small field card. Ollama's JSON output mode is enabled, and the application checks the expected keys and the three-step list before rendering.
The prompt asks for public, familiar activities and excludes private property, traffic, climbing, swimming, unknown plants, and wildlife handling. These are prompt instructions, not a guarantee that a generated plan is safe; the user still needs to judge local conditions.
The --model option lets users select another locally installed model. The --sample option previews the interface without making an AI call. If Ollama cannot be reached, the app reports an error instead of silently substituting a sample.
An AI agent prepared the implementation and generated this write-up at my direction, with no manual editing of the article by me. During its final review, the agent fixed literal JSON braces in the Python prompt so they were not treated as formatting expressions. Prompt construction and sample rendering were verified. Live Gemma inference and an outdoor field trial have not yet been verified for this submission.
For OneScreenOut, local inference makes the intended interaction private and independent of a hosted AI account. After installing Ollama and down the model, the generation path can run without internet access. The app does not send the user's surroundings or energy level to a cloud model API.
An open-weight model also gives the user control over which model runs on their hardware. The application code and prompt can be inspected and changed: someone could localize the missions, adapt the instructions for accessibility, or experiment with another model. Gemma's model terms are separate from the application's MIT license.
A hosted API could generate an outdoor plan too. The concrete advantage here is that the plan can be generated locally, without a hosted-model API key or a per-request API bill. The trade-off is that users need to install a runtime, download model weights, and have hardware capable of running them.
The most interesting constraint was deciding how little the AI should say. A short mission is more useful for this theme than an open-ended conversation. Three steps and one sensory cue give the user something specific to do, while the final instruction makes leaving the screen part of the experience.
The current prototype still relies on the model to follow length and safety instructions. A next improvement would be stricter output validation, followed by measured live-inference tests and a real outdoor trial.