The problem
Mumbai commuters lose hours to traffic: a 1-hour trip becomes 3. Telling tired people to "go touch grass" after that doesn't work, since nobody wants a detour. So I built something that fits green time into the commute they already have.
What I built
Green Stop takes where you are and how many minutes you can spare. It finds a green spot you can walk to and back in that time and gives you:
- the spot's name and full address
- walking time and total time needed
- live temperature and AQI
- a Google Maps walking-directions link
- a short friendly note from a local LLM, in English, Hindi or Marathi
The screen is used for about 30 seconds. The rest is a walk.
Demo
Code: https://github.com/heyujjwal/green-stop
How it works
Place you type
→ OpenStreetMap geocoding
→ my hand-picked CSV spots + OpenStreetMap parks/gardens/beaches
→ distance math (walk there + 5 min + back)
→ Python builds the facts card
→ Gemma 3 4B via Ollama writes a 2-sentence note
→ Gradio UI
A key design choice: Python finds the facts and the LLM only adds a human note. Small models invent places if asked to recall them. Here the model is never trusted with facts, so every address, distance and time comes from data.
Stack: Ollama + gemma3:4b (open weights), OpenStreetMap (Nominatim + Overpass), Open-Meteo, Gradio, Python.
Why open mattered
- Privacy: your daily commute route is sensitive. The model runs on my laptop and the app has no accounts, no tracking and no cloud LLM. The place cache stays local.
- Works with a bad signal: the model, matching logic and cached results run without internet. Only first-time lookups and Google Maps navigation need a connection.
- Free: no API keys and no per-call cost. OpenStreetMap and Open-Meteo are open data.
-
Swappable: I changed models by editing one line in
config.py - Local knowledge: open map data plus my own CSV means I can add small gardens and shaded lanes that big map apps miss.
Taking it outside
I tested Green Stop on my own commute from [10th Oct]. Here is a real run:
Input: Marine Lines Station, Mumbai, [50] minutes, English
What the app returned:
- Spot: Marine Drive Promenade (seafront)
- Walk: about 3 min each way (0.3 km)
- Total time needed: about 11 min (there, 5 min break, back)
- Backup options: SK Patil Garden (7 min), Navi Wadi Garden (8 min)
- Directions: a Google Maps walking link opened straight from the result
- Note from the local model: a short, friendly line suggesting I sit on the sea wall and breathe
| Day | Starting point | Minutes spared | Spot suggested | Did I go? | Mood before → after |
|---|---|---|---|---|---|
| 1 | Marine Lines Station | [11 min] | Marine Drive Promenade (3 min walk) | [Yes/No] | [e.g. tired → calmer] |
What worked
- The spot was only a 3-minute walk from the station, so it cost almost no extra time. That is the whole idea: green time inside the commute I already had.
- The Google Maps link opened walking directions in one tap.
- The result was specific (spot, distance, total time) rather than vague advice.
What went wrong
- The address was not precise. OpenStreetMap's reverse lookup returned "Mumbai Coastal Road - Phase I, Navjeevan Wadi, Kalbadevi..." instead of "Marine Drive". The pin sits on the promenade edge, so the lookup picked a nearby road. Fix: I can type verified addresses into my CSV, which the app uses first.
- Live weather and AQI showed "unknown (offline)"
- The model's caution line was generic. Because conditions were unknown, it still added "if AQI is above 150 or raining..." That is noise, not information. Fix: only ask for a caution when real data exists.
Honest limitations
- The model runs on my laptop, so the app only works while the laptop is on. A home mini PC or a phone-native build is the next step.
- Park pins point to the middle of the park, not the gate.
- OpenStreetMap data is uneven, so I curate my own spots for places I actually use.
- Walk times are estimates (straight-line distance × 1.3 at 5 km/h), not live routing.
What's next
Phone-native version with an on-device model, automatic gate/entrance detection, shade and crowd info, and more cities.

Top comments (0)