Convert JPG to STL

Turn a JPG of a drawing, a logo or an object on a plain background into a 3D-printable model. The background and JPEG specks are removed for you, and the model updates as you change the settings.

Runs locally — your files never leave your device

Drop a JPG hereRelease to open

or

PNG, JPG or SVG · one image at a time · nothing is uploaded

How it works

01

Drop your JPG

A photo of an object on a white sheet, a scanned drawing or a logo. It never leaves your device.

02

Clean up the outline

Check the 2D view: remove a background colour with a click, and drop stray parts with one button.

03

Download STL or 3MF

Set the width in mm and the height, add a base if you like, and download.

Settings explained

Mode

Extrude traces the outline of the shape, holes included, and lifts it to one height: logos, signs, silhouettes and anything else with clear edges. The outline is smoothed, but corners stay sharp.

Heightmap turns every pixel’s brightness into a height: white is highest, black lowest. Use it for terrain, textures, embossed patterns and photos you want as a relief. SVG files are always extruded.

The 2D view under the 3D preview shows what the mode reads from the image. In Extrude, what becomes solid is filled in, and the checkerboard shows what is cut away. In Heightmap, light is high and dark is low. Click a colour in the 2D view to remove it as background (see Background).

Width

The model is exactly this wide in millimetres, measured over everything: shape, base margin and keyring loop. The other direction follows the image’s proportions, so nothing is stretched. The size in the preview bar is the size your slicer shows.

Height

In Extrude, the shape is raised this many millimetres above the base (or above the print bed without a base). Two to four millimetres is plenty for most signs and logos.

In Heightmap, this is the difference between black and white: white ends this much higher than black. The minimum thickness comes on top, under the darkest point.

Threshold

Without transparency or a plain background colour, the shape is found by brightness. Auto (Otsu’s method) chooses the cut-off that best separates the dark and light parts of the image, and picks the side that does not touch the image border as the shape, so a light logo on a dark background works too.

Move the slider if thin lines disappear (raise it) or if shadows and noise join the shape (lower it). The setting is not used when the image has transparency or a plain background colour: those decide the shape instead.

Smoothing

Photos and JPEG files are noisy, and every speck becomes a bump in a heightmap. Smoothing averages each point with its neighbours (a Gaussian blur, measured in grid cells) before the heights are set. 1 removes noise and keeps edges crisp; 2–3 suit photos; 0 keeps the grid exactly as sampled.

Base

Off gives only the shape itself: letters and parts that do not touch become separate pieces on the print bed. Rectangle puts a plate under everything, with the margin you set. Outline follows the shape at the margin’s distance, like a sticker’s backing.

If the outline base would touch the shape somewhere (a very small margin around a detailed shape), a rectangle is used instead, and the editor says so.

Minimum thickness

A heightmap stands on a flat bottom. Its darkest point is this thick and everything else is thicker, so there are no holes where the image is black. One millimetre is enough for most prints; use more for large reliefs that must not bend.

Detail

Extrude traces the image at up to 512 px (Low), 1 024 px (Medium) or 2 048 px (High) on its longest side. Medium follows the edges of most logos to well under a tenth of a millimetre at 80 mm width; High is for large prints or fine detail.

Heightmap samples a grid of up to 150, 300 or 600 cells on the longest side, and every cell is two triangles. High can give over half a million triangles and a file of tens of megabytes; the preview bar shows the count and the file size before you download. For SVG, Detail sets how finely curves are divided.

Invert

In Extrude, the empty parts become solid and the shape becomes holes in a plate: a stencil, or a frame around a cut-out. It also helps when Auto picked the wrong side of the image. Turn on «Cut holes through base» as well if the holes should go all the way through a base.

In Heightmap, dark areas become high and light ones low: raised lines from a black drawing on white paper, or a stamp.

Background

Background is what gets cut away, not the colour of the model: STL files have no colour, and you choose the filament in your slicer. Transparent pixels are always background.

Auto uses the image’s transparency when it has any. Otherwise, if the border of the image is one plain colour (a logo on white), that colour is removed. If neither is the case, the shape is found by brightness (see Threshold).

Remove colour cuts away the colour you pick, everywhere in the image, on top of any transparency. It starts with the colour of the image’s corners. Pick another with the colour field (keyboard and screen readers work), type a hex value, or click the background in the 2D view; the checkerboard there shows what is removed. Tolerance sets how different a colour may be and still be removed: raise it for JPEG files with blotchy backgrounds.

Remove small parts

Photos and JPEG files often give specks besides the shape itself: dust, noise and blotches along the edges. With this on, every separate part with less area than the limit in the finished model is removed before the loop and base are added. The limit is in square millimetres, 1 mm² by default, about the smallest dot a printer makes cleanly: specks go, while the dot on an i (several mm² on an 80 mm sign) and other real details stay.

Since the limit is in millimetres, it follows the Width: make the model smaller and more small parts fall under it. Move the slider up to remove larger stray pieces too, such as a strip of the table edge; the last step keeps only the largest part, which is what «Keep only the largest part» under the preview does. Turn it off to keep everything that was traced. Only for images in Extrude: SVG files have no noise, and a heightmap has no parts.

Base thickness

The base plate’s thickness in millimetres. The shape stands on top of it, so the total height is base thickness plus height.

Base margin

The distance from the shape’s edge to the base’s edge, in millimetres. It counts towards the width: a wider margin makes the shape itself a little smaller.

