I didn't show this before, did I?

These are mountain bike trails tagged with a mtb_scale (1= green, 2 = blue, 3= red, 4+ = black). The colors only displays when zooming in, so they do not disturb the general view of the map. There is an untagged piece of route in the middle, so the difference should be clear.

The oneway arrows are always displayed, though. The tiny path on a brighter green background is a technical practice pitch.

Image from outside Svendborg, Denmark.

#openStreetMap #maplibreGL #openFreeMap #openMapTiles

Another thing I have been working on with my vector map style is adding a lot of (informative) texture, in the form of fill-patterns. Graphics from the amazing #openStreetMap community of course, and mostly works fine in my context.

1. Wood, scrub, wetland and a small plant nursery field middle top, near Faaborg, Denmark. Oh, and not the "mountain" peaks - text only display ;)

2. Vineyards, orchards, wood, Pitesti, Romania.

3. Wetland, wood, Le Verdon Sur Mer, France (north of Bordeaux). As far as wetlands, the #openMapTiles schema fails to use the wetland=* tag to add a subclass, so there is only one of the patterns in use (so far? 😇) - wetmeadow, mangrove, marsh, reedbeed etc are all the same for now.

Due to the way #mapLibreGL renders the patterns - they are applied at whole zoom steps, then scaled, those meant for sand, scree and such does not make sense. But for the rest, I find this beautiful, and it does actually work quite smoothely!

Week 14 Reflection

A week moving between stylized cartography, local geography, cinematic WebGL experiments, and realtime seismic monitoring.

Hong Kong became crosshatched shader linework. Cluj turned into walkability and forest terrain studies. In The Clouds continued the supertall storytelling thread.

But Inner Fire ended up defining the week: a realtime seismic monitor .

Week 15 begins today.

#100DayMapChallenge #ThreeJS #WebGL #AI #DataVisualization #Geospatial #React #MapLibreGL

Day 96. Inner Fire 🔥

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.

Built with React 19, React Three Fiber, GLSL, MapLibre, and the live USGS earthquake feed.

It also became my first serious experiment using AI as a coding collaborator

#100DayMapChallenge #ThreeJS #WebGL #AI #DataVisualization #Geospatial #React #MapLibreGL

Day 91. Snow Dome Anywhere (3D + Particles) ❄️

This browser experiment keeps a dense 3D city readable, then layers winter atmosphere through particles and glow.

Inspiration: FOSS4G Bucharest 2019 - Iván Sánchez Ortega and Niene Boeijen.
BTW: FOSS4G Europe 2026 (Timișoara, 29 June - 3 July) - https://2026.europe.foss4g.org
Do not miss it - it might change your life.

https://maptheclouds.com/playground/buildings-experiments/snow/

#100DayMapChallenge Day 91/100
#ThreeJS #WebGL #MapboxGL #MaplibreGL #MapTiler #Geospatial #FOSS4G

Very prototypey MapLibre GL JS fork that renders the map in Swiss projection (LV95).

#projects #SwissGIS #MapLibreGL

https://labs.karavia.ch/maplibre-lv95/

MapLibre LV95

Render a MapLibre map in Swiss projection (LV95).

My favorite thing about vector tiles isn't how well they scale, or how clean the design can be regardless of the scale. Those are great features, but what I really love is this:

- Set up a map using #MaplibreGL;
- Add a vector tiles service, preferentially one that provides labels;
- Ctrl+click and drag to randomly change the map orientation;
- Patiently unravel your cartographic biases while staring at your unconventionally oriented map for several long minutes.

Day 69. Rainbow Cities 🌈

Height is straightforward to render in 3D, but not always easy to read quickly.

For this build, I map building elevation to a rainbow hue progression in GLSL, running in a Three.js + MapLibre GL JS setup.

The goal is legibility first: shorter buildings in warmer hues, taller ones in cooler tones, with smooth transitions so the city reads as structure instead of noise.

🔗https://maptheclouds.com/playground/buildings-experiments/rainbow/

#100DayMapChallenge Day 69/100

#ThreeJS #MapLibreGL #Animation

rainbow

3D Buildings Experiments in WebGL

Day 58. Furry Journey 🐾

Scroll-based route storytelling built from a simplified GeoJSON route, with staged progression tied to scroll.

Workflow: MapLibre GL for rendering, MapTiler style for terrain readability, and GraphScroll to synchronize text and camera state through the route.

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

#100DayMapChallenge Day 58/100
#MapLibreGL #MapTiler #Cartography #GPS #StoryMap

Zur Eröffnung der diesjährigen #FOSSGIS2026 hier ein Blogartikel, der eigentlich ein Beitrag werden sollte. Es geht um hypothetische Architektur mit offenen Geodaten und ihre Visualisierung mit #MapLibreGL.

https://christianmahnke.de/post/patching-osm-data/

Allen Teilnehmenden viel Spaß in Göttingen!

@FOSSGISeV

#Göttingen #FOSSGIS #ZHG #GöttingenCampus #openstreetmap #MapLibreGL