Turn an Image to Heightmap Geometry You Can Print

Brightness maps to height, so a greyscale image becomes printable relief geometry without any guessing.

Convert an image to STL

How Brightness Becomes Height

An image to heightmap conversion treats pixel brightness as elevation. White is the peak, black is the floor, and every grey value in between is a point on the slope. There is no model guessing at shapes and no inference step: the same input file always produces the same mesh. You get a surface, not a silhouette. That matters when you want a terrain tile, a stamping die, a texture plate, or a relief that matches a height map you drew in another program. The output is an STL file you can slice and print.

What this replaces: a sculpting session in Blender where you subdivide a plane, load a displacement map, tune the midlevel, and export. Or writing a small script that samples pixels and builds vertices by hand. Both work, and both assume you already have the greyscale source prepared. Doing it in the browser skips the setup. You upload the image, set the height range in millimetres, and download the STL. Files up to 20MB are accepted, in JPG, PNG, GIF, BMP, TIFF, WebP, SVG or HEIC.

Three Mechanisms Behind the Conversion

Three mechanisms decide what your finished STL looks like.

Brightness becomes elevation

Each pixel is read and weighted into a single luminance value between 0 and 255. That number is normalised to a fraction and used as the vertex height at that point on the grid. Bright pixels push up, dark pixels stay down, and mid greys become slopes.

You set the millimetre range

Base thickness is the solid floor your print sits on. Peak height is how far white rises above that floor. A 2mm base with a 4mm range produces a part 6mm tall at its highest point, and you can dial both values until the preview reads the way you want.

Triangles, and only triangles

Adjacent grid points are joined into two triangles per cell, building one continuous surface. STL stores geometry only: no colour, no texture, no material. If the finished piece needs colour, that comes from filament changes or paint after printing.

From Image File to Printable STL

From a saved image to a file your slicer will open.

  1. 1

    Prepare a clean greyscale source

    Open the image in any editor and convert it to 8-bit greyscale. Raise contrast until the tall regions and the flat regions are clearly separated. Crop borders, captions and watermarks, because every one of them becomes geometry.

  2. 2

    Set base thickness and peak height

    Type the base thickness and the peak height in millimetres. Check the preview, which shows the surface before export. A shallow range suits a coaster sized relief; a terrain tile usually wants more.

  3. 3

    Export, slice, print

    Download the STL and open it in your slicer. Confirm the base is thick enough to survive being prised off the plate, then slice between 0.12mm and 0.2mm layers. Print a small test first to check the range reads correctly.

Limits, Causes, and Fixes

Five limits come up repeatedly, and each one has a practical fix.

LimitWhy it happensWhat to do
Source file over 20MBThe browser has to hold the whole image in memoryResize to 2000px wide and re-save as PNG
Visible banding or terracingAn 8-bit file holds only 256 discrete height stepsAdd faint noise before converting, or accept terraces
Triangles multiply with resolutionA 1500 by 1500 pixel grid yields 4.5 million trianglesDownsample to 1000px or fewer before converting
Colour images convert unpredictablyLuminance weighting of red, green and blue mixes unevenlyConvert to greyscale first, then adjust contrast
Soft edges print almost flatShallow gradients fall below 0.2mm layer resolutionSharpen the source or raise the total height range

None of these are defects of the approach. They are the arithmetic of turning 256 brightness values into millimetres of plastic. Check the triangle count before you slice, and remember that every pixel you upload becomes geometry whether you meant it to or not.

Convert Your Greyscale Image to STL Now

You have the greyscale source and a height range in mind. Upload the image here, check the preview, and take the STL straight to your slicer. Free for a basic conversion, no account needed, and it runs in the browser on desktop or phone.

Frequently asked questions

No. Brightness is read directly and mapped to height, so a given image always produces the same mesh. Nothing is inferred, and a dark region cannot turn into a raised shape you did not draw. A tool that predicts depth from a photograph is a different technique with different failure modes.

Keep reading

The pages that answer the next question after this one.

From image to 3D print in seconds

Skip the complex modeling software. Upload your image now and get a print-ready STL file instantly.

Start Converting Free