This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
What I Built
Five-Minute Field Notes makes a tiny observation mission for a place I can already access: a park, garden, quiet sidewalk, campus, or balcony. I select what I want to notice, whether I will stroll or stay seated, and whether I have 5, 10, or 15 minutes. A local model creates three short cues and a question for when I return. The useful part happens after I close the page and go outside.
I deliberately skipped maps, live weather, and species identification. The app cannot know which route is safe or what wildlife will appear. It gives me a way to pay attention where I already am.
This is a solo submission. There are no teammates to credit.
Demo
Watch the 31-second silent demo. It shows the running app, my selections, the local model generating a card, and the finished printable card. There is no voice or music.
My quick demo path is Balcony or doorstep → Sounds → From one seated spot → 5 minutes → Make my field card. The resulting card is generated by gemma3:1b on my Mac. I can print it, put the screen away, and follow the cues from one safe spot.
Code
Public GitHub repository · Setup instructions · Build notes and verification
The complete app has two main files: app.py is the local Python server and Ollama call, and index.html is the responsive interface and printable card. README.md has setup instructions and the demo flow; tests.py checks the model request and card validation. It runs with Python's standard library, Ollama, and the small Gemma 3 model. There are no cloud keys or Python package dependencies for the app.
To run it on a Mac, install Ollama, then run:
git clone https://github.com/kvianAR/five-minute-field-notes.git
cd five-minute-field-notes
ollama pull gemma3:1b
python3 app.py
Open http://127.0.0.1:8765 in a browser. Downloading the model needs internet once; afterward, generation runs locally.
How I Built It
The browser sends four fixed choices to a Python server running on 127.0.0.1. The server asks local Ollama to run Google's open-weight Gemma 3 1B model. Gemma writes the three observation cues and reflection question as structured JSON. The server checks that the card is complete; the browser displays the text safely and offers a printable version.
AI is the core of this project: without Gemma's generated cues, there is no field card. The model combines the selected place, sense, and pace into a specific little activity. The interface then gets out of the way.
In a reproducible test on my Mac, the balcony / sounds / seated / five-minute selection returned a three-cue card from local Ollama. The code also checks for a valid card and rejects an incomplete response.
Why Does Open Innovation Matter?
I wanted an outdoor prompt that does not require giving a service my location or keeping a network connection open. Once I download the model, inference runs on my Mac, even without internet. I can inspect and change the prompt, swap the model in one environment variable, and run the app without a per-request fee. That makes this a small experiment that someone else can adapt for their own setting and language.
The tradeoff is clear too: a 1B model sometimes writes repetitive or awkward cues. The app validates structure, but it cannot verify that every suggestion fits a real place. People should use their judgment and stay in safe, accessible areas.
My Agent Session
I did not record or publish a DevRelay agent session, so there is no session link to embed. The build notes show the implementation and verification steps.
Prize Categories
Best Use of Gemma. The app runs Google's open-weight gemma3:1b locally through Ollama. Every field card depends on Gemma's generated cues and reflection question. I am not entering any other partner category because this project does not use those partners' technologies.
Top comments (1)
Chạy Gemma local trên thiết bị cầm tay để "đẩy" mình ra khỏi nhà là ý tưởng thú vị — biến mô hình từ passive assistant thành active nudge. Mấy bác đã thử quantize xuống 4-bit/3-bit để vừa VRAM/RAM điện thoại chưa? Trên iOS dùng MLX/llama.cpp thì inference ~15-20 tok/s trên M1/M2, đủ mượt cho card 5 phút. Android side-load llama.cpp qua Termux hoặc dùng MLC LLM cũng được, chỉ lo pin nóng.
Thách thức lớn nhất mình thấy là context window: card sinh gợi ý outdoor cần biết thời tiết, giờ mặt trời mọc/lặn, lịch cá nhân… nhét hết vào prompt thì context ăn nhanh. Giải pháp nhẹ là dùng function-calling (Gemma 2 đã support) gọi API thời tiết/calendar riêng, giữ system prompt gọn. Hoặc pre-compute "cơ hội ra ngoài" hằng sáng, chỉ feed summary vào model.
Còn UX: notification lúc 6h sáng "Trời nắng, có 45' free trước meeting 8h — đi một vòng?" hiệu quả hơn chat passive. Mấy bác có log adherence rate không? Tự đoán retention sẽ drop sau tuần 2 nếu không có variety (gợi ý route, challenge nhỏ, social accountability) (site: labagent .tech)