Ӫ
੭ˊᵕˋ੭✰゚ the workshop ੭ˊᵕˋ੭✰゚
walkprints: turning my walks into a visual
i created a web app that turns my walks into generative art. each walk becomes its own piece, and one cumulative piece evolves as walks are added. here's the prompt that i gave to cursor!
(this project is a sponsored collaboration with cursor.)
I'm building a web app that turns my walks into generative art. Each walk becomes its own discrete piece, and there's also one cumulative piece that evolves with each new walk added. Inputs for each piece (per walk): - Route shape (path geometry from GPS coordinates) - Weather that day (temperature, conditions, precipitation) - Music I was listening to during the walk (matched to walk timestamps) - Distance walked Data sources: - Strava API for routes and walk history (last 6 months of walks). Decode polylines, compute bounds and centroid. - Last.fm API for listening history. Use user.getRecentTracks with from/to Unix timestamps matching each walk's window — this gives you full history, not just recent plays. - Spotify API (Client Credentials flow, app-only) for audio features (tempo, energy, valence). Search Spotify by track name + artist from Last.fm, then fetch audio features for the matched track IDs. - Open-Meteo Historical Weather API for historical weather per walk centroid. Free, no API key needed. Art requirements: - Code-based generative art using SVG or HTML canvas. No image generation APIs — the art must be generated algorithmically from the inputs. - Each input should meaningfully affect the visual. A rainy walk with slow music should look completely different from a sunny walk with fast music, even if the route is the same shape. - Handle partial music coverage gracefully — use neutral defaults when audio features can't be resolved, so route + weather still dominate and the piece never breaks. - Aesthetic: clean, minimal, gallery-poster style. Have free reign on the specific visual language. App structure: - Gallery view — grid showing all discrete walk pieces - Cumulative view — all walks composited into one growing piece (deterministic seed from ordered walk ids, uniform layer treatment so missing data doesn't create holes) - OAuth flow for Strava - Walk detail view — click a piece to see the inputs that produced it Stack: Next.js 14+ (App Router), TypeScript, Tailwind CSS, SQLite with Drizzle. Run locally. Build approach: Map out the architecture in plan mode first. Show the data model, file structure, and how the work splits across three parallel agents: - Agent 1 (Integrations): Strava OAuth + import, Last.fm history, Spotify audio features, Open-Meteo weather, data normalization - Agent 2 (Generative system): Art generation logic + cumulative piece logic with mixed-coverage rules - Agent 3 (UI): Gallery, cumulative view, detail view, OAuth UI, styling Start with the plan. I'll review before building.