Inspiration

We started with a dream: finding an uncrowded spot at the Isar. Faced with insufficient data density along the river, we pivoted. We shifted our focus to visualizing Downtown Munich.

What it does

An interactive heatmap of Munich that helps users visualize predicted crowd density—showing exactly where the city is active (and where it isn't).

How we built it

  • Data: We orchestrated a pipeline fetching POIs via Google Maps API and busyness data via Serpapi, storing it all in SQLite.
  • Backend: Data is served by a Flask app, packaged in a CI Docker image, and deployed on a Hetzner server.
  • Frontend: A React interface utilizing Mapbox to render the map and a custom color-coded polygon layer. The polygons are calculated from points using turf's implementation of Inverse distance weighting and show a more realistic interpolation of a point's busyness.

Challenges we ran into

  • API Economics: We had to be stingy with Serpapi credits. We implemented a creative workaround using Google Maps as a pre-filter to minimize expensive calls.
  • Survival: Staying motivated (and coding) despite missing dinner.

Accomplishments that we're proud of

  • maintaining a frustration-free zone
  • first thing we did was acquiring the domain: link

What we learned

  • Coffee + Radler kommt gefährlich (Coffee + Radler hits different)

What's next for Wo wuselts?

  • investing in API credits and extending the analysis range
Share this project:

Updates