STL vs 3MF: which file should you use?
Use STL when you only need to share one shape that anyone can print. Use 3MF when the model has colours, several parts, or print settings that should travel with it. The reason is simple: the two formats store very different amounts of information.
What an STL holds
An STL is a list of triangles, each with a direction (a normal). That is all. It has no colour, no texture, no units and no metadata, because the format has no fields for any of them. (STL format overview)
STL comes in two flavours. ASCII STL is plain text and large. Binary STL is compact: an 80-byte header, a 4-byte triangle count, then 50 bytes per triangle. Almost everything that prints can read both.
Two consequences follow from having so little in the file:
- Any colour you see on an STL was chosen by the viewer, not stored in the file.
- The size has no unit. A slicer must assume one, usually millimetres. See STL has no units.
What a 3MF holds
A 3MF is a ZIP archive of XML files made for 3D printing. Besides the triangles it can store:
- colours and materials, per object or per triangle
- several objects and their placement on the build plate
- the unit the model uses (millimetres unless stated)
- thumbnails and slicer metadata
Because the content is compressed XML, a 3MF is often smaller than an ASCII STL of the same model, though a binary STL can still be the smaller file for a plain single shape. (3MF specification)
Side by side
| STL | 3MF | |
|---|---|---|
| Geometry | Triangles | Triangles |
| Colour | No | Yes |
| Units | No | Yes |
| Several objects | Usually one shape | Yes |
| Slicer settings | No | Can carry them |
| Support | Almost everywhere | Modern slicers and viewers |
Which one to pick
- Sharing a single-colour part with someone whose tools you do not know: STL.
- Multi-colour prints: 3MF. The colours only exist in 3MF.
- A full project with several parts and their positions: 3MF.
- Archiving a model you may print again with the same setup: 3MF, since it can keep that information.
The trap: converting to STL loses colour
Saving a coloured 3MF as STL throws the colour away for good. If you need the colours later, keep the 3MF and export STL only as an extra copy for tools that need it.
Viewing both on a phone
MeshView opens both. A multi-colour 3MF appears in its own colours, and an STL appears in a filament colour you choose, since the file has none to show. Both give you the same X, Y and Z size and triangle count, so you can compare an STL and a 3MF of the same part.