PNG · JPG · WEBP → STL · FREE · NO UPLOAD
Image to STL — Photos to Printable Reliefs
Turn a PNG, JPG or WebP into a watertight STL relief or lithophane, tuned with live sliders — in the browser, your photos never leave your device.
What it does: turns a grayscale image into a 3D relief STL — black pixels become low, white pixels become high — closed as a watertight solid with a flat base and side walls.
Why you need it: photos become printable reliefs or lithophanes (backlit translucent prints) without uploading the image or opening CAD.
How it works: Canvas reads pixel luminance into a height map; three.js builds the mesh in this tab. Invert the mapping for lithophanes so dark pixels become thick.
Relief settings
The exported mesh is a closed solid: relief top, flat base and side walls — ready to slice.
Conversion specs
| Input format | PNG, JPG/JPEG, WebP (also BMP, GIF) |
| Output format | Binary STL — watertight solid, 50 bytes per triangle |
| Height mapping | Pixel luminance → surface height (black = low, white = high) |
| Lithophane mode | Mapping inverted so dark pixels become thick (default on) |
| Mesh construction | Displaced top grid + flat base + four walls, watertight by construction |
| Processing | 100% client-side via Canvas + three.js |
| File size limit | Device RAM only — no server limit |
| Cost | Free, unlimited, no account required |
Relief or lithophane — two ways to print a picture
| Relief (emboss) | Lithophane | |
|---|---|---|
| Mapping | Bright = raised | Dark = thick (inverted) |
| Material | Any filament | White / natural translucent |
| Viewed | By its shadows, front-lit | With light behind it |
| Typical relief height | 1-3 mm | 2.5-3.5 mm |
| Best sources | Logos, line art, maps | Portraits and photos |
The exported solid slices anywhere. Want to sanity-check it first? Run it through the STL checker or inspect it in the viewer.
FAQ
Is my photo uploaded to convert it?+
No. The image is read with the browser's own canvas API, turned into a height grid and meshed into an STL — all in this tab. There is no upload endpoint; personal photos never leave your device, which matters more here than for any other converter on this site.
How does an image become a 3D model?+
Each pixel's brightness becomes a height. The tool samples the image into a grid, displaces the top surface of a slab by brightness (or inverted brightness), and closes it with a flat base and side walls. The result is a watertight solid — a relief you can slice directly.
What is lithophane mode?+
A lithophane is printed in translucent material and viewed with light behind it: thicker areas block more light and read as dark. That means the mapping must be inverted — dark pixels become thick. Leave the checkbox on for lithophanes; turn it off for a normal embossed relief where bright areas stand up.
Which settings work for a printable lithophane?+
A common recipe: width 80-120 mm, relief height 2.5-3.5 mm, base 0.6-1 mm, printed in white PLA at 100% infill with the lithophane standing vertically. Higher detail values capture finer features but produce heavier files — 250-300 vertices per side is plenty for a photo.
Is the exported STL really watertight?+
Yes, by construction: the top relief, bottom plate and four walls share their edge vertices, so every edge belongs to exactly two triangles. You can verify any file yourself with the STL repair checker on this site — the generator and the checker agree.
Why does my relief look noisy?+
Photo noise and JPG compression artifacts become surface bumps. Fixes: use a higher-quality source, reduce the detail setting (fewer samples average more pixels), or pre-blur the photo slightly in any editor. High-contrast images with clean subjects produce the best reliefs.
Logos and lossless graphics convert more cleanly on the PNG to STL page; camera photos have a dedicated JPG to STL converter — same engine, format-specific defaults. After export, run the mesh through STL repair to confirm it is watertight, or reduce the STL if the relief is denser than your slicer needs.