Day 54: Dots – Procedural Globe Halftone

Day 54: Earth as a GLSL dot field. ~100k points, ripples, arcs. Three.js. #100DayMapChallenge.
Day 54: Procedural dots globe with GLSL shading - #100DayMapChallenge

Day 54. Dots ⚫⚪

Sometimes a globe doesn’t need extra geometry to feel new, just a different logic for how pixels become structure.

For Day 54, I built an animated Earth where custom GLSL shading transforms a standard texture into a dynamic dot field. Continents remain recognizable, but their surface shifts into a pulsing halftone-like language.

The idea was to keep cartographic context while adding a procedural layer in the fragment shader. Around 100,000 points are distributed across the sphere and masked by a land texture, turning the surface into a structured pattern instead of a flat fill.

Ripple markers and curved arcs connect random points over time, turning the globe into a small generative system.

The main challenge was controlling visual noise and avoiding Moiré artifacts. Smoothstep anti-aliasing and scale layering keep the pattern stable across rotation and zoom.

Inspired by experiments on the Three.js forum, this sits between map rendering and generative design, showing how geographic data can stay accurate while the visual language becomes more experimental.

Live demo: Dots

The project

PieceRole
StackThree.js + WebGL + custom fragment shaders
Density~100,000 points masked by land texture
MotionRipple markers + curved arcs over time
ChallengeNoise control and Moiré via smoothstep AA

How to follow

#100DayMapChallenge · Day 54/100 · LinkedIn

Previous: Day 53: AsgardMap

Next: Day 55: Biker Santa

Leave a Reply

Your email address will not be published. Required fields are marked *