DEV Community

Cover image for Green Stop: a Mumbai commute reset that runs on a local open-weight model
Ujjwal Gupta
Ujjwal Gupta

Posted on AI-assisted

Green Stop: a Mumbai commute reset that runs on a local open-weight model

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.

Result description

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
Enter fullscreen mode Exit fullscreen mode

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)