As runners, we spend a ridiculous amount of time app-juggling. We check the weather app to see the temp, open Strava to look at a route, switch to another site to check our heatmaps, and maybe glance at a training plan to see what we’re actually supposed to be doing today. It sucks.
Also, knowing it’s 80 degrees out isn’t enough. Is it a dry 80, or is the dew point sitting at a swampy 72 degrees? Will I be baking on exposed asphalt, or running under tree cover? I talked previously about a smart fitness and weather tool, but I want even more.
I don’t want to rely on three different apps just to plan a Tuesday morning run. I want a single, smart tool that understands local conditions and my personal exploration goals.

LIZA
We need to build a lightweight, personal assistant app. I’m calling it L.I.Z.A.—the Localized Itinerary & Zonal Assistant. (Named after my mom, because you need someone looking out for you).
I want to look at the weather, where I haven’t run yet, and have a daily plan.
Personal Gamification via Hexagons
Running the exact same neighborhood loop every day leads to burnout. I want to incentivize myself to explore new streets and trails.

The H3 Hexagonal Index
Our database will use Uber’s open-source H3 spatial index. Hexagons mirror natural human movement, and look fun. By syncing my historical Strava data, LIZA will map out my personal “Fog of War.”
Exploration Routing
Using open-source routing software (like OSRM), LIZA can look at my current hex map and intentionally plot an 8-mile route that clips 3 or 4 “unvisited” hexes near me. It turns the daily slog into a personal completionist game without needing a massive multiplayer user base.
Actionable Environmental Rules
Most weather apps just dump data on you. I need an app that interprets the data and makes decisions for me based on simple, hardcoded runner logic.

The Dew Point Threshold
Dew point is the ultimate dictator of runner misery. LIZA will pull the morning forecast. If the dew point is projected to cross 68°F by 8:00 AM, the app will flag the morning as “High Risk” and automatically suggest a route that starts earlier.
Wind Logic
If there’s a sustained wind over 12mph, LIZA will attempt to generate an out-and-back or loop route that heads into the wind for the first half, ensuring I get a tailwind on the exhausted run back home.
The Drizzle vs. Downpour Dilemma
A “60% chance of rain” is useless context. Is it a refreshing mist or a biblical flood? LIZA will parse localized precipitation rates. If it’s a light drizzle on a warm day, she green-lights the run as nature’s air conditioning. If it’s a torrential downpour with lightning strikes, she tells me to stay in bed or hit the treadmill.
The AQI Veto
Running through wildfire smoke or thick city smog isn’t a badge of honor; it’s just bad for your lungs. If the Air Quality Index (AQI) creeps above a hazardous threshold (like 100+), LIZA acts as the voice of reason and will proactively suggest shifting my outdoor run to an indoor session or a rest day.
Black Ice Avoidance
In the winter, crossing the freezing mark overnight means yesterday’s puddle is today’s fractured tailbone. If temperatures drop below 32°F after a rainy day, LIZA will actively route me away from shaded, paved trails (where ice lingers longest) and prioritize treated roads or dirt paths with better traction.
The Shade Finder
Trying to calculate real-time 3D tree shadows based on the sun’s position is a nightmare.

OpenStreetMap (OSM) Metadata
Instead of calculating shadows, LIZA will use the metadata already present in OpenStreetMap. OSM users tag map areas with things like natural=wood, leisure=park, or even surface=dirt.
The Summer Routing Bias
During the summer months, LIZA’s routing algorithm will heavily weight paths that intersect with these “green” OSM polygons. It’s a highly efficient, lightweight way to guarantee a route passes through local parks, wooded trails, or greenways rather than baking on four-lane concrete highways.
Putting It All Together
From an architecture standpoint, this can all run on a simple Python backend with a PostgreSQL database to store my hexes. Every morning, a script will run and send me a simple push notification with a few options to download.

“Good morning! AQI is a crisp 42, but the dew point hits an ugly 72°F at 8:30 AM, so get out early. Here are two options for a ~9 mile run today:”
Option 1: The Wooded Out-and-Back
An 8.8-mile route plotted heavily through the local park system (OSM Wooded tags). You’ll be heading directly into the 12mph west wind on the way out, and it’ll push you home on the way back.Option 2: The Hex Hunter
A 9.2-mile loop routing you into the east subdivision. You’ll have less tree cover, but this route knocks out 6 unvisited H3 Hexes to expand your map.
Each option includes a simple GPX file link that I can tap and send straight to my watch.
By leveraging existing open-source map data, standard weather APIs, and simple logic rules, we can build a tool that actually respects the realities of local running. No more guessing, no more app fatigue. Just download the route, lace up, and go.

