This article has been updated for 2021 with new information.
We recently received a question from a student in secondary education regarding file formats and 3D printing. He wanted to know what the most common file formats are and how they are used.
So, we thought we'd write an article about this.
File Formats and 3D Printing
When you are designing 3D models, you will likely encounter a few different file types. Some file types are proprietary to 3D printer manufacturers; some are related to design software, and some are generated by 3D scanners. Below, you will find out everything you need to know about the most common file types used in the 3D printing industry.
.STL is the most common file format when 3D printing. STL stands for STereolithography and .STL files consist of facet data. STL is a standard file format that can interface between most CAD software and 3D printers. .STL files contain only a single colour (an obvious limitation) and they are a triangular representation of a 3-dimensional object.
Despite the rudimentary data contained in an STL file, STL is the most popular file today. It's supported by most 3D printers.
.OBJ is the second most common file format used in 3D printing. It is widely supported by 3D printers (such as the Formlabs 1+ and 2) and most software will export to .OBJ. This file is similar to .STL in that it contains 3D geometry information alone, such as vertex normals, geometric vertices, polygonal faces and texture coordinates.
OBJ builds on the STL file with multiple colours and material data. It also has improved model resolution support, so supports higher-quality prints.
.gcode, otherwise known as .g or .gco, is the file extension for files containing G-code data. A .gcode file is created by a slicing program, which turns a CAD drawing into a string of code that a 3D printer can understand. You will come across this post-slicing file type a lot during your 3D printing efforts because it contains instructions for your 3D printer.
G-code contains instructions for your 3D printer. It's a numerically controlled programming language generated by a slicing program.
.VRML (“vermal”, .WRL file extension), or Virtual Reality Modelling Language, is a newer file type than .STL. .VRML files can hold a single UV colour map so they are ideal for 3D printers with two extruders and for models that consist of more than one colour. This format is not as widely used as .STL, however the fact that it contains colour data means it definitely has its place.
The VRML format is used for interactive 3D objects and vector graphics. Slicing software like Cura can use VRML files but not all programs support it.
.3MF is a file format created by Microsoft. It is an XML-based data format. It was launched in 2015 to make 3D printing easier with a Windows 10 operating system. With .3MF, all model information is contained in a single archive and it is extensible. Unlike .STL, .3MF carries complete model information including mesh, textures, materials and colours.
Because it's open-source and powerful, 3MF gets a lot of love in the 3D printing world. It's most widely used in the commercial and industrial sectors.
.X3G is a proprietary file format used by Makerbot. It is a binary file that goes beyond an STL file because it also contains printer settings. So for example, an .X3G file contains all the information about when the 3D printer motor should move and at what speed. The file itself simply contains code that the Makerbot 3D printer can read and interpret.
Because X3G is a proprietary file format, it's only used in certain ecosystems. If you're not in one of those ecosystems, you can ignore it.
.AMF (Additive Manufacturing File Format) is an XML-based open-standard 3D printing file format with support for colour. These files can also be compressed to half the size of an STL file. These files contain an object, material, texture, constellation, and metadata information. This file format is not widely used at the moment, despite it offering more than an STL file.
Because it's an XML-based, open-source framework for data exchange, AMF files have the potential to be the golden standard for 3D printing.
.FBX is a proprietary file format owned by Autodesk. Developed by Kaydara, this file format is used to exchange data between Autodesk programs. In other words, it provides interoperability between content creation programs such as Autodesk and Maya. This file format is widely used in film production and game development because it offers workflow improvements.
What does this have to do with 3D printing? You can convert an FBX file to STL, so it's possible to save a design in the FBX format and convert it for 3D printing.
PLY (Polygon File Format) files are generated by 3D scanners. PLY files include a description of one object as a collection of vertices, faces and other elements. The information can include colour, transparency, surface and texture details and much more. When 3D printing, you convert a PLY file into the format accepted by the 3D printer.
PLY was first developed for 3D surface scanners and it is still used by some scanners today. It allows surface detail and RGB colour instructions.
Types of 3D printing file
As we've seen, 3D printing files fall into two camps:
- 3D modelling files that contain all design information
- Sliced files that contain instructions for the 3D printer based on the 3D model files
Both file types are linked by practical application; you design a model in CAD, save it, then export it to a file type that contains data for the 3D printer (e.g. OBJ). You then slice the file, creating g-code (instructions) for the 3D printer.
What is the best file for 3D printing?
We've established that STL files are the most common 3D printing file. They contain an approximation of the original 3D model, not the model itself, so you don't get colours, textures or materials, which can be an advantage or a disadvantage depending on what you want to print.
For simple prints, STL files are the best 3D printing file. They are small, simple and widely supported, making them something of an industry standard.
When you need to store colours and textures, the best 3D printing file is OBJ. OBJ is also more capable than STL when it comes to describing geometries.
If you enjoyed reading this article, check out our article "What is Slicing Software, and What Does it Do?".