# JPG to STL Converter > To convert a JPG to STL, turn the photo's brightness into height or thickness and close it into a solid 3D mesh. Kenerate's free converter does it in your browser: choose a relief or a lithophane, set the width in millimetres, smooth out JPEG compression blocks, and download a watertight STL or 3MF. URL: https://kenerateai.com/jpg-to-stl Publisher: Kenerate AI (https://kenerateai.com) Last updated: 2026-10-01 ## Key facts - Price: Free, no account - Input: JPG / JPEG (plus PNG, WebP), up to 40 MB - Modes: Relief · Lithophane · Extrude shape - Processing: Smoothing 0–4 evens out 8×8 JPEG blocks · resampled to up to 640 points per side - Output: STL, 3MF, OBJ, GLB in millimetres - Privacy: Processed in your browser — no upload - Smoothing for JPEG noise: JPEG compresses in 8×8 pixel blocks. In a relief those blocks become little terraces — a smoothing pass removes them without losing the picture. - Lithophanes from phone photos: Portraits and landscapes read best as lithophanes; the tool shows a backlit preview. - Big photos, sensible files: A 12-megapixel photo has far more pixels than a printer can draw. It's resampled to your detail setting, keeping the STL a manageable size. - Cut-outs without transparency: JPEGs can't be transparent, so logo shapes are separated by a brightness threshold. - Decode: The JPEG is decoded and resampled to the print grid. - Smooth: An optional blur evens out compression blocks and sensor noise. - Map: Brightness becomes height (relief) or thickness (lithophane). - Close and export: A base and walls make it watertight; download STL or 3MF. - STL (Stereolithography): Triangle mesh (binary or ASCII); by 3D Systems, 1987. Holds: Triangle surfaces, Facet normals. Lacks: Colour and textures, Units, Materials. Best for: 3D printing — every slicer opens it. Opens in: Cura, PrusaSlicer, Bambu Studio, OrcaSlicer, Blender. - 3MF (3D Manufacturing Format): ZIP package with XML; by 3MF Consortium, 2015. Holds: Meshes with units (millimetres), Colours and materials, Several objects and build plates. Lacks: Animation. Best for: Modern 3D printing and multi-colour prints. Opens in: Bambu Studio, PrusaSlicer, OrcaSlicer, Cura, Windows 3D Builder. ## Steps 1. Add a photo — Drop a .jpg or .jpeg onto the box above, or try a sample. 2. Pick relief or lithophane — Relief for raised pictures; lithophane for photos viewed against light. 3. Size and smooth — Set the width in mm and raise smoothing if the surface looks noisy. 4. Download — Download STL or 3MF and print. ## In depth ### JPEG blocks become terrain JPEG stores images as compressed 8×8 pixel blocks. Invisible on screen, those small steps in brightness become visible steps in height once a relief is printed. A light blur before mapping fixes most of it. ### Photos make better lithophanes than reliefs A relief reads brightness as shape, so a photo's lighting and shadows turn into strange bumps. A lithophane uses the same brightness as light and shadow, which is what a photo actually is — so portraits and landscapes almost always look better as lithophanes. ### Keep it printable Fine detail below about 0.45 mm can't print with a 0.4 mm nozzle [11]. At 100 mm wide, a 0.2–0.3 mm grid already exceeds what most FDM printers resolve. References: [1] Wikipedia — STL (file format): https://en.wikipedia.org/wiki/STL_(file_format) [2] Wikipedia — Wavefront .obj file: https://en.wikipedia.org/wiki/Wavefront_.obj_file [3] Wikipedia — FBX: https://en.wikipedia.org/wiki/FBX [4] Khronos Group — glTF: https://www.khronos.org/gltf/ [5] 3MF Consortium — 3MF specification: https://3mf.io/specification/ [6] Wikipedia — Universal Scene Description (USD / USDZ): https://en.wikipedia.org/wiki/Universal_Scene_Description [7] Wikipedia — PLY (file format): https://en.wikipedia.org/wiki/PLY_(file_format) [8] Khronos Group — glTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html [9] Apple — AR Quick Look: https://developer.apple.com/augmented-reality/quick-look/ [10] three.js — documentation: https://threejs.org/docs/ [11] Prusa Knowledge Base — Modeling with 3D printing in mind: https://help.prusa3d.com/article/modeling-with-3d-printing-in-mind_164135 [12] Prusa Blog — lithophanes and filament transparency: https://blog.prusa3d.com/lets-play-with-filament-transparency-how-to-make-amazing-lifelike-color-photos-with-just-a-simple-color-change_104338/ [13] Polymers (2024) 16(20):2862 — FFF parameters and translucency of PLA: https://doi.org/10.3390/polym16202862 [14] Wikipedia — Lithophane: https://en.wikipedia.org/wiki/Lithophane [15] W3C — CSS Values and Units Level 3 (absolute lengths): https://www.w3.org/TR/css-values-3/ [16] Adobe Substance 3D — OpenGL vs DirectX normal maps: https://experienceleague.adobe.com/en/docs/substance-3d/bakers/common-questions/what-is-the-difference-between-the-opengl-and-directx-normal-format [17] Blender Manual — Normal Map node: https://docs.blender.org/manual/en/latest/render/shader_nodes/displacement/normal_map.html [18] Wikipedia — Normal mapping: https://en.wikipedia.org/wiki/Normal_mapping [19] SIL Open Font License: https://openfontlicense.org/ ## FAQ Q: Is JPG to STL the same as JPEG to STL? A: Yes — .jpg and .jpeg are the same format. Both work here. Q: How do I convert a JPG or PNG image to STL? A: Drop the image onto the converter above, choose Relief (brightness becomes height), Lithophane (the photo shows when backlit) or Extrude (a solid shape), set the width in millimetres, then download STL or 3MF. For JPEGs, raise Smoothing to hide compression noise; transparent PNGs work best on the PNG to STL page. Q: Why is my relief bumpy? A: JPEG compression and camera noise create small brightness steps that become bumps. Raise Smoothing to 1–3. Q: What size photo should I use? A: Crop to the subject first. The tool resamples to at most 640 points per side, so a cropped 1–2 megapixel photo is plenty. Q: Will the STL be in colour? A: No — STL has no colour. The picture is carried by height (relief) or by light through the plastic (lithophane). Q: Can I remove the background? A: JPEGs can't be transparent. For a cut-out, use Extrude with a threshold, or remove the background first and save a transparent PNG. Q: Is my photo uploaded? A: No. It's processed in your browser. ## Related pages - AI 3D Model Generator: https://kenerateai.com/ai-3d-model-generator - Image to 3D: https://kenerateai.com/image-to-3d-converter - AI STL Generator: https://kenerateai.com/ai-3d-printing-model-generator - Text to 3D: https://kenerateai.com/text-to-3d-generator ## Sources - Wikipedia — STL (file format): https://en.wikipedia.org/wiki/STL_(file_format) - Wikipedia — Wavefront .obj file: https://en.wikipedia.org/wiki/Wavefront_.obj_file - Wikipedia — FBX: https://en.wikipedia.org/wiki/FBX - Khronos Group — glTF: https://www.khronos.org/gltf/ - 3MF Consortium — 3MF specification: https://3mf.io/specification/ - Wikipedia — Universal Scene Description (USD / USDZ): https://en.wikipedia.org/wiki/Universal_Scene_Description - Wikipedia — PLY (file format): https://en.wikipedia.org/wiki/PLY_(file_format) - Khronos Group — glTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html - Apple — AR Quick Look: https://developer.apple.com/augmented-reality/quick-look/ - three.js — documentation: https://threejs.org/docs/ - Prusa Knowledge Base — Modeling with 3D printing in mind: https://help.prusa3d.com/article/modeling-with-3d-printing-in-mind_164135 - Prusa Blog — lithophanes and filament transparency: https://blog.prusa3d.com/lets-play-with-filament-transparency-how-to-make-amazing-lifelike-color-photos-with-just-a-simple-color-change_104338/ - Polymers (2024) 16(20):2862 — FFF parameters and translucency of PLA: https://doi.org/10.3390/polym16202862 - Wikipedia — Lithophane: https://en.wikipedia.org/wiki/Lithophane - W3C — CSS Values and Units Level 3 (absolute lengths): https://www.w3.org/TR/css-values-3/ - Adobe Substance 3D — OpenGL vs DirectX normal maps: https://experienceleague.adobe.com/en/docs/substance-3d/bakers/common-questions/what-is-the-difference-between-the-opengl-and-directx-normal-format - Blender Manual — Normal Map node: https://docs.blender.org/manual/en/latest/render/shader_nodes/displacement/normal_map.html - Wikipedia — Normal mapping: https://en.wikipedia.org/wiki/Normal_mapping - SIL Open Font License: https://openfontlicense.org/