Skip to content
3DToolBench

Turn an image into an STL

Drop in a picture and watch it become a model. Brightness becomes height, or the shape in the picture is traced and cut out — you choose, and the 3D view rebuilds as you change anything. PNG and JPEG both work, and neither leaves your computer.

The picture is decoded and turned into a model by your own browser. It is never uploaded, and nothing is fetched once the page has loaded.

The honest limit, first

A picture does not contain the shape of the thing in it. It contains how bright each point was. No tool can recover the first from the second, because the information was never recorded — a photograph of a statue and a photograph of a painting of that statue are the same kind of file.

What can be done, and what this page does, is treat brightness as height. That produces a relief: a surface that stands up where the picture was light and sits low where it was dark. On the right picture it looks convincingly like the subject. On the wrong one it looks like a map of the lighting, because that is exactly what it is.

So this is the tool for a plaque, a relief, a nameplate, a lithophane, a logo cut out flat, or a signature raised off a surface. It is not a tool for getting a printable model of an object you photographed, and anything that claims to be is either guessing or using a dozen photographs and a different technique entirely.

Four things a picture can become

**A raised surface.** Bright stands up, dark sits low, on a solid base. This is the default and it is what a photograph, a face or a landscape wants.

**A lithophane.** The same surface, thin and turned the other way round, so that light behind it comes through the thin parts and is stopped by the thick ones. The numbers are completely different — tenths of a millimetre rather than millimetres — so it has a page of its own.

**A cut-out.** The dark part of the picture traced as an outline and given a thickness. This is what a logo, a letter, a silhouette or a stencil needs, and it gives a clean vertical edge that prints without supports.

**A flat plane carrying the picture.** Two triangles with the image on them as a texture. Useless in an STL, which cannot hold an image, and exactly right in a GLB going into a web viewer or a game.

Why the preview updates as you type

A picture holds no geometry at all. Every triangle in the result is decided by the settings, which makes those settings the model rather than adjustments to it — and a setting that *is* the model is one you cannot judge from a number.

So every change rebuilds the surface and puts it back in the viewport, with the triangle count and the measurements beside it. Change the height and watch the relief deepen. Drag the threshold on a logo and watch the outline tighten around it. Most converters make you download a file to find out what you asked for; here the answer is on screen before you press anything.

The measurements are the part worth watching. The volume figure only exists for a closed shape, so a number in it is your proof that what you are about to download will slice as a solid rather than being rejected as a surface with holes.

Big pictures, and the reason they are reduced

A photograph from a phone is around 4000 pixels by 3000. One triangle per pixel would be about 48 million triangles: several gigabytes of memory, far past what a browser tab is allowed, and a file no slicer would open. So the picture is sampled down to the grid the detail setting asks for, and you are told when that happens.

The reduction averages pixels rather than dropping them, in steps, so detail turns into smoothness instead of turning into speckle. That matters: a heightmap made from a badly reduced photo has real bumps in it that you can feel on the printed part.

The detail setting is also the only thing that decides the file size. 200 samples across is roughly 120 000 triangles; 400 is roughly 480 000. For printing there is a floor anyway — a 0.4 mm nozzle cannot make a feature finer than about 0.2 mm, so on a 100 mm plaque there is nothing to gain above about 500.

Which pictures work

For a raised surface: one clear subject, plenty of contrast, and a background darker than the subject rather than brighter. A bright sky behind a person comes out taller than the person and buries them. Crop tightly before you start.

For a cut-out: a PNG with a transparent background is ideal, because the file states exactly where the shape ends. Black on white is nearly as good. A photograph is not, because a threshold has to cut one hard line through soft shading and there is no right place to put it.

A JPEG carries the block edges of its own compression, which become faint square steps in a printed surface. One step of smoothing removes them. A PNG is lossless and usually needs none.

The next question

Questions

Can I convert a photo into a 3D model of what it shows?
No. A photograph records brightness, not distance, so the shape is not in the file for anything to recover. What you get is a relief whose height follows the brightness. That looks like the subject when the lighting and the shape agree, and does not when they do not.
Which formats can I drop in?
PNG and JPEG. Use PNG for logos, screenshots, drawings and anything with transparency or hard edges, and JPEG for photographs.
What can I get out?
STL by default, and the box under the 3D view offers everything else the engine writes — 3MF if your slicer prefers it and records units, OBJ or GLB for a modelling program, USDZ for an iPhone.
Why is there a base thickness, and can I set it to zero?
You can, and you should not. The darkest pixel is a height of zero, so with no base the surface is a sheet with holes torn through it wherever the picture was dark. One millimetre is enough to print and cheap in plastic.
How do I make a logo into a flat shape?
Choose "the shape in it, cut out". If the logo has a transparent background the outline is exact; if it is on white, move the darkness setting until the outline in the 3D view is right. Then set the thickness — 3 mm makes a keyring.
Is my picture uploaded?
No. It is decoded and converted inside your browser, on your own machine. There is no upload, no account, and no size limit beyond what your computer can hold.

Convert it while you are here

Where to go next