Common 3D Printing File Formats: Which is the best?
3D printing has certainly evolved from being something that can only be done using expensive, industrial-scale machines to a hobby that can be done from inside your home garage or workshop. With the technology becoming more accessible than ever, there is now a global 3D printing community that has fostered collaboration and sharing of ideas and models.
Good collaboration requires clear communication. In the field of 3D printing, this can be done by being consistent with file formats. In this article, we take a detailed look at four of the most common file formats used in 3D printing. Why just four? Good question, and we’ll get to that shortly.
Why do 3D models have so many file formats?
If we had to write in detail about all the file formats used for 3D models, we would probably end up writing a book. Back in the early years of 3D modeling, each modeling software that was developed and published stored its file in a unique and proprietary format. This eventually resulted in more than a hundred different file formats, most of which were incompatible to each other.
This eventually became a problem when people had to collaborate in making a model using different software platforms. To work around compatibility issues, creators stuck to sharing formats that are “neutral” or “open-source.” Of the open-source formats, the four we are about to discuss here are some of the most commonly used.
What is STL?
STL stands for “stereolithography’ and is considered the granddaddy of all other 3D printer file formats. Developed in the late 1980s, it is one of the oldest file formats and is still widely used in today’s field of 3D modeling and printing.
The key characteristic of an STL file is that it simplifies a 3D surface as a “tessellation” – basically a series of small triangles. By increasing the number of triangles representing a surface, curved surfaces can be better approximated and recreated. However, using a large number of triangles can quickly bloat the file size of a model saved in the STL file format.
The biggest advantage of saving and sharing files in the STL file format lies in the fact that it’s one of the oldest and simplest 3D file formats ever created. Thus, almost all 3D modeling software platforms and 3D printers have been designed to store or open STL files. Some modeling or slicer software even have “light” versions that are meant to open STL files exclusively. With such widely established ubiquity, the STL file format will likely continue to reign supreme for the foreseeable future.
Simplifies sharing and publishing
A 3D model saved as an STL file takes a lot of “shortcuts” to keep the file simple. Its curved surfaces are merely approximations, it does not contain any surface data and cannot retain any metadata. This simplicity makes STL files very easy to share and publish, as it trims out a lot of unnecessary bulk.
One other characteristic of STL files is that they are very difficult to edit. If there’s a section of an STL file that you need to revise, you’re better off modeling it from scratch rather than dealing with a stubborn STL file. While collaborators may see this as a drawback, publishers who release their 3D models for free use treat this limitation as their security from people editing their models and publishing it as their own.
Only retains geometry data
An STL file contains data on the shape of the surface of a 3D model and nothing more. It does not carry any data on the color of each surface, its texture, or the material meant for printing the model. In fact, you can’t even embed any metadata on an STL file, making it hard to leave a trademark on a model that you’ve created.
Despite focusing solely on the geometry of the model, STL files are also massively known to be error-prone in how it approximates a surface. You may end up with overlapping triangles, or surfaces that are not entirely closed. These imperfections make it necessary to use an STL repair function before you can proceed to print an STL file – often a time-consuming step.
Limited level of detail
Since curved surfaces are only approximated in STL files, there is a limitation to the level of detail it can store and its fidelity to the source model. For now, STL files can get away with this limitation since most 3D printers also have limited resolution numbers, anyway. However, as 3D printers evolve and become more capable, it’s only a matter of time before the STL file format slowly becomes irrelevant.
What is OBJ?
Next to STL, the OBJ file format is the most commonly used in the 3D printing and modeling communities. Developed by Wavefront Technologies Inc., the OBJ file format is more commonly used in professional 3D modeling and is recognized by CAD software platforms and most game engines.
Heavily contrasting with STL, an OBJ file represents a 3D surface in a much more complex manner. Instead of tessellated triangles, a surface of an OBJ file is represented by a precise mesh which can comprise of various polygons, such as quadrilaterals or hexagons.
The ability of OBJ files to represent surfaces using a precise mesh encoding opens up the possibility of defining curved surfaces with non-discrete facets, such as splines. Aside from creating smoother surfaces, the use of splines allows a model to retain the same level of quality even when it gets scaled up.
An OBJ file can also contain a texture map as a separate, but associated file. A texture map wraps around the 3D object, thus acting as the file that defines its color or texture. This file can be saved as either a PNG file (texture map) or an MTL file (face attributes).
Allows for collaboration
OBJ files retain a much higher level of fidelity, and this greatly facilitates collaborative work between different designers. A designer can create a model, share it as an OBJ file, and allow a different designer to make tweaks on it without losing any of its critical details. Because of its high level of precision, OBJ files are preferred by industries that rely on a very high level of precision, such as aerospace travel or automobiles.
Ideal for multicolor 3D printers
Basic 3D printers can really only print models using one filament at a time, making it unnecessary to use 3D models with texture maps or color data. If all 3D printers had this limitation, then this industry would not have any use of OBJ files.
However, it turns out that multicolor 3D printers are starting to become a thing. With OBJ files that can store texture or color data, a multi-extruder 3D printer will know when to shift from one filament to another. Admittedly, there aren’t a lot of 3D printers that have this kind of setup, but OBJ files are going to be much more common once multi-color 3D printing technology takes off.
Despite the popularity of OBJ, we still have to accept the reality that its scope of compatibility is not quite as wide as STL. The tools you can use to edit or repair OBJ files are quite limited, and even popular software platforms need to have some sort of plugin installed before they can be used to open or export OBJ files. Before you start working with OBJ files, you need to make sure that your software and 3D printer is equipped to handle the file format.
The complexity of OBJ files is beneficial in that it retains a large amount of surface and texture data at high fidelity. Unfortunately, this also means that sharing, publishing, editing, and repairing OBJ files can be really time-consuming processes. Considering that just finding the right tool or software for the job is already difficult, working with OBJ files when you’re ill-prepared can be a huge headache.
What is AMF?
The AMF (Advanced Module File) file format was developed by ASTM in 2013 and is referred to by many in the industry as “STL 2.0.” In several ways, the AMF is a massively upgraded version of STL that addresses most of its issues.
Much like STL, the AMF file format approximates surfaces using a tessellated set of triangles. The major difference is that AMF allows these triangles to have curved sides. This means that an AMF file requires a smaller number of triangles to approximate a curved surface, thus avoiding the issue of bloat that STL runs to if you want to attain a smooth surface.
Another advantage of AMF over STL is that it can store color and texture data, as well as any metadata on the owner or description of the file. This is a huge jump in capability, which should have ensured the wide adoption of the AMF file format. All the data is stored in an XML format which is human-readable, facilitating processing sharing.
Provides better geometry data without being bloated
The use of curved triangles was a huge step that made AMF a much better alternative to STL. It allowed for a model that had a limited number of facets but had an overall smoother surface, without having to resort to a precision mesh defined by splines. If the strength of STL was its simplicity, by theory, AMF should have overtaken it easily.
Allows a scale to be defined
One thing that STL lacked is a user-defined scale. This made it hard to determine the size of a model based on how the designer intended it to be. The data included in an AMF file includes a scale with customizable units. This feature will come in handy for models meant to be published or collaborated on.
Despite AMF being touted as the improved STL and the file format being declared an ISO standard in 2013, the adoption of AMF among the 3D modeling and rapid prototyping industries has been very slow. CAD software manufacturers have not been very interesting in developing support for AMF, and only a handful of 3D printer slicer software are compatible with it.
Many have theorized that the poor adoption of AMF happened because it was created ahead of its time. Back in 2013, there were not many 3D printers or manufacturing technologies that can work with multiple materials at the same time. Thus, there was little value in the additional data that an AMF file offered.
Although STL files were bloated and error-prone, there was not enough of a compelling reason to shift the entire workflow to be compatible with AMF. At this point, it’s unclear if AMF will ever attain the status of being an industry standard. With the introduction of the 3MF file format – Microsoft’s native version of the AMF – the window for AMF to be relevant may have already passed.
What is 3MF?
The 3MF file format was created by Microsoft alongside the big names in 3D printing, including Autodesk, Siemens, HP, Ultimaker, Stratasys, and 3D Systems, among others. The goal was to create a new 3D model that provides high-quality performance and can be seamlessly used across all the different 3D printing platforms. For this move alone, the initiative of Microsoft had already generated a lot of industry buzz, which ideally would have helped in the adoption of the new file format.
The 3MF framework is heavily influenced by AMF, using many of its beneficial features while simultaneously improving on a few aspects. Just like STL, an AMF file uses a series of tessellated curved triangles to represent the surfaces of a model. An AMF file saves on storage space by storing identical objects using the same mesh.
Similarly, an AMF file contains data on colors, textures, as well as any metadata that the author chooses to embed. All of these are stored in an XML format for easy reading, writing, and publishing.
With practically all major brands involved in the 3MF consortium, the hope is for the file format to enjoy a high rate of adoption in the near future and, eventually, to become an industry standard. Right now, there are already about three dozen companies that support 3MF, and this list continues to grow.
No repairs needed
As 3D models become more complex, repairing them before printing is also becoming a bigger nightmare. Because of errors that inevitably happen when 3D models are shared or published, doing a repair has become a necessary step before they can be printed. One of the goals of 3MF is to avoid these errors by ensuring that there are no overlapping triangles and that there are no cracks in the surface of a model.
Integration of all necessary files in a 3D “payload”
The vision behind the development of 3MF is for creators to be able to 3D print a model with the ease with which you can print a document. This has been partly achieved by ensuring that AMF files need no repairs, but another approach was to integrate all the files of a model inside a 3D payload or a single archive. Think of it as a ZIP file that contains the model, file properties, and digital signatures, all of which are shared instantly and with no risk of loss.
Might become a paid, proprietary file format
This may seem like an unsubstantiated concern, but the fact that the 3MF file format is being developed by Microsoft has made many industry insiders and experts dubious about its long-term prospects as an open-source file format. After all, a tech giant like Microsoft isn’t exactly known for fostering fair business competition.
The only saving grace that goes against this becoming an issue is the fact that Microsoft has stated that “the 3MF specification is and will always be free of royalties, patent, and licensing.” With such a definitive statement, Microsoft will not be able to back out of its commitment without some serious backlash. Microsoft also provides access to the 3D printing file specifications and SDK for 3MF via GitHub.
The world of 3D printing file formats has proven to be very complex and tough to navigate. With more than a hundred file formats being shared online, consistency and fidelity have always been concepts that the 3D design industry has struggled with. It’s easy to say that we can stick to the basic STL and OBJ file formats, but we also have to admit that they will go the way of obsolescence in a few years.
The AMF and 3MF file formats represent the most recent and successful efforts to streamline the 3D design workflow in the industrial and commercial settings. AMF was not quite the success that it had the potential to be, but 3MF stands to grab the opportunity that AMF missed. How the 3MF movement will fare in the long run remains to be seen.