Interactive demo
Value Noise
Value noise is the simplest lattice noise: every grid point gets a random value, and the space in between is blended smoothly. It is fast and easy, but its grid shows through more than in Perlin noise.
Move the pointer over the image to move the cross-section to another grid row. With linear interpolation, the curve has a kink at every grid point.
Controls
Legend
- Grid point, filled with its random value
- Cross-section along a grid row
Noise types compared
| Noise | Output | Built from | Work per sample | Smooth |
|---|---|---|---|---|
| Value Noise this page | Scalar field | Random values on a grid | 4 grid points | Yes |
| Perlin Noise | 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. Random values
Every grid point gets a random number between −1 and 1 from a shuffled table. The same point always gets the same value, so the noise can be repeated exactly for a seed.
2. Blending
A point inside a cell blends the values of the cell's four corners, first along x, then along y. The weights come from a fade curve: linear blending leaves kinks at the grid lines, the cubic curve 3t² − 2t³ smooths them out.
3. Values or gradients?
The highs and lows of value noise always sit exactly on the grid points, so the grid can be seen as rows of blobs. Perlin noise puts zeros on the grid points and random slopes around them, which hides the grid much better.