3D Terrain

Heightmap generator from real terrain

3D Terrain exports a 16-bit heightmap PNG, a GeoTIFF DEM (EPSG:4326), a DEM package with world file and PRJ, STL/OBJ/GLB models and a matching surface texture. This guide covers the game-engine side and the GIS-ready formats.

Last updated: 3 November 2026 · 3D Terrain

Heightmap generator for Unity, Unreal and Blender

Pick any place on Earth, then export a 16-bit grayscale heightmap PNG of the actual elevation grid — the format Unity terrain, Unreal landscapes, Godot heightmap plugins and Blender displacement expect. A matching surface texture PNG is exported alongside it, so the colour map lines up exactly with the height data.

What you get

The Export panel has a direct Heightmap option: a raw 16-bit grayscale PNG of the elevation grid (real metres, black = lowest, white = highest) plus a matching surface texture. The DEM package adds a .pgw world file and .prj (WGS84) for GIS software, and the GeoTIFF DEM export writes a georeferenced 16-bit TIFF directly. The STL/OBJ/GLB exports are the same surface as a printable solid.

The modelled grid tightens as the selection shrinks — a whole country comes out coarse, a single valley comes out fine. Draw a box anywhere, or import a GeoJSON polygon for an exact area, then export the STL for that shape.

In each tool

How it works

  1. Choose the area — any country, state or county, a box drawn anywhere on Earth, or an imported GeoJSON polygon.
  2. Note the elevation range in the legend; you will need it to scale the map in the engine.
  3. Open the Export panel and save the STL.
  4. In Blender: import the STL, add an orthographic camera looking straight down, and bake the geometry to a 16-bit image (or use the engine's own terrain-from-mesh tool).

Open the app and export an STL

Questions

What bit depth is the heightmap?
16-bit grayscale PNG — 65,535 steps between the region's lowest and highest elevation, far beyond what an 8-bit image can resolve.
How do I restore real elevations?
Linearly: black maps to the lowest metre and white to the highest, and both values are printed in the app's legend. From there, height = min + pixel fraction × (max − min).
Is it the same data as the 3D model?
Yes — the exact grid the model, the rendered PNG and the STL export are built from, so assets made from the heightmap register perfectly with them.
Can I clip it to a custom shape?
Yes. Import GeoJSON area draws the selection from a polygon, and every export — heightmap included — follows it.
Can I use it in a commercial project?
Yes. The elevation data is open; keep the credit line that ships with the exports, as you would for course materials, editorial work or a shipped game's documentation.
Do I need an account?
No. There is no account, no trial and no paid tier — every region and export format, for everyone.
What is the best heightmap generator for Unity?
For real-world places, this tool exports a 16-bit PNG heightmap plus texture directly from global DEM data. For procedural terrain use a noise-based generator; for real terrain the data source matters more than the exporter.
Can I get a 16-bit PNG heightmap?
Yes — Heightmap export in the Export panel writes a 16-bit grayscale PNG with the real elevation values, not an 8-bit approximation.
How do I make a heightmap from an STL?
Import the STL into Blender, view it from directly above with an orthographic camera and bake the geometry to a 16-bit image. The direct heightmap export is faster because it comes from the same elevation grid.
What resolution should a heightmap be?
Match the terrain size: a 1–2 km patch at 1 m per pixel is 1024–2048 px. This tool exports the native grid for the selected area; zoom in for finer grids.
Can I use the heightmap in Unreal Engine?
Yes — Unreal landscape heightmaps use 16-bit grayscale PNG or RAW. Import the PNG; the legend gives the metre range for scaling the Z axis.