This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
What I Built
A short walk sounds simple until you start deciding when to leave, how much sun you want, and whether there is somewhere to sit along the way.
I built ShadeWindow, a local-AI walking planner around one question: When should I leave, and which walk will keep me in the shade?
The idea is to make planning a small part of the experience. Describe your walk, compare a few options, save one card, and put the screen away.
The experience has three steps:
Plan. Choose a duration, departure window, pace, and preferences for shade, benches, and rain. You can also describe these to a local model.
Compare. Explore three routes, their departure times, moving shadows, and score breakdowns.
Save & go. Save a walk card in the browser, reopen it later, or print it.
The moving-shade map is the central idea: a route that looks appealing now may have a different shade pattern by the time you reach its later segments.
Code
ShadeWindow on GitHub
Application code is MIT licensed; SunCalc and model weights have their own licenses.
How I Built It
Moving shade from solar geometry
The interface uses plain HTML, CSS, and JavaScript, with a small Node.js server. SunCalc supplies solar altitude and azimuth.
For each sampled route point, the planner checks whether a ray toward the sun intersects a synthetic building. Tree canopies are approximated as opaque disks projected onto the ground. Unknown building heights remain uncertain.
The calculation uses the time the walker reaches each part of the route. Benches are checked for shade at arrival, too.
Local AI with a bounded job
The tested model is Llama 3.1 8B through Ollama. The app can be configured for an installed Gemma model, but the recorded verification uses Llama.
The model handles two tasks:
Written request
→ validated preferences
→ calculated feasible routes and departures
→ model selects an existing candidate
→ checked walk card
Why Does Open Innovation Matter?
Walking preferences can reveal parts of a person's routine. Local inference lets the default setup process those preferences on the user's machine without a paid cloud inference API.
The prompts, validation rules, fixtures, and calculations are inspectable. A different compatible local model can be configured while the geometry and scoring rules stay reproducible.
That separation makes the prototype easier to question and improve. Someone can change the shade approximation, review a score formula, or test another model without treating the recommendation as a black box.
Open weights still come with model-specific licenses, and local inference still uses computing resources. Those boundaries belong alongside the benefits.
Top comments (0)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.