Cut holes through base

By default the base is one solid plate, for both Rectangle and Outline: the middle of an O, the counters of B, 8 and A and every other hole in the shape are closed by the base, so the shape stands on a continuous back that is easy to print and glue or hang.

Turn this on for stencils and other pieces you want to see through: every hole in the shape then goes through the base, with straight walls from top to bottom. Only holes narrower than about 1 mm stay closed, since they would not print open; the editor says how many. Parts inside a hole (the middle of an inverted O) have no base under them then, and print as separate pieces.

The keyring loop’s hole always goes through, whatever this setting is.

Keyring loop

A ring is added outside the shape at the position you choose, overlapping it so the two print as one piece. If the shape is wide at that side, the ring sits in the middle; otherwise at the outermost point. The ring’s wall is half the hole’s diameter, and at least 3 mm, so it holds a key ring. Only in Extrude.

The hole always goes through the whole model, base included. With a base, the base follows the ring at the base margin: a rectangle base gets a round tab, so the loop sticks out from the plate’s edge.

Mirror

Mirrors the model left to right. Use it for stamps, for pieces glued behind glass, and for anything that is read from the other side.

File format

Choose STL or 3MF beside the download button. Binary STL is read by every slicer and is 50 bytes per triangle. 3MF is compressed (usually a fifth of the binary STL) and states that the units are millimetres, so the size is never misread; PrusaSlicer, Bambu Studio, Orca and Cura all open it.

ASCII STL, under Advanced, is the same model as text, about four times larger, for tools that need it.

Extrude vs Heightmap

Like the other image pages, this tool is best at logos, drawings and silhouettes. With a JPG that usually means a scanned drawing or an object photographed on a plain background. Extrude separates the object from the background and lifts its outline to one height: the silhouette of a tool for a drawer insert, a child’s drawing as a fridge magnet, a logo from an old flyer.

Heightmap reads the brightness of every pixel instead. Use it for greyscale art, textures and terrain maps saved as JPG; Smoothing evens out JPEG blocks so they do not print as bumps. A colour photo of a scene gives a relief of its shading, not of its depth.

The keyring example imageThe keyring as a 3D model made with Extrude
Extrude · 50 × 25.5 × 4.5 mm · 1 600 triangles · 78 KB
The terrain example imageThe terrain as a 3D model made with Heightmap
Heightmap · 100 × 100 × 11.7 mm · 180 004 triangles · 8.6 MB
Extrude vs Heightmap
PropertyExtrudeHeightmap
ReadsWhich pixels are shape and which are backgroundThe brightness of every pixel
GivesThe outline lifted to one height, on a base if you wantA relief: light areas high, dark areas low
Best forLogos, signs, line drawings, silhouettes, keyringsTerrain, textures, embossed patterns, greyscale art
HolesKept (the middle of an O), optionally through the baseOnly where the background is removed
Keyring loopYesNo
SVG filesYes, straight from the pathsNo: SVG has no brightness to read
Example at MediumKeyring: 1 600 trianglesTerrain: 180 004 triangles

FAQ

How should I photograph an object to get a clean outline?

Put it on a plain, even background with strong contrast, such as a white sheet of paper under a dark tool. Use soft, even light so there are no hard shadows, shoot straight from above, and let the object fill most of the picture. A busy background (a patterned table, other things in the frame) gives stray parts and a ragged outline.

Why does my model have specks and extra parts?

JPEG compression adds blotches around edges, and photos pick up shadows, dust and the edge of the table. Remove small parts (on by default, under Advanced) drops every piece under 1 mm² in the finished model, too small to print anyway; raise the limit with its slider. If a larger stray piece is left, «Keep only the largest part» in the hint removes everything but the object.

The background is not removed. What can I do?

Background Auto removes a plain colour around the border. If your background is not plain enough, choose Remove colour under Advanced and click the background in the 2D view; the checkerboard shows what is cut away. Raise Tolerance if parts of a blotchy background remain, lower it if the object starts to disappear.

Can I make a 3D relief from a photo?

Heightmap turns brightness into height, so you get a relief where light areas are high and dark ones low. It works well for greyscale drawings, textures and terrain maps. A photo of a face or a landscape has no real depth in it, so the relief follows the shading, not the shape: hair and shadows become low, highlights high.

My iPhone photo is a HEIC file. Can I use it?

Usually yes. When you choose a photo on an iPhone, iOS hands the browser a JPG. Safari on a Mac can read HEIC itself; in other browsers, export the photo as JPG first (Photos: File → Export). Photos up to 48 megapixels open on an iPhone.

Why does this page start with different settings?

JPG files are mostly photos, so Tolerance starts at 40 %, for backgrounds that are not one exact colour. Everything else is as on the other pages, and you can change it all.

Can I get a 3MF file instead of STL?

Yes. Choose 3MF beside the download button and the button changes to «Download 3MF». 3MF is compressed, usually about a fifth of the binary STL, and records that the units are millimetres, so the slicer never misreads the size. PrusaSlicer, Bambu Studio, OrcaSlicer and Cura open it. ASCII STL is under Advanced, for tools that need text.

Is my image uploaded?

No. The image is read and turned into a model by your browser, on your device. Open the developer tools, go to the Network tab and convert an image: no request carries it. Once the page has loaded, it works without an internet connection.

Other image conversions