Gravity Hill, Pittsburgh. Optical illusion: downhill appears uphill.
MapLibre GL map + video demo + rolling marker animation.
Spatial perception = data + context + wonder.
Hundreds worldwide.
maptheclouds.com/playground/3...
#100DayMapChallenge #MapLibreGL
Gravity Hill, Pittsburgh. Optical illusion: downhill appears uphill.
MapLibre GL map + video demo + rolling marker animation.
Spatial perception = data + context + wonder.
Hundreds worldwide.
maptheclouds.com/playground/3...
#100DayMapChallenge #MapLibreGL
Cluj settlement via World Settlement Footprint 2019. Copernicus Sentinel 10m data, ESA/DLR/GEE.
Local question + global open dataset = independent satellite analysis.
maptheclouds.com/playground/30-day-map-challenge/urbanrural/
#100DayMapChallenge
Cluj settlement via World Settlement Footprint 2019. Copernicus Sentinel 10m data, ESA/DLR/GEE.
Local question + global open dataset = independent satellite analysis.
maptheclouds.com/playground/30-day-map-challenge/urbanrural/
#100DayMapChallenge
2011 climbing map → 2022 Antarctica clouds.
Visually different. Philosophically connected: spatial data → understandable viz.
Tools evolved massively. Question stayed: terrain feel real online?
Week 2: interactive viz begins ⚡
#100DayMapChallenge Days 1-7/100
2011 climbing map → 2022 Antarctica clouds.
Visually different. Philosophically connected: spatial data → understandable viz.
Tools evolved massively. Question stayed: terrain feel real online?
Week 2: interactive viz begins ⚡
#100DayMapChallenge Days 1-7/100
172M points documenting volcanic morphology. PDAL + Entwine + Potree.
Spatial data is never static. Terrain evolves. Understanding landscape that may change without warning.
Context isn't recreation—it's hazard awareness.
Week 1 done ✓ → D3.js next.
#100DayMapChallenge
172M points documenting volcanic morphology. PDAL + Entwine + Potree.
Spatial data is never static. Terrain evolves. Understanding landscape that may change without warning.
Context isn't recreation—it's hazard awareness.
Week 1 done ✓ → D3.js next.
#100DayMapChallenge
200m elevation data rendered as fluffy clouds in Three.js
QGIS → Three.js fly navigation + transparent texture = cloud-like appearance
Sometimes looking at data in an unfamiliar way reveals patterns you wouldn't notice otherwise.
#100DayMapChallenge
200m elevation data rendered as fluffy clouds in Three.js
QGIS → Three.js fly navigation + transparent texture = cloud-like appearance
Sometimes looking at data in an unfamiliar way reveals patterns you wouldn't notice otherwise.
#100DayMapChallenge
NYU captured Dublin LiDAR. I processed 500M+ points using PDAL years later.
NYC captures. Romania processes. Anyone explores.
Geography is local. Tools are global.
#100DayMapChallenge #LiDAR #OpenData
NYU captured Dublin LiDAR. I processed 500M+ points using PDAL years later.
NYC captures. Romania processes. Anyone explores.
Geography is local. Tools are global.
#100DayMapChallenge #LiDAR #OpenData
1M acres burned, Bolivia-Paraguay-Brazil
Landsat 8 dNBR analysis: 988K acres total, 638K acres continuous scar = 491K football fields
ArcGIS + Python, 4 severity classes
Not every map needs beauty. Some need accuracy + speed.
#100DayMapChallenge #GIS #Landsat8
1M acres burned, Bolivia-Paraguay-Brazil
Landsat 8 dNBR analysis: 988K acres total, 638K acres continuous scar = 491K football fields
ArcGIS + Python, 4 severity classes
Not every map needs beauty. Some need accuracy + speed.
#100DayMapChallenge #GIS #Landsat8
FOSS4G 2019: PDAL/Entwine demo. Hooked.
Filter early → lose detail Filter late → noise corrupts
570M points, 19h processing Open-source, documented
Tutorial = order Scale = patience
#100DayMapChallenge #PDAL #LiDAR
FOSS4G 2019: PDAL/Entwine demo. Hooked.
Filter early → lose detail Filter late → noise corrupts
570M points, 19h processing Open-source, documented
Tutorial = order Scale = patience
#100DayMapChallenge #PDAL #LiDAR
Yosemite. LiDAR 0.5m. Walls >75°. Flow algorithms estimated heights.
Yellow to red: 45°/100m → 75°/900m.
Challenge: LiDAR can't see overhangs.
Some questions need both data and dirt. 🏔️
#100DayMapChallenge #LiDAR
Yosemite. LiDAR 0.5m. Walls >75°. Flow algorithms estimated heights.
Yellow to red: 45°/100m → 75°/900m.
Challenge: LiDAR can't see overhangs.
Some questions need both data and dirt. 🏔️
#100DayMapChallenge #LiDAR
Aiudului Gorges, 2011. I digitized contour lines by hand and built my first web map using GDAL2Tiles, MapTiler, and OpenLayers.
Before WebGL was mainstream.
Still asking the same question: how do we make terrain feel real online? ⛰️
#100DayMapChallenge #GIS #OpenLayers
Aiudului Gorges, 2011. I digitized contour lines by hand and built my first web map using GDAL2Tiles, MapTiler, and OpenLayers.
Before WebGL was mainstream.
Still asking the same question: how do we make terrain feel real online? ⛰️
#100DayMapChallenge #GIS #OpenLayers
10+ years: LiDAR → GIS → WebGL → storytelling
Something's shifting. Drawing me toward immersive work.
Feb 9: #100DayMapChallenge
100 days. GIS → interactive 3D viz.
From static maps to immersive environments.
From QGIS to WebGL. 🗺️
#WebMapping #MapTheClouds
10+ years: LiDAR → GIS → WebGL → storytelling
Something's shifting. Drawing me toward immersive work.
Feb 9: #100DayMapChallenge
100 days. GIS → interactive 3D viz.
From static maps to immersive environments.
From QGIS to WebGL. 🗺️
#WebMapping #MapTheClouds