100 consecutive days of building in public: GIS, 3D maps, WebGL, client work, experiments, shaders, and spatial storytelling.
maptheclouds.com/100-day-map-challenge/stats/
Big thanks! 🚀
#100DayMapChallenge #GIS #WebGL #ThreeJS #3DMaps
100 consecutive days of building in public: GIS, 3D maps, WebGL, client work, experiments, shaders, and spatial storytelling.
maptheclouds.com/100-day-map-challenge/stats/
Big thanks! 🚀
#100DayMapChallenge #GIS #WebGL #ThreeJS #3DMaps
Browser scene for Artemis II: orbital trajectory readable in motion, scroll narrative, Moon/Earth/Orion camera locks, atmosphere for dark-space legibility. React, Three.js, R3F, Drei.
100 days complete. The work continues. 🚀
#100DayMapChallenge #3DMaps #Artemis #Geospatial
Browser scene for Artemis II: orbital trajectory readable in motion, scroll narrative, Moon/Earth/Orion camera locks, atmosphere for dark-space legibility. React, Three.js, R3F, Drei.
100 days complete. The work continues. 🚀
#100DayMapChallenge #3DMaps #Artemis #Geospatial
Open-source pushed me into programming and browser-native maps. 🎮
Next chapter: projects that help people. Mountains and shared time offline still matter. ⛰️
Seven platforms daily - exhausting.Thank you for following along. ❤️
#100DayMapChallenge #Maps #OpenSource
Open-source pushed me into programming and browser-native maps. 🎮
Next chapter: projects that help people. Mountains and shared time offline still matter. ⛰️
Seven platforms daily - exhausting.Thank you for following along. ❤️
#100DayMapChallenge #Maps #OpenSource
Not every post was a map. 99/100 days, toolchain from QGIS to React 19 with AI in Cursor. Discipline beats inspiration, shipping beats perfecting, AI in the workflow not at the wheel.
Day 100 arrives tomorrow.
#100DayMapChallenge #3DMaps #Animation #Geospatial
Not every post was a map. 99/100 days, toolchain from QGIS to React 19 with AI in Cursor. Discipline beats inspiration, shipping beats perfecting, AI in the workflow not at the wheel.
Day 100 arrives tomorrow.
#100DayMapChallenge #3DMaps #Animation #Geospatial
Hong Kong shaders, Cluj walks, LEGO towers, balloons, Blender Earth (offline globe behind several later web projects, Inner Fire included). Inner Fire: my first AI-assisted build with ChatGPT, Gemini, Claude. Week 15 begins today.
#100DayMapChallenge #ThreeJS #Maps #AI
Hong Kong shaders, Cluj walks, LEGO towers, balloons, Blender Earth (offline globe behind several later web projects, Inner Fire included). Inner Fire: my first AI-assisted build with ChatGPT, Gemini, Claude. Week 15 begins today.
#100DayMapChallenge #ThreeJS #Maps #AI
Sometimes the most useful maps work is careful modeling, materials, and light, not another live dataset. The question that followed was simple: what if it were interactive, not static?
maptheclouds.com/playground/d...
#100DayMapChallenge Day 98/100
#Blender #3DMaps
Sometimes the most useful maps work is careful modeling, materials, and light, not another live dataset. The question that followed was simple: what if it were interactive, not static?
maptheclouds.com/playground/d...
#100DayMapChallenge Day 98/100
#Blender #3DMaps
Late-campaign, I wanted something lighter: Hot air balloon glTF over a dense 3D city in Mapbox GL JS, rendered with a custom Three.js layer on the same WebGL canvas.
maptheclouds.com/playground/b...
#100DayMapChallenge Day 97/100
#ThreeJS #WebGL #MapboxGL
Late-campaign, I wanted something lighter: Hot air balloon glTF over a dense 3D city in Mapbox GL JS, rendered with a custom Three.js layer on the same WebGL canvas.
maptheclouds.com/playground/b...
#100DayMapChallenge Day 97/100
#ThreeJS #WebGL #MapboxGL
Inner Fire is my current attempt at treating global seismic activity less like static map data and more like a living planetary pulse unfolding through time.
maptheclouds.com/inner-fire/
#100DayMapChallenge #ThreeJS #WebGL #AI #DataVisualization #Geospatial #React #MapLibre
Inner Fire is my current attempt at treating global seismic activity less like static map data and more like a living planetary pulse unfolding through time.
maptheclouds.com/inner-fire/
#100DayMapChallenge #ThreeJS #WebGL #AI #DataVisualization #Geospatial #React #MapLibre
Supertall architecture reimagined as stacked, brick-like landmarks on an interactive map.
MapLibre GL JS, custom Three.js/WebGL rendering, GSAP transitions, and CSV/GeoJSON-driven comparisons.
#100DayMapChallenge Day 96/100
🔗 maptheclouds.com/intheclouds/
Supertall architecture reimagined as stacked, brick-like landmarks on an interactive map.
MapLibre GL JS, custom Three.js/WebGL rendering, GSAP transitions, and CSV/GeoJSON-driven comparisons.
#100DayMapChallenge Day 96/100
🔗 maptheclouds.com/intheclouds/
Sometimes the most satisfying maps are the closest to home.
QGIS preprocessing + Three.js/WebGL rendering, with swipe interaction to build relief as you explore.
maptheclouds.com/playground/3...
#100DayMapChallenge Day 94/100 #ThreeJS #WebGL #3DMaps
Sometimes the most satisfying maps are the closest to home.
QGIS preprocessing + Three.js/WebGL rendering, with swipe interaction to build relief as you explore.
maptheclouds.com/playground/3...
#100DayMapChallenge Day 94/100 #ThreeJS #WebGL #3DMaps
Cluj-centered map with right-click generated 5/10/15/20/25/30-minute walking isochrones.
Built in a lightweight Three.js/WebGL setup, with Openrouteservice + Stamen/OSM context.
maptheclouds.com/playground/3...
#100DayMapChallenge Day 93/100
#Leaflet
Cluj-centered map with right-click generated 5/10/15/20/25/30-minute walking isochrones.
Built in a lightweight Three.js/WebGL setup, with Openrouteservice + Stamen/OSM context.
maptheclouds.com/playground/3...
#100DayMapChallenge Day 93/100
#Leaflet
Sometimes the right move is not more data, but a different way of seeing it.
Hong Kong through pen-and-ink logic: Tangram JS (WebGL) + Leaflet, shader crosshatching.
maptheclouds.com/playground/3...
#100DayMapChallenge Day 92/100 #TangramJS #Geospatial #3DMaps
Sometimes the right move is not more data, but a different way of seeing it.
Hong Kong through pen-and-ink logic: Tangram JS (WebGL) + Leaflet, shader crosshatching.
maptheclouds.com/playground/3...
#100DayMapChallenge Day 92/100 #TangramJS #Geospatial #3DMaps
Week 14 starts today.
#100DayMapChallenge #Geospatial #GIS #3DMaps #OpenSource
Week 14 starts today.
#100DayMapChallenge #Geospatial #GIS #3DMaps #OpenSource
Dense 3D city view, shifted into a quiet snow-dome version.
Inspired by FOSS4G Bucharest 2019. FOSS4G Europe 2026 is coming: 2026.europe.foss4g.org
maptheclouds.com/playground/b...
#100DayMapChallenge Day 91/100 #ThreeJS #MapboxGL #MaplibreGL#FOSS4G
Dense 3D city view, shifted into a quiet snow-dome version.
Inspired by FOSS4G Bucharest 2019. FOSS4G Europe 2026 is coming: 2026.europe.foss4g.org
maptheclouds.com/playground/b...
#100DayMapChallenge Day 91/100 #ThreeJS #MapboxGL #MaplibreGL#FOSS4G
MapLibre over lower Manhattan keeps the OSM extrusions, but they are redrawn in custom WebGL where SunCalc steers the light and dawn or dusk swaps the MapTiler day or dark basemap.
maptheclouds.com/playground/b...
#100DayMapChallenge 90/100
#MapLibre #Geospatial #3DMaps
MapLibre over lower Manhattan keeps the OSM extrusions, but they are redrawn in custom WebGL where SunCalc steers the light and dawn or dusk swaps the MapTiler day or dark basemap.
maptheclouds.com/playground/b...
#100DayMapChallenge 90/100
#MapLibre #Geospatial #3DMaps
Earthquake data treated as visual signal, not just dataset.
Built in the context of the Feb 2023 Turkey/Syria earthquakes, this piece maps the USGS all-month feed on a 3D globe using Three.js/WebGL shaders.
#100DayMapChallenge Day 89/100 #ThreeJS #WebGL #Geospatial
Earthquake data treated as visual signal, not just dataset.
Built in the context of the Feb 2023 Turkey/Syria earthquakes, this piece maps the USGS all-month feed on a 3D globe using Three.js/WebGL shaders.
#100DayMapChallenge Day 89/100 #ThreeJS #WebGL #Geospatial
A 9-month client delivery focused on reliable geospatial product engineering: Vue/Nuxt + React map workflows, open-source-first stack with MapLibre + PMTiles + OSM/Nextzen tiles via Cloudflare, GraphQL/PostgreSQL.
#100DayMapChallenge Day 88/100
A 9-month client delivery focused on reliable geospatial product engineering: Vue/Nuxt + React map workflows, open-source-first stack with MapLibre + PMTiles + OSM/Nextzen tiles via Cloudflare, GraphQL/PostgreSQL.
#100DayMapChallenge Day 88/100
A globe that shifts from pure geography to atmosphere.
A 3D portal inside a glass-like sphere, map textures crossfading, and animated shader fireflies in Three.js/WebGL. Inspired by Three.js Journey.
#100DayMapChallenge Day 87/100
🔗 maptheclouds.com/playground/3...
A globe that shifts from pure geography to atmosphere.
A 3D portal inside a glass-like sphere, map textures crossfading, and animated shader fireflies in Three.js/WebGL. Inspired by Three.js Journey.
#100DayMapChallenge Day 87/100
🔗 maptheclouds.com/playground/3...
Some briefs are simple and honest: show the main streets of a city in a way people instantly recognise.
OSM road geometry prepared in QGIS, transformed into a luminous 3D network in Three.js.
maptheclouds.com/playground/t...
#100DayMapChallenge Day 86/100
#ThreeJS #QGIS
Some briefs are simple and honest: show the main streets of a city in a way people instantly recognise.
OSM road geometry prepared in QGIS, transformed into a luminous 3D network in Three.js.
maptheclouds.com/playground/t...
#100DayMapChallenge Day 86/100
#ThreeJS #QGIS
This build turns NYC buildings into an audio-reactive map experiment.
Mapbox provides the building layer, then a custom Three.js/WebGL path pushes motion from AudioAnalyser frequency data into shader parameters.
#100DayMapChallenge Day 85/100
This build turns NYC buildings into an audio-reactive map experiment.
Mapbox provides the building layer, then a custom Three.js/WebGL path pushes motion from AudioAnalyser frequency data into shader parameters.
#100DayMapChallenge Day 85/100
Seven projects, from atmospheric WebGL and reef 3D systems to playful city and planetary experiments, then OSM buildings with a lightweight D3 setup.
Not every day is a classic map, and that is intentional.
#100DayMapChallenge #Geospatial #GIS #3D #Maps
Seven projects, from atmospheric WebGL and reef 3D systems to playful city and planetary experiments, then OSM buildings with a lightweight D3 setup.
Not every day is a classic map, and that is intentional.
#100DayMapChallenge #Geospatial #GIS #3D #Maps
Built as a lightweight open-data pipeline: D3 for tile logic, OSM Buildings for geometry + heights, and MapLibre for real-time 3D fill-extrusion rendering.
Click to rebuild around a new location, or search via Nominatim.
#100DayMapChallenge Day 84/100
Built as a lightweight open-data pipeline: D3 for tile logic, OSM Buildings for geometry + heights, and MapLibre for real-time 3D fill-extrusion rendering.
Click to rebuild around a new location, or search via Nominatim.
#100DayMapChallenge Day 84/100
Not every 3D experiment needs to be serious.
This one takes a familiar planet setup and pushes it into absurd territory: cheese-textured Earth, stylised moon, star-map background.
Silly by concept, careful in execution.
#100DayMapChallenge Day 83/100
Not every 3D experiment needs to be serious.
This one takes a familiar planet setup and pushes it into absurd territory: cheese-textured Earth, stylised moon, star-map background.
Silly by concept, careful in execution.
#100DayMapChallenge Day 83/100
A playful building visual built with MapLibre + custom Three.js/WebGL rendering.
The colour logic lives in GLSL.
Urban data, toy-like perception.
Foundation step for In The Clouds and its 40m stacked-block system.
#100DayMapChallenge Day 82/100
A playful building visual built with MapLibre + custom Three.js/WebGL rendering.
The colour logic lives in GLSL.
Urban data, toy-like perception.
Foundation step for In The Clouds and its 40m stacked-block system.
#100DayMapChallenge Day 82/100
Long-form client project: from reef survey CSVs + bathymetry model to a deployed 3D spatial interface.
QGIS, MapLibre, Three.js, and 3D Tiles → height tiles + pmtiles pivot, with end-to-end delivery from data prep to hosting.
#100DayMapChallenge Day 81/100
Long-form client project: from reef survey CSVs + bathymetry model to a deployed 3D spatial interface.
QGIS, MapLibre, Three.js, and 3D Tiles → height tiles + pmtiles pivot, with end-to-end delivery from data prep to hosting.
#100DayMapChallenge Day 81/100