playing with GLSL shaders in the browser
Exploring generative visuals by writing fragment shaders from scratch and rendering them in real-time with WebGL.
Why shaders?
Shaders are the closest thing to painting with math. A fragment shader runs once per pixel, every frame — giving you direct control over color and light at the most fundamental level. The constraints force creative thinking.
Setting up a minimal pipeline
No frameworks, no abstractions — just a canvas, a WebGL context, and a GLSL program. The boilerplate is surprisingly small: a fullscreen quad and a fragment shader is enough to create infinite visual complexity.
Experiments with noise and distance fields
Perlin noise, Voronoi cells, signed distance functions — these building blocks combine into organic, endlessly evolving patterns. Each tweak to a parameter produces something unexpected.