Day 40. Corgi routes 🐶

What if GPS routes could be visualized with animation and terrain like Relive?

Interactive route visualizer built with MapLibre GL and D3.js. Drag-and-drop GPX → animated playback over terrain, with an elevation chart synced to the map.

Click the chart to jump anywhere along the route. Both views stay aligned.

Still experimental, but shows what’s possible when flexible route data meets modern mapping tools.

#100DayMapChallenge Day 40/100

#MapLibreGL #D3js #GPX #OSM

Day 39. Education inequality at global scale 🌍

How do you compare gender disparities across education worldwide?

Interactive animated choropleth showing the Gender Parity Index across five levels (primary to tertiary), built with Leaflet.js and D3.js. Client project.

Key challenge: consistent color scale across all levels, solved with Jenks Natural Breaks on the combined dataset.

Insight: as girls progress through education, the gender gap often widens.

#100DayMapChallenge #Leaflet #D3js

Day 37. Populated places by size and rank 🌐

How visualize global settlement patterns without political boundaries dictating story?

Circle size = population, brightness = rank. Removes borders. Settlement structure visible on own terms.

D3.js canvas rendering handles thousands of points. City selection uses quadtree spatial index.

Data: Natural Earth. Quadtree inspired by Alain Roan (Observable).

https://maptheclouds.com/playground/30-day-map-challenge/points/

#100DayMapChallenge #D3js

Day 36. When data visualization meets music history 🎶

This project maps 50 of the most valuable vinyl records using a Voronoi-style visualization where each region represents a record.

The Beatles dominate the list, including Yesterday and Today ($234k) and the famous White Album ($790k).

Built with D3.js, the visualization turns record prices and cultural impact into a spatial landscape of music history.

https://maptheclouds.com/playground/30-day-chart-challenge/comparisons/experimental/

#100DayMapChallenge #D3js #DataViz

Week 5

Five weeks into the challenge, and the rhythm is starting to feel more like exploration than discipline.

Seven projects this week: networks, terrain, seasonal patterns, and timelines.

Highlight: Day 32, a D3.js force-directed chart for the San Francisco District Attorney’s Office, built with Anna Tong, mapping 350+ people using physics-based positioning.

35 days down, 65 remaining.

#100DayMapChallenge #DataVisualization #D3js

Day 34. Historical timelines as a comparison tool 📊

When events unfold at different speeds, how do you compare them without distorting their duration?

This visualization shows the global race for COVID-19 vaccination (April 25, 2021). Each bar represents the share of the population with at least one dose, with colors indicating world regions. Data from ourworldindata and naturalearthdata.

Inspired by Mike Bostock’s Bar Chart Race.

https://maptheclouds.com/playground/30-day-chart-challenge/comparisons/historical/

#100DayMapChallenge #D3js #DataViz

Day 32. Organizational structure as living network 💼

How visualize 300+ person organization when static hierarchies fail?

Interactive force-directed chart for SF District Attorney's Office. My first significant freelancing project, worked with Anna Tong on 350+ people representation.

Each node = department/role/staff. The main challenge was integrating images and text inside the circular DOM nodes while keeping everything readable.

#100DayMapChallenge #D3js #ClientWork

Week 4. Days 22-28 🎯

Two phases: COVID finale (22-25), Exploratory (26-28)

Not all maps-intentional. Campaign ≠ 100 maps. It's about experiments that shaped how I think about spatial data, even when form moves beyond conventional cartographic layout.

Many D3 projects shaped by community: Bostock, Wu, Bremer.
Around same period, began thinking seriously about WebGL. Performance became design question.

Method over topic. Technique follows question.

#100DayMapChallenge #DataViz #D3js

Day 28. EU bilateral migration flows 2020 🌍

Chord diagram showing movement within European Union.

Poland + Italy = major sources. Germany + France = destinations. But every country participates both directions. Bidirectional, asymmetric.

European mobility ≠ simple east-to-west. Dense web of exchanges shaped by opportunity, economics, language, history.

Week 4 complete. Week 5 tomorrow.

https://maptheclouds.com/playground/30-day-chart-challenge/relationships/multivariate/

#100DayMapChallenge #DataViz #D3js

Day 27. First star map experiment 🌌

Simple globe built from HYG star database. Each point = star, sized by brightness. Limited to magnitude < 8 for legibility.

D3 handled data processing + coordinate transformation. Versor managed rotation.

First attempts at spatial viz beyond geography. Not continents, but constellations. Question: how represent distance in light-years?

Sometimes early constraints become foundations for deeper work.

#100DayMapChallenge #DataViz #D3js