DEV Community

Punith K
Punith K

Posted on AI-assisted

Foliage-walker: a trail planner that got me off the screen(and told me the truth about Bengaluru) published: true

Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass Submission 🌿

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass

What I Built

foliage-walker takes a place name and finds the nearby named trail with the most tree cover. It picks the best-weather day this week, works out when to leave so you finish before sunset, and writes a short invitation. It also exports a GPX file, so you can load the route into an offline map and put your phone away.
It's for walkers and runners who want to spend less time planning on a screen.
I live in Bengaluru, where there's no autumn colour, so the tool had to learn to say so. In places with autumn forest it ranks trails by broadleaf (deciduous) cover. Where it doesn't, it falls back to overall green cover and tells you why.

Demo

Terminal output from foliage-walker for Agara Lake, Bengaluru: a 3.1 km trail with 100% green cover, best day October 11, leave by 16:46, and a note that no autumn colour is expected near the tropics

Code

GitHub logo punithk-verse / foliage-walker

find the best fall-colour trail near you, pick the day, go outside. Open pieces: OpenStreetMap (Nominatim + Overpass), Open-Meteo, and a local open-weight LLM served by Ollama. No API keys, no accounts. Usage: python foliage_walker.py "Cubbon Park, Bengaluru" --radius 8 --min-km 2

foliage-walker

Give it a place. It finds the nearby named trail with the most tree cover, picks the best-weather day this week, works out when to leave before sunset, and has a local open-weight LLM write a short invitation. It exports a GPX file so you can load the route into an offline map and put your phone away.

Built for the Hacktoberfest Open-Source AI Challenge, Week 1: Touch Grass.

Open pieces

  • OpenStreetMap (Nominatim + Overpass): trails, woods and parks
  • Open-Meteo: elevation and 7-day forecast
  • Ollama + an open-weight model (tested with qwen2.5:1.5b): writes the invitation. No API keys or accounts.

Run it locally

ollama pull qwen2.5:1.5b
python foliage_walker.py "Agara Lake, Bengaluru" --radius 4 --min-km 1.5 --model qwen2.5:1.5b
Enter fullscreen mode Exit fullscreen mode

Python 3 standard library only. Outputs plan.md and route.gpx (open in Organic Maps or OsmAnd).

Run it on Google Colab

The author developed and tested it on a…

How I Built It

  • OpenStreetMap (Nominatim + Overpass): named trails plus mapped woods and parks. Each trail is scored by the share of its points inside green polygons (point-in-polygon).
  • Open-Meteo: elevation and the 7-day forecast, which is how it picks the day.
  • A local open-weight model (qwen2.5:1.5b via Ollama): writes the invitation. The code computes every fact (trail, day, leave-by time) and the model only gets those. This was deliberate. In my first version the model wrote the whole plan, invented details like "flat path", and repeated a nonsense colour-peak date as fact. I built and tested this on a free Google Colab runtime, because my laptop had under 600 MB of free RAM. The tool is designed to run locally on modest hardware: it needs only a small model (1.5B parameters worked), standard-library Python and Ollama. I did not run it on my laptop, so "runs on a small machine" is the design goal, not something I verified there. What I verified is the full pipeline on Colab, with the same open model and the same code you'd run at home I used an AI coding assistant to help write and debug the script. The open-weight model, open data sources and the design decisions (like giving the model only code-computed facts) are what the project runs on.

Why Does Open Innovation Matter?

  • Privacy: the model runs locally, so where you walk and when never goes to someone else's server.
  • Swappable: --model changes the model with one flag, so anyone with a bigger machine can use a bigger model.
  • Borrowable compute: when my laptop was too small, I ran the same open model on a free Colab machine with no API key or quota.
  • Open data was the point: the tool is only as good as OpenStreetMap tagging, and anyone can improve the map.
  • Free: no keys, no accounts, no bill.

Top comments (0)