GenerateRandomSearch

Terrain Heightmap Generator

Random numbers on a grid look like static. What makes a height field look like land is interpolation — a coarse lattice of random values, smoothly blended, with finer layers added on top at half the amplitude each time. The water line then turns one field into many different maps: raise it and you get islands, lower it and you get a continent. The smoothness is measured, not assumed, because a field of independent random values would fail the same check.

What this generator does

Builds a lattice of random values at several frequencies, interpolates each smoothly, and sums them with halving amplitude. Everything below the water line is drawn as sea and everything above is banded by height, with the land share reported.

How to use this tool

  1. Choose the grid resolution and how many octaves of detail to add.
  2. Set the water line, which decides how much of the map is land.
  3. Generate, and move the water line to see the coastline change.
  4. Seed a map you want to come back to.

Understanding the controls

Resolution
Grid cells across, from 12 to 64. Higher resolution samples the same underlying field more finely rather than adding detail.
Octaves
How many layers of detail, each twice the frequency and half the amplitude of the last. One octave is smooth hills; five is rugged.
Water level (%)
The height below which everything is sea. This is what turns one field into an archipelago or a continent.
Seed
Reproduces exactly the same terrain, which is the only way to come back to a map you liked.

Common use cases

  • Procedural map backdrops for a game or a story
  • Showing what octaves actually add to a noise field
  • Height data for a terrain or contour exercise
  • Illustrating why interpolation, not randomness, makes noise look natural
  • Reproducing the same world from a seed

How this generator works

This is value noise rather than Perlin noise: the random values sit at the lattice points themselves, not gradients, and are blended with smoothstep so the gradient is zero at each lattice point and the seams do not show. The check confirms every value is in range and that neighbouring samples never jump further than the lattice spacing allows — the property that distinguishes interpolated noise from independent random numbers.

Randomness and fairness

The lattice values are random; the interpolation and the summing are not. Seeded terrain reproduces exactly and is therefore explicitly not cryptographically secure. Without a seed the browser's cryptographically secure generator fills the lattice.

For how randomness is produced across the whole site, see how Generate Random works.

Limitations and good to know

  • This is value noise, not Perlin or simplex noise — those interpolate gradients rather than values and look subtly different.
  • There is no erosion, river carving or climate model; the bands are pure height.
  • The map does not tile, so its edges will not join up with a copy of itself.
  • Resolution stops at 64 cells across, which is a map rather than a detailed landscape.
  • Terrain is not stored between visits; seed a map you want back.

Privacy and your data

The height field is generated in your browser. Nothing about the map or your seed is transmitted or kept.