Loading…
Loading…
Convert any image into a watertight STL model for 3D printing. Make a backlit lithophane, an embossed relief or a full cylinder lamp shade, set the exact millimetre size and thickness, tune the tones, and preview the result in 3D before you download.
Last updated 9 October 2026
Drag & drop files here, or
A photo, logo or greyscale heightmap — PNG, JPG or WebP
Any JPG, PNG or WebP. Portraits, logos, line art and greyscale heightmaps all work.
A backlit lithophane, or an embossed relief. Then choose a flat panel, a curved panel or a full cylinder.
Enter the real width in millimetres and the thinnest and thickest material. A live thickness map shows exactly what will be carved.
The mesh is generated in a background worker, shown in a 3D preview you can rotate, and saved as a binary STL.
The photo is reduced to a 400×500 grid of brightness samples, each averaged from a whole block of source pixels so no detail aliases away. Brightness is inverted — dark becomes thick — and mapped onto the 0.6 to 3 mm range. Those heights become the top surface; a flat back and four side walls close it into a solid, and the result is written as a binary STL.
A lithophane is a thin plate whose thickness varies with the image. Where the picture is dark the plate is thick and blocks light; where it is bright the plate is thin and lets light through. Under room lighting it looks like a plain grey slab — the image only appears once you put a light behind it. That surprises people the first time, so it is worth knowing before you judge the print.
The usual range is about 0.6 mm at the thinnest and 3 mm at the thickest. Go thinner than roughly 0.6 mm and most printers leave gaps; go much past 4 mm and almost no light gets through the dark areas, so the picture loses its highlights. Those are the defaults here, and they are a sensible starting point for white or natural PLA.
Contrast matters far more than resolution. A photo that looks good on a bright screen often prints muddy, because a screen can show pure black next to pure white while a lithophane only has a couple of millimetres of material to work with. Raising contrast and nudging gamma so the midtones separate usually does more for the result than doubling the triangle count.
Print at 100% infill. Any gap inside the plate scatters light and shows up as a blotch. Slice with a small layer height, and for a flat lithophane stand the plate upright in your slicer rather than printing it lying down — the layer lines then run across the image instead of along it, which hides them.
A lithophane looks like a plain grey slab until light passes through it, which makes it genuinely hard to judge from a normal 3D preview. The backlit preview here solves that by simulating transmission rather than guessing at it: light passing through material of thickness t leaves with intensity proportional to e^(−μt), the Beer–Lambert law, where μ depends on the filament.
That exponential is the reason lithophanes behave the way they do. Transmission falls away steeply, so the thin highlights separate quickly while the thick shadows all crush together towards black. It is also why a photo that looks punchy on a screen can print flat — a screen has far more range to work with than two or three millimetres of plastic. Switch filament and light colour in the preview to match what you will actually print with, then adjust contrast and gamma until the picture reads there.
Relief mode does the opposite of a lithophane: bright areas stand tallest and the whole thing sits on a solid base, so it reads in ordinary light with no backlighting at all. This is the mode for logos, nameplates, coins, moulds, stamps and signage.
It also handles greyscale heightmaps directly. If you have terrain data, a displacement map or a depth map exported from another tool, feed it in with smoothing at zero and the brightness values become height one-for-one.
A slicer needs a closed solid. If a model has a hole in its surface, or a face pointing the wrong way, the slicer cannot tell inside from outside and produces nonsense — often a print that looks fine for a few layers and then goes wrong. Many image-to-STL converters emit only the top surface, leaving you to repair it.
Every model here is generated as a complete solid: the displaced surface, a back or inner wall, and side walls joining them along shared edges. The build is checked automatically against the condition that proves it — in a closed, consistently wound mesh each directed edge appears exactly once, paired with its reverse on the neighbouring facet. That rules out both holes and flipped faces, so the file loads cleanly without a repair step.
STL is the standard file every 3D printing slicer reads. It describes a model as a mesh of triangles. The files here are binary STL, which is the compact form — about six times smaller than ASCII STL for the same model, and understood by Cura, PrusaSlicer, Bambu Studio, Orca and the rest.
Yes. The mesh is generated as a closed, watertight solid with every face pointing outward, and that property is verified automatically rather than assumed. You should not need Meshmixer, Netfabb or your slicer's repair step.
Because it is one until it is lit from behind. The image is stored as varying thickness, not as colour, so it only appears when light passes through. Hold it up to a window or put an LED panel behind it.
A 100 mm wide panel is the common choice for a framed photo and prints in a few hours. Bigger is not automatically better — the thickness range stays the same, so a very large lithophane has the same tonal depth spread over more area and can look washed out.
White or natural PLA is the standard. It diffuses light evenly and is cheap. Avoid dark or strongly coloured filament, and avoid anything with glitter or metallic flake, which blocks and scatters the light unevenly.
It works, but the result is usually better if you crop in tight or remove the background first. Every part of the image becomes material, so background clutter competes with your subject for a very limited thickness range.
A curved panel is an arc that stands up on its own, good for putting in front of a lamp. A full cylinder wraps the image the whole way round and joins at the seam, which is what you want for a lamp shade or a tealight shroud.
Yes. Choose relief mode and set smoothing to zero, and brightness maps straight to height — white is tallest, black is the base. That is the right setup for terrain data and depth maps.
Standard detail is right for almost everything. Detail finer than your nozzle can print is wasted — a 0.4 mm nozzle cannot reproduce features smaller than about 0.4 mm no matter how many triangles the file has. Ultra is only worth it with a 0.2 mm nozzle and a large model.
No. The image is read, the mesh is built and the file is written entirely in your browser, using a background Web Worker. Nothing is sent to a server and nothing is stored.
3MF if your slicer takes it, which all the modern ones do. It is a few times smaller because vertices are shared instead of repeated for every triangle, and it records that the model is in millimetres — STL carries no units at all, which is the usual cause of a model importing at the wrong scale. Choose STL when you need maximum compatibility, and OBJ for Blender and other 3D software.
It models absorption with the Beer–Lambert law and lets you pick the filament and light colour, so it is a good guide to tone and contrast. It does not simulate how light spreads sideways inside the plastic, so a real print looks very slightly softer than the preview — but if the picture reads in the preview, it will read when printed.
Yes. Add up to six images and they are wrapped side by side around the cylinder as one continuous model, not as separate panels. They are scaled to a common height so they line up.
It rotates the panel so it stands on its bottom edge, which is how a flat lithophane should be printed. The layer lines then run across the image rather than along it, which hides them and gives noticeably better detail. You can leave it off if you would rather orient the model yourself in the slicer.
They are cut-out silhouettes for the panel. The same mechanism also punches the hanging hole, and all of them are closed off properly with their own walls, so a heart-shaped lithophane with a hole in it is still a single watertight solid.