3D Heightmap & Terrain Generator

Sculpt procedural terrain from noise and explore it as a real 3D mesh — with a moving sun, shadows and water. Export a 16-bit RAW heightmap straight into Unity Terrain, a PNG, or the mesh as OBJ. Edges tile seamlessly, so neighbouring terrains line up.

◧ Tileable edges …
Terrain
257 × 257
3
6
0.50
Seed 0
Shape
22%
1.60
0%
0%
Look
28%
78%
Sun
35°
140°
100%

Unity: Terrain → Terrain Settings → Import Raw… · Depth Bit 16 · Byte Order Windows · Resolution 257. If it looks mirrored, tick Flip Vertically.

✓ Your download has started

Enjoying this free tool?

It's free, has no ads, and runs entirely in your browser. If it saved you some time, a coffee helps keep these tools free and funds the next ones.

How to generate a terrain heightmap

  1. Pick a noise method: Perlin and Simplex give natural hills and mountains, Value gives softer rolling land and Voronoi gives basins and ridges. Randomize noise shuffles everything for quick ideas.
  2. Choose the resolution: 129, 257, 513 or 1025 samples per side, the exact sizes Unity Terrain expects.
  3. Shape the land: Scale sets how big the landforms are, Octaves and Roughness add rocky detail, Height curve flattens valleys and sharpens peaks, and Smoothstep creates plateaus.
  4. Make an island with Smooth border: the heights fade smoothly to zero at the edges.
  5. Explore it in 3D: drag to orbit, scroll to zoom, and move the sun, water level and snow line to judge the shape. These look settings only affect the preview.
  6. Export a Unity RAW (16-bit) heightmap, an 8-bit PNG, or the mesh as OBJ.

Import the heightmap into Unity Terrain

  1. Create a terrain: GameObject → 3D Object → Terrain.
  2. Open the Terrain Settings tab (gear icon) and click Import Raw… under Texture Resolutions.
  3. Pick the exported .raw file and set Depth: Bit 16, Byte Order: Windows and Resolution to the size you exported (for example 513).
  4. Set Terrain Size: X and Z are the width and length in meters, Y is the maximum height. The exported heights span the full 0 → Y range.
  5. If the terrain comes in mirrored, import again with Flip Vertically ticked.

Unreal Engine: rename the file from .raw to .r16 (same 16-bit little-endian format) and import it as a Landscape heightmap. Blender and other 3D tools: use the OBJ export, which includes normals and UVs.

Frequently asked questions

Should I export RAW or PNG?

Use RAW for game terrain. It stores 16-bit heights (65,536 levels), so slopes stay smooth. An 8-bit PNG only has 256 levels and shows visible terracing on large terrains, but it is handy for previews and other tools.

Why 513 instead of 512?

Unity heightmaps store one sample per grid corner, so their sizes are a power of two plus one (129, 257, 513, 1025). The exported files already use these sizes.

How do I make an island?

Raise Smooth border. It fades the heights smoothly to zero near the edges, so the terrain always ends below the water line.

Can I tile several terrains next to each other?

Yes. With Smooth border at 0% the noise is periodic, so opposite edges match exactly and copies of the terrain line up without seams.

Are the water and snow included in the export?

No. Water, snow, colors and the sun are preview-only, to help you judge the shape. The RAW and PNG files contain the heights, and the OBJ contains the mesh.

Is anything uploaded?

No. The terrain is generated and rendered on your own graphics card in the browser. Nothing is sent to a server and there is no sign-up.