3MF vs STL: which file format should you use for 3D printing?
Updated · 9 min read
Short answer: STL stores only the surface of a model as a list of triangles. It has no units, no colour and no print settings, but every slicer and CAD program reads it. 3MF is a ZIP package of XML files that stores the mesh with its unit, plus colours, materials, several objects and their layout on the plate, and, when a slicer saves it as a project, the print settings too. Use 3MF for modern slicers and multi-colour prints; use STL when a tool, site or person can only take STL.
Below: which one to pick for common jobs, a side-by-side table, what is inside each file, the difference between a plain 3MF and a slicer project, how PrusaSlicer, Bambu Studio, OrcaSlicer and Cura handle 3MF, file size, and how to convert either way.
Try it on your own model
Upload a GLB, OBJ, FBX, STL or PLY file (or pick a sample), describe the look, and let AI paint it from every side.
Open the AI 3D Texturing StudioWhich should I use, 3MF or STL?
- Printing on your own printer with a modern slicer: 3MF. It opens at the right size and keeps your plate, settings and painted colours when you save the project.
- Multi-colour or multi-material printing: 3MF. STL has nowhere to store which part gets which filament.
- Sharing a print that should work for anyone, in any program: STL, or both files. STL is the one format that almost every slicer, CAD program, repair tool and model site accepts.
- A single-colour part for an older slicer, a print service form or a CAD tool: STL is fine. Check the unit when you open it.
- Sharing your exact print setup with a friend on the same slicer: a 3MF project saved from that slicer.
If you only need the shape, both work. As soon as you care about the size being read right, colours, several parts or the settings you tuned, save a 3MF.
3MF vs STL at a glance
| STL | 3MF | |
|---|---|---|
| Made by | 3D Systems, released in 1987 for its first stereolithography printers | The 3MF Consortium, founded in 2015 by Microsoft, Autodesk, HP, Dassault Systèmes, Shapeways, SLM and FIT AG |
| Standard | De facto standard; no standards body | Published 3MF Core specification; also ISO/IEC 25422:2025 |
| Encoding | ASCII text or binary | ZIP package (Open Packaging Conventions) holding XML files and images |
| Geometry | Separate triangles; every corner written again for each triangle | One vertex list plus triangles that point to it, so shared corners are stored once |
| Units | None; programs assume millimetres | Stored in the file: micron, millimetre, centimetre, inch, foot or metre (millimetre by default) |
| Colour and materials | No (only non-standard tricks a few programs use) | Yes: base materials, colours, and textures through the Materials extension |
| Several objects and plate layout | One surface; parts are not kept apart | Yes: each object, its position and a build list |
| Print settings | No | Yes, when a slicer saves the file as a project |
| Metadata and thumbnail | An 80-byte header in binary STL, usually ignored | Title, designer, licence and more, plus a PNG or JPEG thumbnail |
| Support | Practically everywhere | All major slicers and many CAD tools; some older or niche tools still cannot read it |
What an STL file holds
STL was made for 3D Systems’ first commercial printers in 1987. A file is a list of triangles, and each triangle has three corner points and one normal (the direction it faces). That is all. There is no colour, no texture, no unit, no object name and no link between triangles: a corner shared by six triangles is written six times.
Binary STL, the common kind, has a fixed layout: an 80-byte header, a 4-byte triangle count, then 50 bytes per triangle. So its size is easy to predict. A mesh of 100,000 triangles is 5,000,084 bytes, about 5 MB, whatever the shape. ASCII STL writes the same numbers as text and is several times bigger.
Because STL has no unit, the numbers mean whatever the program assumes. Slicers assume millimetres, so a model designed in inches opens 25.4 times too small. For more on how STL compares with a format that has textures, see STL vs OBJ.
What a 3MF file holds
Rename a .3mf to .zip and you can open it: inside is a small folder tree. The main part is an XML file, usually 3D/3dmodel.model, that lists each object’s vertices and the triangles that use them, then a build section that says which objects to print and where. The 3MF Consortium publishes the specification, and it is also an ISO/IEC standard.
- A unit attribute on the model, so a slicer knows that 20 means 20 mm (or 20 inches).
- Several objects in one file, each with its own position on the build plate.
- Materials and colours. The core spec has base materials with a display colour; the Materials and Properties extension adds colour groups, mixed materials and textures (PNG or JPEG images with UV coordinates).
- Metadata such as title, designer, description, copyright and licence, plus a thumbnail image.
- Rules for printable objects: the mesh of a model object must be closed, with every edge shared by two triangles and the triangles facing outwards.
- Optional extensions for production, slices, beam lattices and secure (encrypted) content, mostly used by industrial printers.
The spec’s closed-mesh rule does not repair anything for you. A 3MF written from a broken mesh is still broken; it only makes it clearer what a valid file should be.
A plain 3MF vs a slicer project 3MF
The same file extension covers two different things, and this is where most “my settings did not come across” questions start.
- A plain (model) 3MF holds the geometry, units, objects and maybe colours. CAD programs and converters write this kind. Any 3MF-aware slicer opens it.
- A project 3MF is what a slicer writes when you save the project. It adds that slicer’s own files to the package: print and filament settings, modifiers, painted supports or colours, and plates. PrusaSlicer, Bambu Studio, OrcaSlicer and Cura all save projects this way.
The extra settings are written in each slicer’s own way, so they mostly stay inside that slicer family. Open a Bambu Studio project in Cura and you usually get the objects, not the settings. Bambu Studio itself warns when a 3MF was not saved by it and loads only the geometry. To share a print with someone on another slicer, a plain 3MF or an STL plus a note of your settings is safer.
How each slicer handles 3MF and STL
| Slicer | Opens STL | Opens 3MF | Saves projects as | What to know |
|---|---|---|---|---|
| PrusaSlicer | Yes | Yes | 3MF | Prusa’s help says Save Project as writes all objects, settings, modifiers and their parameters into one 3MF. Open it as a project to get the settings back. |
| Bambu Studio | Yes | Yes | 3MF | Saves plates, per-object settings and painted colours in its project. A 3MF from another program opens as geometry only. |
| OrcaSlicer | Yes | Yes | 3MF | Built on code from Bambu Studio and PrusaSlicer; saves its projects as 3MF in the same way. |
| UltiMaker Cura | Yes | Yes | 3MF | File > Save Project writes a .3mf with the printer and print settings (Save Universal Cura Project keeps fewer). Export writes a copy in another format such as STL. |
| CAD programs (for example Fusion and Onshape) | Exports it | Exports it (most current versions) | Their own format | Export a 3MF to keep units and separate bodies; export STL for tools that need it. |
If a program is old enough not to list 3MF in its open dialog, convert the file to STL first (see below).
Which file is smaller, 3MF or STL?
Usually the 3MF, for two reasons. It stores each shared corner once and points to it, where STL repeats it for every triangle, and the whole package is ZIP-compressed. A binary STL is never compressed.
There is no fixed ratio, and published comparisons give very different numbers. 3MF writes its coordinates as text, which takes more room per number than binary STL’s 4-byte floats until compression wins it back, and a project 3MF can also carry thumbnails, textures and settings. The honest way to know is to convert your own model: our STL to 3MF converter shows the size of both files.
If an STL is simply too big to upload, reduce the STL file size by lowering the triangle count instead.
When STL is still the right choice
- The receiving tool, print service or old slicer only lists STL.
- You print in one colour and only the shape matters.
- You want the widest reach for a free model download. Many makers upload both an STL and a 3MF.
- You are running the file through a mesh repair or editing tool that reads STL best. Our STL repair tool, for example, takes STL.
Whenever you send an STL, say which unit it was designed in. That one sentence avoids the most common STL problem.
How to convert between 3MF and STL
- STL to 3MF: the mesh is kept as it is, shared corners are joined, and you choose the unit that gets written into the file. Nothing is added: an STL has no colours or settings, so the 3MF has none either until you set them in your slicer. Use our STL to 3MF converter, or open the STL in your slicer and save the project.
- 3MF to STL: the shape survives, but colours, painted areas, plates, supports and print settings are dropped, and the size is written in millimetres. You can export one merged STL or one STL per object with our 3MF to STL converter. In a slicer, use its export (not save) command.
To look inside a 3MF without installing a slicer, use the 3MF viewer. To keep the filament colours when you leave 3MF, convert to OBJ with 3MF to OBJ, which writes each colour as its own material. And if your model is an OBJ, OBJ to 3MF writes it straight into a 3MF with a unit.
Does converting lower the quality?
Not the triangles: the corner positions are copied, not re-made. What you lose going to STL is everything around the mesh (unit, colours, objects, settings), and what you gain going to 3MF is only the unit you pick.
Get a model, then colour it
No model yet? Make one from a photo with image to 3D: a generated model downloads as STL or 3MF (as well as GLB, OBJ and FBX), scaled to 100 mm on its longest side so it opens at a printable size. Or make a print-ready STL directly with image to STL.
An STL has no colour to begin with. The AI 3D Texturing Studio opens STL files (and OBJ, FBX, GLB, glTF and PLY) up to 60 MB and 600,000 triangles, makes UVs for it, and paints a full texture from a text prompt. You download a GLB with the texture inside. To turn colour into a multi-colour print, our guide to adding colour to an STL file covers slicer painting, splitting parts and full-colour services.
Texture your STL with AI
Upload an STL, describe the look, and download a textured GLB.
Open the studioQuestions
Is 3MF better than STL?
For printing with a modern slicer, yes: it stores the unit, several objects, colours and, as a project, your print settings, and it is usually smaller. STL is still better when you need the widest compatibility, because almost every program reads it.
Does 3MF keep my print settings?
Only a project 3MF does. Save the project in PrusaSlicer, Bambu Studio, OrcaSlicer or Cura and the settings go into the file. A 3MF exported from CAD or a converter holds the model only. Settings saved by one slicer usually do not carry over to a different slicer.
Why does my STL open too small or too big?
STL has no unit. Slicers assume millimetres, so a model designed in inches opens 25.4 times too small. Scale it by 2540% or re-export it as 3MF, which stores the unit.
Can STL store colour?
Not in the standard. A few programs hide colour in spare bytes of binary STL, but they do it in incompatible ways and most slicers ignore it. Use 3MF for colour printing.
Is a 3MF always smaller than an STL?
Usually, because 3MF stores shared corners once and is ZIP-compressed, but not by a fixed amount. A project with thumbnails, textures and settings can be larger. Convert your own file to compare.
Will converting 3MF to STL lose anything?
Yes: colours, painted areas, separate plates, supports and print settings. The shape itself is kept. Keep the 3MF as your master file and make STLs from it when needed.
Can I open a 3MF without a slicer?
Yes. A 3MF is a ZIP file, so you can unzip it to see the XML inside, or open it in a browser-based 3MF viewer to see the objects and their colours.
Ready to texture something?
Upload a GLB, OBJ, FBX, STL or PLY file (or pick a sample), describe the look, and let AI paint it from every side.
Start texturingStep-by-step tutorials
Keep reading
STL vs OBJ: what is the difference, and which should you use?
STL vs OBJ compared: what each file stores, colour, textures and UVs, triangles vs polygons, units, which to use for 3D printing, and what converting changes.
How to add colour to an STL file (and print it in colour)
STL files cannot store colour. Learn why, which formats can (3MF, OBJ, PLY, GLB), and 4 ways to add it: slicer painting, part splitting, textures, full colour.
Which 3D model format keeps textures? GLB, OBJ, FBX, STL and 3MF compared
Which 3D model format keeps textures? How GLB, GLTF, OBJ + MTL, FBX, STL, PLY and 3MF store colour and texture maps, GLB vs OBJ, GLB vs FBX, and which to pick.
What is a GLB file? (and how it differs from glTF)
A GLB file is a 3D model in glTF 2.0’s binary format. What a GLB holds, how the file is built, GLB vs glTF compared in a table, and how to open or edit a GLB.
Sources
Checked 2026-10-18. Other tools change their features and prices often, so check their own pages too.
- Wikipedia: STL (file format)
- Wikipedia: 3D Manufacturing Format
- 3MF Consortium: specifications
- 3MF Core Specification (units, mesh, build, metadata, thumbnails)
- 3MF Materials and Properties Extension
- Prusa Knowledge Base: Saving projects as 3MF
- UltiMaker Support: saving a Cura project
- Bambu Lab Forum: "The 3mf is not from Bambu Lab, load geometry data only"
- OrcaSlicer on GitHub (built from Bambu Studio and PrusaSlicer)
- Onshape: STL vs 3MF files for additive manufacturing (exporting both)