Day 20: A visual catalogue of chart types by relationship (comparison, distribution, correlation, part-to-whole, flow). Form follows the question. #100DayMapChallenge.
Day 19: When Art Meets Code – Mondrian with Perl and CSS Grid
Day 19: Mondrian compositions from Perl and CSS Grid. No JavaScript, canvas, or SVG. Structure as the medium. #100DayMapChallenge.
Day 18: Clickable Bubbles – OpenStreetMap Nodes
Day 18: OSM nodes as clickable bubbles via Overpass and D3. Tags and community knowledge, not just geometry. #100DayMapChallenge.
Day 17: Every Map Lies About Scale
Day 17: Scale as perception. QGIS map sequence animated with Three.js shaders and GSAP, Stereo 70 on a fixed A4 frame. #100DayMapChallenge.
Day 16: Higher Bars Mean More People – Cities on a Globe
Day 16: First Three.js experiment: world cities as population bars on a globe. Extrusion turns density into landscape. #100DayMapChallenge.
Day 15: Mapping Access to Education – Sierra Leone Isochrones
Day 15: Sierra Leone school access with Mapbox isochrones at 15, 30, and 60 minutes walk. Client work for Fab Inc. #100DayMapChallenge.
Day 14: Ten Years Later, Same Place, Different Tools – Aiudului
Day 14: Aiudului Gorges from OpenLayers tiles (2011) to ProceduralGL WebGL terrain (2021). Same place, same question, new tools. #100DayMapChallenge.
Day 13: The Year I Launched MapTheClouds (2021)
Day 13: 2021, the year MapTheClouds launched. Challenges, brand, platform, and a public practice. #100DayMapChallenge.
Day 12: The Same World, Eight Different Shapes – Map Projections
Day 12: Same Natural Earth countries, eight projections, colors by 6-hour time zones. A map projection is always a decision. #100DayMapChallenge.
Day 11: When Geography Lies About Votes – Romania 2019 Cartograms
Day 11: Romania 2019 presidential votes as five cartogram types. Svelte + D3 dashboard where distortion becomes information. #100DayMapChallenge.









