How It Works
Invented by Ken Perlin in 1983 for the movie Tron, Perlin noise generates smooth pseudorandom values by interpolating between gradient vectors placed on a regular grid. Each grid point is assigned a random gradient, and the noise value at any point is computed by blending contributions from surrounding grid corners.
Spatial Coherence
Unlike white noise, Perlin noise has spatial coherence — nearby points produce similar values. This property makes it ideal for simulating natural phenomena: clouds, terrain height maps, marble textures, and organic flow fields.
// Perlin noise pseudocode
for each point (x, y):
x0, y0 = floor(x), floor(y)
g00, g10, g01, g11 = gradients at corners
d00 = dot(g00, (x-x0, y-y0))
d10 = dot(g10, (x-x0-1, y-y0))
// ... blend with fade curve
return lerp(fade(x-x0), lerp(...), lerp(...))Fractal Brownian Motion
In algorithmic art, Perlin noise serves as a foundational building block. Multiple octaves can be layered — each at double the frequency and half the amplitude — a technique called fractal Brownian motion (fBm). This creates rich, detailed textures with structure at every scale, from rolling hills to fine surface grain.
