Interactive demo
Perlin Noise
Perlin noise, invented by Ken Perlin in 1983, creates smooth and natural-looking randomness. It is the basis of countless procedural textures, clouds and landscapes.
The arrows are the random gradients at the grid points. Switch the interpolation to Linear to see why the fade curve matters.
Controls
Legend
- Grid point and its gradient
Noise types compared
| Noise | Output | Built from | Work per sample | Smooth |
|---|---|---|---|---|
| Value Noise | Scalar field | Random values on a grid | 4 grid points | Yes |
| Perlin Noise this page | Scalar field | Random gradients on a grid | 4 grid points | Yes |
| Simplex Noise | Scalar field | Gradients on a triangle grid | 3 corners | Yes |
| Worley Noise | Scalar field | Random feature points | 9 to 25 cells | No |
| Blue Noise | Point set | Random candidates around existing points | Up to 30 tries per point | – |
| Fractal Noise | Scalar field | Octaves of a base noise | 1 base noise per octave | Yes |
| Diamond-Square | Heightmap | Displaced midpoints of a grid | 4 neighbors per point | No |
| Colors of Noise | Signal or image | White noise filtered by frequency | 1 FFT for all samples | – |
| Domain Warping | Scalar field | Fractal noise at warped positions | Up to 5 fractal noises | Yes |
| Curl Noise | Vector field | Derivatives of a noise field | 4 noise samples | Yes |
| Noise Terrain Generator | Heightmap | Stacked noise layers | Layers × octaves | – |
1. A grid of gradients
Every grid point gets a random unit vector, its gradient. The noise is exactly 0 at every grid point; around it, the noise rises in the direction the gradient points to.
2. Dot products
For a point inside a cell, the vectors from the four corners to the point are multiplied with the gradients of the corners (dot product). This gives one value per corner.
3. Smooth blending
The four values are blended with the fade curve 6t⁵ − 15t⁴ + 10t³. Its first and second derivatives are zero at the cell edges, so no creases appear. With linear blending the grid shows clearly.