The most common and universal file format for 3D printing is STL. It was released in 1987 and it’s dead simple. An STL file describes a raw, unstructured, triangulated surface. It doesn’t contain any scale, color or material information. There is no validation, it’s just a bunch of triangles, so it doesn’t prevent you from accidentally creating holes, non-manifold edges, flipped normals, or self-intersecting models. It’s good enough most of the time, but isn’t there a newer, better file format that we could use for 3D printing?
Meet 3MF – a new open-source file format designed specifically for additive manufacturing.
What is 3MF and who created it?
3MF, also called 3D Manufacturing Format is an open-source project developed by the 3MF consortium founded by Microsoft. Nowadays, it includes well-known names such as Autodesk, Dassault Systèmes, Ultimaker and more (see 3mf.io to find out more). The 3MF consortium’s main goal is to create an XML-based platform capable of containing a 3D model with a comprehensive package of information that cannot be saved within a simple STL file.
What can be stored in a .3mf file?
The 3MF file format uses the same compression as a ZIP archive – you can actually rename the extension to .zip, simply unpack it and work with the contents. Aside from the 3D model itself, 3MF files can hold:
- More than one object in the scene
- Complete PrusaSlicer setup including:
- Printer profile
- Manually created supports
- Variable layer height settings
- Scene units (STL objects are proportionless)
- Color and texture information
- Thumbnail (Can be changed to a photorealistic render, for example)
Furthermore, 3MF provides a clear definition of manifoldness — it’s impossible to create a 3MF file with non-manifold edges, and there is no ambiguity for models with self-intersections. This helps to prevent errors in printed models.
Single objects can be referenced or moved without changing the mesh, and multiple identical objects can be placed referencing the same mesh. Where STL would make a copy of every triangle for every copy of a mesh, 3MF simply notes that this object has a new instance and saves its location.
In short, this file can hold pretty much all information about the model (scene) including the individual configuration made in your slicer. This means that your model (the whole scene with a configuration) can be easily saved and shared with others, saving a huge chunk of time, because you don’t have to go through the pre-slicing setup every time you import the model.
When we introduced our new PrusaSlicer 2.0 and launched the new PrusaPrinters community hub, some people asked us why we prefer sharing the models in 3MF format over AMF. It’s simple: the 3MF specification is newer and unambiguous, and it’s available for free. Also, 3MF files are supported by Cura and Microsoft 3D builder (among other apps). On the other hand, AMF is ambiguous and the specification is only available for a fee. AMF files were never properly supported by any software of which we are aware. At best, AMF files were used to the same extent as STLs, meaning that the AMF only carried a single mesh without any additional attributes. With that said, PrusaSlicer can still load AMF if you want to use it for whatever reason.
3MF and PrusaSlicer
PrusaSlicer and several other slicer programs support using 3MF files. Plus, our PrusaSlicer uses 3MF as a default format for saving projects (File – Save Project). These files can contain custom-made supports, basic and advanced printer settings, variable layer height information, modifiers, the position of contained models and lots of other details, which makes it an ideal format for sharing.
The 3MF archive also makes it possible to save colors for multi-part models prepared for Multi-Material Upgrade printing. Multi-part models can be saved in a .3mf file as an object, which consists of several parts – each with its own color, materials, etc. STL files, on the other hand, do not offer this level of comfort; the model must be split into several separate files with no information about color and materials at all.
Here’s a small example of how a 3MF project can help when printing with the Original Prusa SL1 printer: Let’s say you would like to print one of our H0 trains with a resin that doesn’t have a profile in PrusaSlicer. It is necessary to enter the material exposition values and add all the support points manually. Why manually? Train models usually feature a number of tiny details, so an individual approach is preferred: you need to place supports carefully, adjust the size of support heads, etc. It’s obvious that this requires a lot of time. If you don’t save the project, you’ll end up with .stl and .sl1 files. STL doesn’t hold any configuration and SL1 cannot be further edited. So if you find a flaw, e.g. an insufficient number of supports, you’ll have to start all over again. If you save your project as a .3MF file, you can open it again later and fix everything you forgot the first time.
All of this is why you can upload not only .STL and .GCODE to PrusaPrinters.org, but also 3MF files. You will save other people a lot of work and provide them with the best settings you came up with, while still giving them the option to modify your data.
Give it a try!
Let’s sum it up: The .3MF file is a very useful improvement that can save us a lot of work and time thanks to the ability to save the model along with valuable information that cannot be held by other files (STL, OBJ, GCODE…). Due to its open-source nature and support provided by large companies, the 3MF file format has great potential in the 3D printing world (and several other 3D manufacturing sectors). Poor compatibility among various slicing programs can be considered a slight disadvantage: the print settings saved to a 3MF file by one program and opened in another will not be converted properly (or at all) and must be set manually.
However, at least the 3D model itself can be exported using a supported slicer (PrusaSlicer, Cura, Simplify3D, IdeaMaker, etc.). Luckily, the 3MF is open-source and supervised by the 3MF Consortium, so there is plenty of room for further development of the specification. Try to use the 3MF files for saving and sharing data and let us know how you like this simple, yet useful improvement.