Schlagwort: STL

  • 4 Most Common 3D Printer File Formats in 2019

    4 Most Common 3D Printer File Formats in 2019

    Reading Time: 26 minutes

    What is the best 3D printer file format? Which format should you use? We explain and compare the four most common 3D printing file formats: STL, OBJ, AMF, and 3MF.

    What is a 3D Printer File Format?

    3D printers require a digital blueprint of an object
    3D printers require a digital blueprint of an object
    3D printers require a 3D file of an object

    To print a three-dimensional object, a 3D printer needs a digital blueprint of the object. This is just a file that stores all the relevant data about the object such as geometry, color, texture, and materials. There are several file formats that can hold such data. These formats are known as 3D file formats. Examples include STL, COLLADA, OBJ, FBX, X3D, etc.

    Not all 3D file formats are 3D printer file formats though.

    3D printer file formats are a subset of 3D file formats that are used for 3D printing. Even though almost all 3D file formats can theoretically be used for 3D printing, only a few formats have emerged as go-to formats for 3D printing. This has happened for some historical, practical, and design reasons which we will discuss later.

    The result is that only these formats have respectable support across the 3D printing toolchain and therefore, everyone ends up using them when they want to 3D print something. These common 3D printer file formats are respectively STL, OBJ, AMF, and 3MF.

    Why does a 3D Printer File Format Matter?

    Why should you care about those three letter extensions anyway? Does it make a difference?

    We think it does for two reasons.

    Reason #1: The File Format Decides What Information Goes to the 3D Printer

    Your 3D printer file is the carrier of information from the CAD model to the printer. Not all 3D printer file formats can carry all kinds of information.

    If you are primarily printing with a single material and in a single color, STL will do the job. But the moment you move to multicolor printing, you have to ditch STL because it is simply not capable of storing colors.

    Color is just one aspect of 3D printing. There are plenty of other factors like materials and precision. Depending on your print job, you would have to select a 3D printer file format that is capable of transmitting the necessary information to the printer.

    Reason #2: The 3D Printer File Formats and Tools are Tightly Coupled

    Not all file formats are compatible with all the 3D printing software and hardware.

    For example, the CAD software Blender supports importing and exporting STL files but has no support for the 3MF 3D printer file format. Should you want to use the 3MF format in the future (it has many features that you might want), you have to ditch Blender and move to another CAD software (like Solidworks) with the required capabilities. Not only does this cost you money, but also a lot of time for learning and adapting to a new tool.

    This also holds for Slicers like Cura or Simplify3D.

    Because of these two reasons, it’s a good thing to be informed about the different 3D printer file formats and their features, strength, weaknesses, applications, and compatibility.

    But how to get informed? Well simply read on. We have covered everything you need to know about the different 3D printer file formats in the following sections.

    3D Printer File Format #1: STL (The De-facto Standard)

    Ask a lot of 3D printing professionals which format they use, and you will most likely get the same answer every time –  “STL”.

    As of today, STL is the undisputed champion among 3D printer file formats. STL’s history goes back to the invention of 3D printing itself. The first 3D printer was invented by Chuck Hull in 1987 at 3D Systems. The same guy was behind the STL file format.

    Chuck Hull, the inventor of the first 3D printer, was also behind the STL file format
    Chuck Hull, the inventor of the first 3D printer, was also behind the STL file format
    Chuck Hull, the inventor of the first 3D printer, was also behind the STL file format

    Ever since its invention, it has remained the de facto standard in the 3D printing industry. The format specification has remained the same for 30 years. In spite of its age and limitations, most 3D printing workflows today continue to use this format (and this format alone) because of the strong support it enjoys in every piece of software and hardware in the 3D printing toolchain.

     STL 3D printer file format features in a nutshell

    STL is one of the simplest open source file formats. It supports both ASCII (larger file size, human readable) and binary (smaller file size) encodings.

    It can encode a 3D model’s geometry but has no support for storing any other interesting object properties. You cannot store information about colors, textures or materials.

    Till recently, most 3D printers were only capable of printing models with a single material. Therefore, a file format that stores just geometry was sufficient.

    In the last few years, multi-color 3D printing has rapidly gained traction. While it is still not mainstream, we believe it will be in a few years. STL files will be unusable with these printers.

    STL also uses a very simple-minded approach called “tessellations” to store geometry. This has turned out to be both a boon and curse.

    Tessellation is the process of tiling a surface with one or more geometric shapes such that there are no overlaps or gaps. If you have ever seen a tiled floor or wall, that is a good real-life example of tessellation.

    The tiled wall and floor are simple real life examples of tessellation
    The tiled wall and floor are simple real life examples of tessellation
    The tiled wall and floor are simple real-life examples of tessellation

    The STL 3D printer file format uses triangular tiles to cover the surface of a 3D model. The vertices and normals of these triangles are stored in the file to encode the geometry of the model.

    Tessellations of a cube and a sphere
    Tessellations of a cube and a sphere
    Tessellations of a cube and a sphere with triangular facets

    The fine trinaglar mesh is approximately encoding the surface geometry of this 3D model (source : i.materialize)
    The fine trinaglar mesh is approximately encoding the surface geometry of this 3D model (source : i.materialize)
    The fine triangular mesh is approximately encoding the surface geometry of this 3D model (source: i.materialize)

    The triangles can be made arbitrarily small to approximate curved regions. However, the smaller the triangles, the larger the number of triangles required to cover the surface. Storing information about a large number of triangles can take a lot of space, leading to large file sizes. Therefore, precision comes at the cost of size in this 3D printer file format.

    The perfect spherical surface on the left is approximated by tessellations. The figure on the right uses big triangles, resulting in a coarse model. The figure on the center uses smaller triangles and achieves a smoother approximation (source: i.materialize)
    The perfect spherical surface on the left is approximated by tessellations. The figure on the right uses big triangles, resulting in a coarse model. The figure on the center uses smaller triangles and achieves a smoother approximation (source: i.materialize)
    The perfect spherical surface on the left is approximated by tessellations. The figure on the right uses big triangles, resulting in a coarse model with small file size. The figure on the center uses smaller triangles and achieves a smoother approximation at the cost of a much larger file size (source: i.materialize)

    As the fidelity of 3D printing reaches micron level accuracy, the large file sizes are soon going to be a big problem.

    So why is STL 3D printer file format so popular?

    There is no doubt that STL is a simple and old 3D printer file format. So why do people continue to use it?

    The answer is: precisely because it’s old and simple. As the file format was used in the first-ever 3D printer (1987), it quickly became a 3D printing standard. Manufacturers other than 3D Systems adopted it too because it was the most rational choice back then.

    The first commercial 3D printer, SLA-1, used the STL format
    The first commercial 3D printer, SLA-1, used the STL format
    The first commercial 3D printer, SLA-1, used the STL format

    As almost all hardware manufacturers bet on this 3D printer file format, CAD software manufacturers had to follow to satisfy demand. Over two decades, almost every major CAD software has included Import and Export support for the STL format. The simplicity of the 3D printer file format helped in this process, as writing parsers for STL is quite easy.

    Soon, STL became a ubiquitous part of every software and hardware component in the 3D printing toolchain. If a new 3D printing product appeared, STL would be the first format to be supported, ensuring that the product works well together with other parts of the workflow. This is still true today.

    As the entire workflow became STL compatible, 3D printing enthusiasts and practitioners naturally started choosing STL over other formats which did not have equivalent support.

    STL became the de facto standard for 3D printing. Most 3D printable models are also shared as STL on the internet. Scores of sophisticated supporting software, such as STL file repair tools, came into existence. The internet became flooded with documentation, Q & A, troubleshooting information, and tutorials related to the STL 3D printer file format.

    All these factors are responsible for making STL such a successful format for 3D printing. People still overwhelmingly choose it for 3D printing today and we think that this trend would continue for at least five more years.

    Shortcomings of the STL 3D printer file format

    While enjoying the best support from manufacturers among 3D printer file formats, STL is a sorely outdated file format. It doesn’t help that the format hasn’t been updated a single time since its invention. The needs of 1987 are not the needs of 2017. Here are the shortcomings of the 3D printer file format that people complain about most loudly.

    STL 3D printer file format stores a lot of redundant information

    The easiest way to show this is via an example. Here is a comparison listing file size of the same model (~63,000 triangular faces) saves as different 3D file formats.

      1. PLY (binary): 1.1M
      2. X3DB (binary): 1.3M
      3. OBJ (ASCII): 2M
      4. PLY (ASCII): 2M
      5. X3D (ASCII): 2.1M
      6. VRML (ASCII): 2.7M
      7. STL (binary): 3M
      8. STL (ASCII): 11M

    As you can see, STL is the most bloated format in the list. This happens because STL stores the normals to the triangles (even though this is redundant information). When the normals are not available, it insists on a default (0, 0, 0) value, which also unnecessarily takes up space.

    STL 3D printer file format is slow and error-prone

    In spite of being the most bloated format, STL actually stores less information than its counterparts! It does not store information about the connectivity of the triangular faces tiling the surface. Without connectivity, the file essentially represents a bunch of triangles floating in space, also referred to as “triangle soup”. Software that read STL files typically has to guess or compute connectivity information.  This step is slow and error-prone.

    STL 3D printer file format has little or no checking mechanism for watertight geometry

    Anyone who has used STL files knows that there is no guarantee if a file will print properly. 3D printing requires watertight geometry, but many STL files have holes or overlapping triangles. The 3D printer file format does not enforce many checks on the geometry, so people have to resort to STL repair software to check and repair it manually.

    This STL file, for example, does not have a closed geometry. You need to repair it first to be able to 3D print it.
    This STL file, for example, does not have a closed geometry. You need to repair it first to be able to 3D print it.
    This STL file, for example, does not have a closed geometry. You need to repair it first to be able to 3D print it.

    STL 3D printer file format is incapable of storing color, material and texture information

    Many 3D printers are now capable of printing multicolor objects with graded material compositions. However, STL files cannot encode any information other than geometry. So STL is utterly unusable with these advanced printers.

    STL 3D printer file format doesn’t contain scale information

    In STL, there is no field for storing the units used in the model. It could be mm, cm, inches or feet for all you know.

    Where to get STL downloads, readers and repair software?

    One of the strengths of the STL 3D printer file format is that there is no dearth of downloadable models and supporting software. If you are interested in playing with STL files, the following STL resources may interest you.

    Downloads

    Thingiverse is the biggest repository of STL files
    Thingiverse is the biggest repository of STL files
    Thingiverse is the biggest repository of STL files

    There are many repositories, marketplaces and search engines on the web containing literally millions of free STL files. Thingiverse is probably the largest STL file repository on the internet – so check it out.  You can also refer to our regularly updated list: 33 Best Sites for Free STL Files & 3D Printer Models in 2019.

    Opening and viewing

    3D printing software for beginners: ViewSTL
    3D printing software for beginners: ViewSTL
    ViewSTL is a simple online STL file viewer

    There are several free STL file viewers for this purpose, which you can either use online (e.g VIewSTL) or as a desktop application (e.g. GLC-Player). Refer to our dedicated guide here: 20 Best Free STL File Viewer Tools in 2019

    Editing, converting and repairing

    Because the format is open, there is nothing to prevent you from changing the contents of a file using a software like FreeCAD.

    There are several programs which can help with repairing a broken STL file. For example, Netfabb is a great tool for repairing the most common STL file problems.

    We have a dedicated article on this topic: 7 Free STL Editors + How to Edit and Repair STL Files

    Want to know more about the STL file format? Read our detailed article: STL File Format (3D Printing) – Simply Explained

    3D Printer File Format #2: OBJ (The 2nd Most Widely-Used)

    Since the STL 3D printer file format cannot store color information, the OBJ format is the preferred 3D printer file format for multicolor printing.


    The OBJ Format is the Dominant Multicolor 3D Printing Format

    The OBJ 3D printer file format was originally used by 3D graphics designers as a neutral interchange format for 3D graphics. It was later adopted by the 3D printing community when 3D printers got the capability of printing in multiple colors and materials.

    OBJ is not the only 3D graphics format that was suited for the job though. FBX and COLLADA were worthy candidates. So why did the community adopt OBJ instead of the other 3D graphics file formats?

    The two factors that worked in the favor of the OBJ 3D printer file format are its open source license and simplicity.

    This meant that it was way easier for CAD manufacturers to write consistent parsers for importing and exporting OBJ files than for its closest competitor FBX (proprietary format) or COLLADA (complicated specification). As a result, it emerged as the winning candidate for multicolor printing.

    OBJ 3D printer file format features in a nutshell

    The OBJ 3D printer file format is an open source specification. The 3D printer file format supports both ASCII (human readable, larger file size) and binary (smaller file size) encodings.

    OBJ files can encode a 3D model’s geometry along with information about color, materials, and textures.

    It offers a lot of flexibility in how it encodes geometry. You can use tessellations with polygons to cover the object surface (just like STL), which means that, once again, you have to strike a balance between file size and precision

    But if you wish, you can also use more advanced schemes like free-form curves and free-form surfaces. These schemes are able to encode a curved geometry faithfully without losing any information. In addition to being precise, they lead to far smaller files compared to the more basic methods.


    Freeform Curve on a 3D Model Surface


    NURBS Surface

    The OBJ 3D printer file format also lets you store color and texture information in a companion file format called the Material Template Library (MTL) format. It has the file extension MTL. The .OBJ file, when paired with the corresponding MTL file, can render a multicolor textured model.


    You can encode colors and textures in an OBJ file

    MTL files can define material properties like ambient color, diffuse color, specular color, transparency etc.

    In addition to supporting these material properties, the MTL format also supports texture maps, which is a more convenient method of specifying colors and textures. In texture mapping, every point in the 3D model’s surface (or the polygonal mesh)  is mapped to a 2-dimensional image. The coordinates of the 2D image have attributes like color and texture. When rendering the 3D model, every surface point is assigned a coordinate in this 2-dimensional image. The vertices of the mesh are mapped first. The other points are then assigned coordinates by interpolating between the coordinates of the vertices.

    Illustration of how texture mapping is used to encode color and texture information of one side of a cube
    Illustration of how texture mapping is used to encode color and texture information of one side of a cube
    Illustration of how texture mapping is used to encode color and texture information of one side of a cube

    Who uses the OBJ 3D printer file format and why?

    If the STL 3D printer file format supported color, texture, and material related information, then people would most likely stick to STL and there wouldn’t be any need for using the OBJ format.

    But, as it turns out, it can’t. So with the advent of multicolor 3D printing, people had to find a worthy alternative. The alternative turned out to be OBJ.

    With time, it has gained decent support across the 3D printing toolchain (CAD and Slicers), though not as much as the STL 3D printer file format.

    The OBJ 3D printer file format is also widely used in industries which are unforgiving when it comes to precision, such as the aerospace and automotive industries. As we discussed before, this format can encode geometry faithfully using free-form surfaces and curves without sacrificing file size. The STL 3D printer file format can’t do that. Therefore, precision engineering disciplines use the OBJ format for high precision 3D printing.

    3D modeling in the area of aeronautics engineering requires precise encoding of surface geometry
    3D modeling in the area of aeronautics engineering requires precise encoding of surface geometry
    3D modeling in the area of aeronautics engineering requires precise encoding of surface geometry.

    Shortcomings of the OBJ 3D printer file format

    The biggest problem with the OBJ 3D printer file format is that it is much more complicated than the STL format, and repairing a broken OBJ file can sometimes give you a headache. There’s not a lot of great online tools for editing and repairing OBJ file, which compounds the problem.

    Another common frustration is the fact that OBJ files come in pairs (a .OBJ file along with a .MTL file). In companies where the progression from design to printing involves hundreds of people, the MTL files often get lost or separated from its parent OBJ file, leading to a lot of confusion.

    The OBJ 3D printer file format also isn’t supported as much as the STL format. For example, you might have to use plugins to export OBJ files with Solidworks. So before you start using the OBJ format, make sure your setup supports it.

    Where to get OBJ downloads, readers and repair software?

    So where should you go if you want to download, read or repair OBJ files? Here’s a rundown:

    Downloading OBJ files

    TurboSquid has plenty of downloadable OBJ files
    TurboSquid has plenty of downloadable OBJ files
    TurboSquid has plenty of downloadable OBJ files

    There are many repositories, marketplaces and search engines on the web containing literally thousands of free OBJ files. The major places for downloading OBJ files are  TurboSquid, Free 3D, CGTrader, Archive3D, Clara, The Free 3D Models and Oyonale.

    Opening and Viewing OBJ Files


    Blender and many other CAD software can open OBJ files

    Fortunately, opening an OBJ file is not too complicated. Most CAD software will be able to open an OBJ file and let you view it.  In particular, you can try Solidworks, Fusion 360, Blender, Rhino, Cinema4D, and Unity. You can also view OBJ files online without the hassle of downloading and installing software on your machine. Autodesk360Viewer, 3DViewerOnline, 3D-Tool are online 3D model viewers that support the OBJ 3D printer file format.

    Repairing OBJ files

    Netfabb and many other softwares can repair OBJ files
    Netfabb and many other softwares can repair OBJ files
    Netfabb and many other software can repair OBJ files

    There are some programs which can help with repairing a broken OBJ file. For example, Netfabb Basic, Meshmixer and Meshlab are all great tools for repairing the most common OBJ file problems.

    Want to know more about the OBJ 3D printer file format? Read our detailed article: OBJ File Format – Simply Explained for CAD and 3D Printing

    3D Printer File Format #3: AMF (The STL 2.0?)

    AMF logo
    AMF logo
    AMF logo

    The AMF 3D printer file format was introduced in 2011 as a replacement for the STL file format. At the time it was dubbed “STL 2.0”. The aim was to address many of the shortcomings of the STL 3D printer file formats. As we already discussed, STL is bloated, slow, error-prone and incapable of storing color, material and texture information.

    To fix these issues, the ASTM was tasked to come up with a modern file format native to additive manufacturing. They eventually came up with the AMF 3D printer file format. It is an XML based format with native support for geometry, scale, color, materials, lattices, duplicates, and orientation. In all technical aspects, it is superior to the STL file format.

    That’s awesome, right? Or is it?

    The bad news is that the 3D printing industry has been rather slow to adopt the AMF format, in spite of its technical superiority. In the meantime, Microsoft came up with the 3MF format, which also aims to be an alternative to the STL 3D printer file format. They did things differently than the ASTM. Instead of keeping the development process to a select few experts, they set up a Consortium which includes many big names in the industry to govern the development and progress of the 3MF format. For a while, the industry was abuzz with excitement about this new file format.

    While we know that the STL 3D printer file format will be replaced eventually, we don’t know if AMF or 3MF will be the one to do it.

    We will come to the 3MF format soon. But before that, let’s look at the AMF 3D printer file format a little more deeply.

    AMF 3D printer file format features in a nutshell

    AMF addresses the issues in STL by using an XML format (human readable) with a hierarchy of five elements, object, material, texture, constellation, and metadata.

    The XML formatting ensures that the file is easy to read, write and process.

    It describes object surfaces with triangular meshes, just like STL. But there is one important difference. It allows curved triangles in addition to planar straight triangles – and it makes all the difference. Using curved triangles, you can describe a curved surface without using too many facets. This means that AMF can handle curved surfaces while staying lean on file size.

    The AMF format uses curved triangles, which means precise encoding without sacrificing file size
    The AMF format uses curved triangles, which means precise encoding without sacrificing file size
    The AMF format uses curved triangles, which means precise encoding without sacrificing file size

    It has support for all the modern requirements of 3D printing.  RGBA colors, graded colors and texture mappings are supported. It can natively handle mixed and graded materials, sub-structures, microstructures, porous, and stochastic materials.

    You can print dual material objects (like the one shown in the picture) using the AMF format
    You can print dual material objects (like the one shown in the picture) using the AMF format
    You can print dual material objects (like the one shown in the picture) using the AMF format

    The “constellation” feature allows manufacturers to specify the relative pattern of the objects within the file. This allows multiple objects to be arranged within the file, specifying their location and orientation.

    The AMF format allows you to put multiple objects in the same file using the constellation feature
    The AMF format allows you to put multiple objects in the same file using the constellation feature
    The AMF format allows you to put multiple objects in the same file using the constellation feature

    But to ensure that all 3D printers, old and new, can work with an AMF file, it allows printers to pick and choose information necessary for its operation. For example, if a printer is only capable of working with one material, multi-material information is simply ignored. This capability applies for all elements including color, texture, and composition.

    With the AMF 3D printer file format, you can specify the scale of the design in different units. The absence of this feature is a source of great frustration for STL users.

    Finally, it has extensive metadata fields including name, author, company, description, volume, tolerances, and much more.

    Shortcomings of the AMF 3D printer file format

    There is no doubt that AMF is much better suited to modern 3D printing than STL. But the biggest problem with using AMF today is its limited adoption.

    Some say that the 3D printer file format came out way too early. In 2011, the majority of manufacturers employed extrusion based processes which only used one material. They also didn’t produce full-color parts.

    This meant that they were perfectly happy with STL’s limited capabilities. Okay, not perfectly happy. You can never be perfectly happy with the STL format. But the problems caused by STL didn’t provide enough justification to change the entire pipeline to support AMF.

    As a result, adoption has been slow – very slow. The CAD software manufacturers didn’t help as they decided to wait until AMF reaches critical mass among equipment manufacturers.

    As of today, Solidworks and the Autodesk suite supports it. Stratasys has also signaled its cooperation, even though they might move away and focus on 3MF as they are a part of the 3MF Consortium. Online 3D printing services like Shapeways and Materialize has started accepting AMF files too.

    Among Slicers, Cura has support for AMF. Simplify3D still doesn’t.

    Maybe if we wait a bit longer, this is no longer going to be a problem. But to work with AMF right now, you need to ensure that all the software and hardware in your toolchain are capable of working with it.

    AMF became an ISO standard in 2013. It is widely held to have gone into a standards body too early as well, having some features not clearly defined and other features missing. Most importantly, they did not consult the main players in the 3D printing industry before turning it into an official standard- a mistake that has been capitalized on by its competitor, the 3MF format.

    Where to download, read, and edit AMF files?

    If you want to download AMF files directly, you are out of luck. There aren’t many AMF designs available for download on the internet. Users of AMF usually start with an STL file, import it as AMF and then add additional properties via an editor. The open source AMF Editor is perfect for this job, allowing users to import STL and edit the resulting AMF file.

    3D Printer File Format #4: 3MF -(A new road forward)

    Nice try, AMF. But the 3MF 3D printer file format might yet be the actual “STL killer”.

    As we discussed, the biggest weakness of the AMF format wasn’t technology. The technology is great and solves most of the problems people have with STL. The real problem was adoption.

    ASTM, the developers of the AMF standard, did not consult the key players in the 3D printing industry. Since they were not directly involved, the major brands were very slow in adopting the standard.

    Microsoft, the creators of the 3MF 3D printer file format, did it differently. For a few years, they developed the 3MF 3D printer file format internally (alongside Windows 8 and 10 development) with the goal of creating a seamless, high-quality experience for 3D printing consumers and manufacturers.

    Then they changed the game plan. In 2015, Microsoft announced the 3MF Consortium, a body that will govern further development and progress of the 3MF format. They included all the big names in 3D printing as founding members. Autodesk, Stratasys, Ultimaker, Materialize, Shapeways, 3D Systems, Dassault Systems, Siemens, HP,  GE, you name it – they are all in there!

    Founding members of the 3MF Consortium include all the big names in the 3D printing industry
    Founding members of the 3MF Consortium include all the big names in the 3D printing industry
    Founding members of the 3MF Consortium include all the big names in the 3D printing industry

    Thus, for the first time, we have a modern 3D printing native file format that is ratified by all the important stakeholders. If this translates to accelerated adoption, then 3MF would have solved both the technical and adoption problem.

    Not surprisingly, the 3MF 3D printer file format has been at the center of great publicity and buzz. If 3MF can solve the adoption problem faster than AMF (and it seems very likely that it will do so), it may easily become the next big 3D printer file format after STL.

    3MF 3D printer file format features in a nutshell

    Design goals

    The 3MF format is loosely inspired by the AMF format. According to the 3MF Consortium, the design goals of the 3MF 3D printer file format are:

    • Complete: Containing all of the necessary model, material and property information in a single archive
    • Human readable: Using common structures such as OPC, ZIP, and XML to ease development
    • Simple: A short, clear specification, making development easy and validation fast
    • Extensible: Leveraging XML namespaces allow for both public and private extensions while maintaining compatibility
    • Unambiguous: Clear language and conformance tests ensure a file is always consistent from digital to physical
    • Free: Access to and implementation of the 3MF specification is and will always be free of royalties, patents and licensing

    Features

    3MF is an XML-based format. The 3MF consortium decided the benefits of human readability for ease of development outweighed the performance gain from going to a binary format.

    It features geometry representation similar to STL (triangular meshes), but in a more compact and size-friendly format than AMF 3D printer file format. As an example of its space-saving features, multiple identical objects can be placed referencing the same mesh.

    Duplicate objects do not take up any additional space in the 3MF file format
    Duplicate objects do not take up any additional space in the 3MF file format
    Duplicate objects do not take up any additional space in the 3MF file format

    3MF ensures that the files are 100 % manifold with no cracks or overlapping triangles avoiding problems common in other formats standardized for animation and VR rather than 3D printing. The Holy Grail in 3D printing is having a ready-to-print file which requires no adjustment or fixing – and 3MF seems capable of doing just this.

    Geometry problems may become a thing of the past with the 3MF format
    Geometry problems may become a thing of the past with the 3MF format
    Geometry problems may become a thing of the past with the 3MF format

    Just like AMF, it can encode information about the model’s color, material, and textures.

    The 3MF 3D printer file format also introduces the concept of a “single archive” or “3D payload”. The file defines all standard, optional, and mandatory parts, with complete model information contained in a single archive. The payload consists of a 3D model(s), core document properties, digital signatures, 3D print settings known as “PrintTicket”, thumbnail images of all models, and 3D texture information.

    The goal is to make 3D printing as simple as document printing – select a printer from the list, choose options, and print.

    The application converts the model to .3MF and encapsulates it in an OpenXPS package. It’s then extracted by the print driver, converted into a readable format, and sent to the 3D printer. The .3MF file not only solves Microsoft’s print pipeline but also provides the same advantages for everyone across the board.

    Shortcomings of the 3MF 3D printer file format

    The 3MF 3D printer file format is still in its infancy and therefore does not enjoy widespread adoption. But since all the companies that need to adopt the format are already in the 3MF Consortium, adoption seems to be just a matter of time. You can check the level of adoption anytime.

    The biggest concern with the 3MF 3D printer file format is how free and open source it will be. Many people are skeptical because the format came from Microsoft. As we all know, Microsoft is notorious for its dubious and unfair business practices.

    Concerns were raised over whether 3MF will become a proprietary Trojan horse for larger companies to monopolize and grind out competition or would it be released as open source? Would this open the door to DRM issues, resulting in 3MF derivatives that would be subject to lawsuits?

    Fortunately, one of the design goals of the 3MF format says explicitly “Access to and implementation of the 3MF specification is and will always be free of royalties, patents and licensing”. Furthermore, Microsoft has made part of the code base available on GitHub. Anyone can contribute code to this repository.

    You can also get free access to the 3D Printing SDK and 3MF 3D printer file format specifications anytime by contacting [email protected]

    While 3MF has done many things right till now,  doubts still remain over patent details and source code rights backed by a consortium of conglomerates

    Where to download 3MF readers, writers and validators?

    You can access the code that reads STL/OBJ/3MF files and writes 3MF files on GitHub. In addition, a web service to validate and repair 3MF files is available here. You can find much more on this 3D printer file format in the official 3MF website.

    Other file formats used in 3D printing

    Almost all 3D file formats can be theoretically used for 3D printing
    Almost all 3D file formats can be theoretically used for 3D printing
    Almost all 3D file formats can be theoretically used for 3D printing

    So far, we have talked about the STL, OBJ, AMF and 3MF formats. These are the most important 3D printer file formats.

    But as we mentioned earlier, you can theoretically use any 3D file format for 3D printing. And people do use all kinds of formats. VRML, X3D, FBX, IGES, STEP, you name it. They have all been used for 3D printing at some point or another.

    But these file formats are not really made for 3D printing. So while a fringe continues to use them, they will most likely never see any critical adoption.

    Formats like VRML, X3D, and FBX are not designed for manufacturing: they have a lot of information on rendering effects such as lighting and fog but are missing true material properties and their implementations are often inconsistent.

    CAD formats like IGES and STEP are far too complicated. They include higher order representations like NURBS, which is not really necessary for 3D printing applications. As the AMF and 3MF formats have shown, all you need is triangles. IGES and STEP are also convoluted specifications and writing consistent parsers for import and export support is not so easy.

    This is why even though you will hear about people using these formats for 3D printing, all you really need to know is the big four: STL, OBJ, AMF, and 3MF. At least until another 3D printer file format comes out.

    Which 3D printer file format should you use?

    We have discussed four major 3D printer file formats with different capabilities and adoption. So which one should you choose?

    It depends. Every 3D printing manufacturer and consumer has different needs and technical debt. But here is a general guideline:

    Choose STL 3D printer file format if

    1. You want flexibility in terms of the software and hardware in your 3D printing pipeline. Almost any piece of software and hardware commonly used in 3D printing will support STL, so you will be able to use your favorite CAD programs, Slicers, and Repair tools without any problems.
    2. You want to be able to download plenty and plenty of ready-to-use 3D models.
    3. You require good documentation and support in case something goes really wrong.
    4. Your 3D printer has limited printing precision and is the precision bottleneck in your pipeline. So you don’t care too much about precise representations of your CAD model.

    Choose OBJ 3D printer file format if

    1. You do multi-color 3D printing.
    2. You want plenty of ready-to-use models available online.
    3. You do high precision 3D printing where it is important to have a precise representation of your CAD model.

    Choose AFM 3D printer file format if

    1. You want precision, multiple colors and multiple materials (including graded materials) all at once.

    Choose 3MF 3D printer file format if

    1. You want plug and play 3D printing. You wonder why 3D printing is so complicated and you are frustrated that you can’t simply press print from the CAD interface to start printing.
    2. You want to avoid frustrations related to bad geometry, model repair, and print failures.

    Conclusion

    At this point in time, STL, OBJ, AMF, and 3MF seem to be the most important 3D printer file formats. They all have their own strengths, weaknesses and have varying levels of compatibility with 3D printing software and hardware. STL is the predominant format, OBJ is preferred for multicolor printing, while formats like AMF and 3MF are trying to provide a more capable STL for modern 3D printing.

    For 3D printing consumers and manufacturers, it is imperative to know and understand the key differences between these formats. Don’t forget: the choice of format affects your toolchain, production efficiency and the quality of your prints.

    We hope this article helped you learn a bit more about your file format choices. If you found this article useful, share it with other 3D printing enthusiasts and spread the word. Do you have some questions or remarks? Let us know in the comments below!

    License: The text of „4 Most Common 3D Printer File Formats in 2019“ by All3DP is licensed under a Creative Commons Attribution 4.0 International License.

    Subscribe to updates from All3DP

    You are subscribed to updates from All3DP

    Website: LINK

  • STL File Format (3D Printing) – Simply Explained

    STL File Format (3D Printing) – Simply Explained

    Reading Time: 18 minutes

    What is an STL file? What is it good for? How does it work? We simply explain the STL file format for 3D printing in depth.

    Here’s a primer on what they are and how they work, the advantages and disadvantages of their use, plus alternative file formats to consider. In this article, we’re talking about the 3D printing file format, not about the Standard Template Library in C++.

    STL File Format (3D Printing) – Simply Explained

    1. What is an STL File?
    2. What does the file extension .STL stand for?
    3. How does the STL file format store a 3D model?
    4. How does an STL file store information about facets?
    5. Special rules for the STL format
    6. How is an STL file 3D printed?
    7. Is Every STL File 3D Printable?
    8. Optimizing an STL file for best 3D printing performance
    9. Are there any alternatives to the STL File Format?
    10. Advantages and disadvantages of using STL file format over other file formats
    11. Color in STL File Format
    12. STL file resources

    1. What is an STL File?


    In a nutshell, an STL file stores information about 3D models. This format describes only the surface geometry of a three-dimensional object without any representation of color, texture or other common model attributes.

    These files are usually generated by a computer-aided design (CAD) program, as an end product of the 3D modeling process. “.STL” is the file extension of the STL file format.

    The STL file format is the most commonly used file format for 3D printing. When used in conjunction with a 3D slicer, it allows a computer to communicate with 3D printer hardware.

    Since its humble beginnings, the STL file format has been adopted and supported by many other CAD software packages, and today is widely used for rapid prototyping, 3D printing, and computer-aided manufacturing. Hobbyists and professionals use it alike.

    2. What does the file extension .STL stand for?

    The true meaning of the file extension .STL has been lost to the mists of time.

    It’s widely believed to be an abbreviation of the word STereoLithography, though sometimes it is also referred to as “Standard Triangle Language” or “Standard Tessellation Language”.

    3. How does the STL file format store a 3D model?

    The main purpose of the STL file format is to encode the surface geometry of a 3D object. It encodes this information using a simple concept called “tessellation”.

    3.1 Tessellation

    Tessellation is the process of tiling a surface with one or more geometric shapes such that there are no overlaps or gaps. If you have ever seen a tiled floor or wall, that is a good real life example of tessellation.

    The tiled wall and floor are simple real life examples of tessellation
    The tiled wall and floor are simple real life examples of tessellation
    The tiled wall and floor are simple real life examples of tessellation

    Tessellation can involve simple geometric shapes or very complicated (and imaginative) shapes. Here are some examples of artistic tessellations due to the famous painter M. C. Escher. In fact, if you want to see more examples of amazing tessellations, we recommend that you check out his paintings.

    Two tessellation paintings by M. C. Escher
    Two tessellation paintings by M. C. Escher
    Two tessellation paintings by M. C. Escher

    3.2 The invention of the STL file format: exploiting tessellation to encode surface geometry

    Back in 1987, Chuck Hull had just invented the first stereolithographic 3D printer, and The Albert Consulting Group for 3D Systems were trying to figure out a way to transfer information about 3D CAD models to the 3D printer. They realized that they could use tessellations of the 3D model’s surface to encode this information!

    STL File Format
    STL File Format

    The basic idea was to tessellate the 2 dimensional outer surface of 3D models using tiny triangles (also called “facets”) and store information about the facets in a file.

    Let’s look at a few examples to understand how this works. For example, if you have a simple 3D cube, this can be covered by 12 triangles, as shown in the image below. As you can see, there are two triangles per face. Since the cube has six faces, it adds up to 12 triangles.

    If you have a 3D model of a sphere, then it can be covered by many small triangles, also shown in the same image.

    Tessellations of a cube and a sphere
    Tessellations of a cube and a sphere
    Tessellations of a cube and a sphere

    Here is another example of a very complicated 3D shape which has been tessellated with triangles.

    Tessellation of a 3D pig (source : i.materialize)
    Tessellation of a 3D pig (source : i.materialize)
    Tessellation of a 3D pig (source : i.materialize)

    The Albert Consulting Group for 3D Systems realized that if they could store the information about these tiny triangles in a file, then this file could completely describe the surface of an arbitrary 3D model. This formed the basic idea behind the STL file format!

    4. How does an STL file store information about facets?

    The STL file format provides two different ways of storing information about the triangular facets that tile the object surface. These are called the ASCII encoding and the binary encoding. In both formats, the following information of each triangle is stored:

    1. The coordinates of the vertices.
    2. The components of the unit normal vector to the triangle. The normal vector should point outwards with respect to the 3D model.

    An STL file stores the co-ordinates of the vertices and the components of the unit normal vector to the facets
    An STL file stores the co-ordinates of the vertices and the components of the unit normal vector to the facets
    An STL file stores the co-ordinates of the vertices and the components of the unit normal vector to the facets

    4.1 The ASCII STL file format

    The ASCII STL file starts with the mandatory line:

    solid name> 

    where is the name of the 3D model. Name can be left blank, but there must be a space after the word solid in that case.

    The file continues with information about the covering triangles. Information about the vertices and the normal vector is represented as follows:

    facet normal nx ny nz
    outer loop
        vertex v1x v1y v1z
        vertex v2x v2y v2z
        vertex v3x v3y v3z
    endloop
    endfacet

    Here, n is the normal to the triangle and v1, v2 and v3 are the vertices of the triangle. Co-ordinate values are represented as a floating point number with sign-mantissa-e-sign-exponent format, e.g., “3.245000e-002”.

    The file ends with the mandatory line:

    endsolid name>

    4.2 The binary STL file format

    If the tessellation involves many small triangles, the ASCII STL file can become huge. This is why a more compact binary version exists.

    The binary STL file starts with a 80 character header. This is generally ignored by most STL file readers, with some notable exceptions that we will talk about later. After the header, the total number of triangles is indicated using a 4 byte unsigned integer.

    UINT8[80] – Header
    UINT32 – Number of triangles

    The information about the triangles follow subsequently. The file simply ends after the last triangle.

    Each triangle is represented by twelve 32-bit floating point number. Just like the ASCII STL file, 3 numbers are for the 3D Cartesian co-ordinates of the normal to the triangle. The remaining 9 numbers are for the coordinates of the vertices (three each). Here’s how this looks like:

    foreach triangle
    REAL32[3] – Normal vector
    REAL32[3] – Vertex 1
    REAL32[3] – Vertex 2
    REAL32[3] – Vertex 3
    UINT16 – Attribute byte count
    end

    Note that after each triangle, there is a 2 byte sequence called the “attribute byte count”. In most cases, this is set to zero and acts a spacer between two triangles. But some software also use these 2 bytes to encode additional information about the triangle. We will see such an example later, where these bytes will be used to store color information.

    5. Special rules for the STL format

    The STL specification has some special rules for tessellation and for storing information.

    5.1 The vertex rule

    The vertex rule states that each triangle must share two vertices with its neighboring triangles.

    This rule is to be respected when tessellating the surface of the 3D object.

    Here’s an example of a valid and invalid tessellation, according to this rule. The figure on the left violates this rule and is an invalid tessellation, while the figure on the right is conformant and a valid tessellation.

    Vertex rule for STL files: The figure on the left is an invalid tessellation, while the figure on the right is acceptable.
    Vertex rule for STL files: The figure on the left is an invalid tessellation, while the figure on the right is acceptable.
    Vertex rule for STL files: The figure on the left is an invalid tessellation, while the figure on the right is acceptable.

    5.2 The orientation rule

    The orientation rule says that the orientation of the facet (i.e. which way is “in” the 3D object and which way is “out”) must be specified in two ways.

    First, the direction of the normal should point outwards. Second, the vertices are listed in counterclockwise order when looking at the object from the outside (right-hand rule).

    The orientation of each facet is specified in two ways: by the direction of the normal vector and by the ordering of the vertices
    The orientation of each facet is specified in two ways: by the direction of the normal vector and by the ordering of the vertices
    The orientation of each facet is specified in two ways: by the direction of the normal vector and by the ordering of the vertices

    This redundancy exists for a reason. It helps ensure consistency of the data and spot corrupt data. A software can, for example, calculate the orientation from the normal and subsequently from the vertices and verify whether they match. If it doesn’t, then it can declare the STL file to be corrupt!

    5.3 The all positive octant rule

    The all positive octant rule says that the coordinates of the triangle vertices must all be positive.

    This implies that the 3D object lives in the all-positive octant of the 3D Cartesian coordinate system (and hence the name).

    The rationale behind this rule is to save space. If the 3D object was allowed to live anywhere in the coordinate space, we would have to deal with negative co-ordinates. To store negative co-ordinates, one needs to use signed floating point numbers. Signed floating point numbers require one additional bit to store the sign (+/-). By ensuring that all coordinates are positive, this rule makes sure that we are able to use unsigned numbers for the coordinates and save a bit for every coordinate value we store.

    Octant I (red) is the all positive octant
    Octant I (red) is the all positive octant
    Octant I (red) is the all positive octant

    5.4 The triangle sorting rule

    The triangle sorting rule recommends that the triangles appear in ascending z-value order.

    This helps Slicers slice the 3D models faster. However, this rule is not strictly enforced.

    6. How is an STL file 3D printed?

    cura slicer software
    cura slicer software

    For 3D printing, the STL file has to be opened in a dedicated slicer. What’s a slicer? It’s a piece of 3D printing software that converts digital 3D models into printing instructions for your 3D printer to create an object.

    The slicer chops up your STL file into hundreds (sometimes thousands) of flat horizontal layers based on the settings you choose and calculates how much material your printer will need to extrude and how long it will take to do it.

    All of this information is then bundled up into a GCode file, the native language of your 3D printer. Slicer settings do have an impact the quality of your print so it’s important to have the right software and settings to get you the best quality print possible.

    Once the GCode has been uploaded to your 3D printer, the next stage is for those separate two-dimensional layers to be reassembled as a three-dimensional object on your print-bed. This is done by depositing a succession of thin layers of plastics, metals, or composite materials, and building up the model one layer at a time.

    More information: 3D Slicer Settings for Beginners – 8 Things You Need to Know

    7. Is Every STL File 3D Printable?


    Unfortunately not. Only a 3D design that’s specifically made for 3D printing is 3D printable. The STL file is just the container for the data, not a guarantee that something is printable.

    3D models suitable for 3D printing need to have a minimum wall thickness and a “watertight” surface geometry to be 3D printable. Even if it’s visible on a computer screen, it’s impossible to print something with a wall thickness of zero.

    There’s also the consideration of overhanging elements on the model. Look at the ALL3DP logo in the picture above; if the model is printed upright, then overhanging elements with more than a 45-degree angle will require supports (which you can see in green).

    When downloading an STL file that you haven’t created yourself, it’s worth taking the time to verify that it is indeed 3D printable. This will save you a lot of time and frustration (and wasted filament).

    Further reading: MeshMixer Tutorial for 3D Printing Beginners and 9 Important 3D Printing Concepts Everyone Should Know

    8. Optimizing an STL file for best 3D printing performance

    The STL file format approximates the surface of a CAD model with triangles. The approximation is never perfect, and the facets introduce coarseness to the model.

    The perfect spherical surface on the left is approximated by tessellations. The figure on the right uses big triangles, resulting in a coarse model. The figure on the center uses smaller triangles and achieves a smoother approximation (source: i.materialize)
    The perfect spherical surface on the left is approximated by tessellations. The figure on the right uses big triangles, resulting in a coarse model. The figure on the center uses smaller triangles and achieves a smoother approximation (source: i.materialize)
    The perfect spherical surface on the left is approximated by tessellations. The figure on the right uses big triangles, resulting in a coarse model. The figure on the center uses smaller triangles and achieves a smoother approximation (source: i.materialize)

    The 3D printer will print the object with the same coarseness as specified by the STL file. Of course, by making the triangles smaller and smaller, the approximation can be made better and better, resulting in good quality prints. However, as you decrease the size of the triangle, the number of triangles needed to cover the surface also increases. This leads to gigantic STL file which 3D printers cannot handle. It’s also a pain to share or upload huge files like that.

    It is therefore very important to find the right balance between file size and print quality. It does not make sense to reduce the size of the triangles ad infinitum because at some point your eye is not going to be able to distinguish between the print qualities.

    Most CAD software offer a couple of settings when exporting STL files. These settings control the size of the facets, and hence print quality and file size. Let’s dig into the most important settings and find out their optimum values.

    8.1 Chord height or tolerance

    Most CAD software will let you choose a parameter called chord height or tolerance. The chord height is the maximum distance from the surface of the original design and the STL mesh. If you choose the right tolerance, your prints will look smooth and not pixelated. It’s quite obvious that the smaller the chord height, the more accurately the facets represent the actual surface of the model.

    The chord height is the height between the STL mesh and the actual surface (source : www.3dhubs.com)
    The chord height is the height between the STL mesh and the actual surface (source : www.3dhubs.com)
    The chord height is the height between the STL mesh and the actual surface (source : www.3dhubs.com)

    It is recommended to set the tolerance between 0.01 milimeters to 0.001 milimeters. This usually results in good quality prints. There is no point in reducing this any further, as 3D printers cannot print with that level of detail.

    8.2 Angular deviation or angular tolerance

    Angular tolerance limits the angle between the normals of adjacent triangles. The default angle is usually set at 15 degrees. Decreasing the tolerance (which can range to 0 to 1) improves print resolution.

    Angular tolerance is the angle between the normals of adjacent triangles (source : www.3dhubs.com)
    Angular tolerance is the angle between the normals of adjacent triangles (source : www.3dhubs.com)
    Angular tolerance is the angle between the normals of adjacent triangles (source : www.3dhubs.com)

    The recommended setting for this parameter is 0.

    8.3 Binary or ASCII?

    Finally, you have a choice of exporting the STL file in binary or ASCII format. The binary format is always recommended for 3D printing since it results in smaller file sizes. However, if you want to manually inspect the STL file for debugging, then ASCII is preferable because it is easier to read.

    9. Are there any alternatives to the STL File Format?

    3MF mesh
    3MF mesh

    The STL file format is not the only format used in 3D printing. There are over 30 file formats for 3D printing. Most important is the OBJ file format, which can store color and texture profiles. Another option the is Polygon file format (PLY), which was originally used for storing 3D scanned objects.

    More recently, there have been efforts to launch a new file type by The 3MF Consortium, which is proposing a new 3D printing file format called 3MF. They claim it will streamline and improve the 3D printing process.

    To implement it, Microsoft has partnered up companies like Autodesk, HP, and Shapeways to make their vision a reality. More details on the 3MF Consortium can be read on their website, together with preliminary documentation about the 3MF file type on their GitHub page. It’s far too early to say whether this will become widely adopted, however.

    10. Advantages and disadvantages of using STL file format over other file formats

    Since there are many 3D printing file formats, the obvious question is : which one should you use for your prints? The answer, as it turns out,  depends a lot on your use case.

    10.1 When not to use an STL file

    As we saw earlier, the STL file format cannot store additional information such as color, material etc. of the facets or triangles. It only stores information about the vertices and the normal vector. This means that if you want to use multiple colors or multiple materials for your prints, then the STL file format is not the right choice. The OBJ format is a popular format enjoying good support which has a way to specify color, material etc. Therefore, this is the right choice for this task.

    10.2 When to use an STL file

    On the other hand, if you want to print with a single color or material, which is most often the case, then STL is better than OBJ since it is simpler, leading to smaller file sizes and faster processing.

    10.3 Other advantages of the STL file format

    Universal: Another big advantage of the STL file format is that it is universal and supported by nearly all 3D printers. This cannot be said for the OBJ format, even though it enjoys reasonable adoption and support as well. The VRML, AMF and 3MF formats are not widely supported at this point of time.

    Mature ecosystem: Most 3D printable models you can find on the internet are in the STL file format. The existence of this ecosystem, combined with STL-based software investments made by 3D printer manufacturers, has given rise to a large user-base that’s heavily invested in the format. This means there’s plenty of third party software dealing with STL files, which is not the case with the other file formats.

    10.4 Some disadvantages of the STL file format

    There are some glaring disadvantages to using STL as well. As the fidelity of printing processes embraces micron-scale resolution, the number of triangles required to describe smooth curved surfaces can result in massive file sizes. It’s also impossible to include metadata (such as authorship and copyright information) in an STL file.

    10.5 Verdict

    If your 3D printing needs are simple, then perhaps there is no reason to move away from the STL file format. However, for more advanced prints using multiple material and color, it is perhaps advisable to try the OBJ or other available formats.

    11. Color in STL File Format

    3d selfies
    3d selfies

    In the last section, we said that the STL file format cannot handle multi-color models. The reason the STL file format lacks color information is simple. When rapid prototyping evolved in the 1980s, no one thought of color printing. Nowadays, 3D printing materials and processes have evolved rapidly. Some allow you to print in full-color – just think of sandstone 3D selfies, as pictured above.

    However it’s not completely fair to say that STL cannot handle colors. It turns out that there are non-standard versions of the STL format that are indeed capable of carrying color information.

    For example, the VisCAM and Solidview software packages use the “attribute byte count”  at the end of every triangle to store a 15-bit RGB color using the following system:

    • bits 0 to 4 for blue (0 to 31),
    • bits 5 to 9 for green (0 to 31),
    • bits 10 to 14 for red (0 to 31),
    • bit 15 is 1 if the color is valid, or 0 if the color is not valid (as with normal STL files).

    The Materialize Magics software, on the other hand, uses the 80-byte header in the binary format to represent the overall color of the 3D object. The color is specified by including the ASCII string “COLOR=” followed by four bytes representing red, green, blue and alpha channel (transparency) in the range 0–255. This base color can also be overridden at each facet using the “attribute byte count” bytes.

    12. STL file resources

    If you have read so far, congratulations! You now know quite a bit about STL and can be undoubtedly called an STL file format expert.

    In this final section, we will share some awesome software and resources that you can use for downloading, viewing, editing and repairing STL files.

    12.1 Downloading STL files

    STL File Format
    STL File Format

    There are many repositories, marketplaces and search engines on the web containing literally millions of free STL files. You can refer to our regularly updated list — 35 Best Sites for Free STL Files & 3D Printer Models of 2018  — or you can choose one of these models to get started: 50 Cool Things to 3D Print in Summer 2018

    12.2 Opening and viewing an STL file

    STL File Format
    STL File Format

    Fortunately, opening an STL file is not too complicated. There are several free STL file viewers for this purpose, which you can either use online or as a desktop application. Refer to our dedicated guide here: 20 Best Free STL File Viewer Tools of 2018

    12.3 Editing and converting an STL file

    STL File Format
    STL File Format

    Yes, it is entirely possible to edit an STL file and convert the STL file to another file format. Because the format is open, there is nothing to prevent you from changing the contents of a file. Actually, the process of editing is quite easy. We have a dedicated article on this topic: 7 Free STL Editors + How to Edit and Repair STL Files 

    12.4 Repairing an STL file

    STL File Format
    STL File Format

    Remember the section where we discussed the rules that STL files must satisfy? For example, adjacent triangles must share two vertices and the right hand rule applied on the vertices should result in the same orientation as the normal vector. If these conditions are violated in an STL file, then it is broken or corrupt.

    There are several programs which can help with repairing a broken STL file. For example, Netfabb Basic is a great tool for repairing the most common STL file problems. You find more information on these programs in our article: 24 Best Free 3D Printing Software Tools of 2018

    13. Conclusion

    In conclusion, we have learned about how the STL file format encodes the layout of 3D models. We discussed how to optimize STL files for the best 3D printing quality. We talked about how the STL file format compares with the other popular 3D printing file format .OBJ and when to use each of these formats. Finally, we shared some resources using which you can download, view, edit and repair STL files.

    We hope that an in-depth understanding of the STL file format helps you become a more knowledgeable user of your 3D printer. If you found this article useful, share it with other 3D printing enthusiasts and spread the word. Do you have some questions or remarks? Let us know in the comments below!

    License: The text of „STL File Format (3D Printing) – Simply Explained“ by All3DP is licensed under a Creative Commons Attribution 4.0 International License.

    Subscribe to updates from All3DP

    You are subscribed to updates from All3DP

    Website: LINK

  • 8 Most Common 3D File Formats – Simply Explained

    8 Most Common 3D File Formats – Simply Explained

    Reading Time: 24 minutes

    Which 3D file formats are there? How do they compare? What should you use? We simply explain the 8 most common 3D file formats used today: STL, OBJ, FBX, COLLADA, 3DS, IGES; STEP, and VRML/X3D.

    A 3D file format is used for storing information about 3D models. You may have heard of the most popular formats STL, OBJ, FBX, COLLADA etc. They are widely used in 3D printing, video games, movies, architecture, academia, medicine, engineering, and earth sciences. Each industry has its own popular 3D file formats for historical and practical reasons. We will learn about 3D file formats and take a deep dive into the 8 most common 3D file formats in this article.

    You can also jump to the most popular 3D file formats directly.

    What is a 3D File Format?

    A 3D model of a pigeon which contains color information, light sources (notice the shadow) and animations

    The basic purpose of a 3D file format is to store information about 3D models as plain text or binary data. In particular, they encode the 3D model’s geometry, appearance, scene, and animations.

    The geometry of a model describes its shape.  By appearance, we mean colors, textures, material type etc. The scene of a 3D model includes the position of light sources, cameras, and peripheral objects. Finally, animation defines how a 3D model moves.

    However, not all 3D file formats store all of this data. 3D file formats such as STL store only the 3D model’s geometry and ignores all other attributes. On the other hand, the format COLLADA stores everything.

    STL and COLLADA are just two of the many 3D file formats that people use. We estimate that there are hundreds of 3D file formats currently being used in the wild!

    How Many 3D File Formats are there?

    There are hundreds of 3D file formats
    There are hundreds of 3D file formats
    There are hundreds of 3D file formats

    The problem with 3D file formats is that there are literally hundreds of them. Every CAD software manufacturer such as AutoDesk and Blender has their own proprietary format which is optimized for their software. So if you use AutoCAD, you get a DWG file. If you use Blender, you get a BLEND file.

    Proprietary 3D File Formats Hinder Interoperability

    However, the presence of so many proprietary file formats is a big problem. Suppose you use AutoCAD (which is an AutoDesk product) and your friend uses Blender. Suppose that you also want to share your 3D model with your friend.

    This is not so easy. Your AutoCAD software gives you a DWG file because it is the native AutoCAD format. But your friend’s software, Blender, can only work with a BLEND file. This means that the two of you cannot work on the same 3D model.

    Neutral 3D File Formats Solve this Problem

    You often need to share your 3D models with your clients, collaborators and machines. Neutral formats are perfect for this task.
    You often need to share your 3D models with your clients, collaborators and machines. Neutral formats are perfect for this task.
    You often need to share your 3D models with your clients, collaborators and machines. Neutral formats are perfect for this task.

    To solve the problem of interoperability, neutral or open source formats were invented as intermediate formats for converting between two proprietary formats. Naturally, these formats have become hugely popular now.

    Two famous examples of neutral formats are STL (with a .STL extension) and COLLADA (with a .DAE extension).  They are widely used to share models across CAD software. If you want to share your 3D model, you convert the DWG file to a COLLADA file in a process called exporting and give your friend the COLLADA file. Your friend takes the COLLADA file and imports it into Blender, where the COLLADA file is converted to the native BLEND format. This way, you can continue to use different software and collaborate with others.

    Proprietary vs. neutral is one of the most important dichotomies in the world of 3D file formats. Nowadays, most 3D modeling software supports reading and writing popular neutral formats.  In addition, most software also support reading and writing to a subset of proprietary formats that are so popular that they cannot be ignored. We will discuss 8 such 3D file formats in this article. Here is the list, where the 3D file formats are marked with their type.

    3D file format Type
    STL Neutral
    OBJ ASCII variant is neutral, binary variant is proprietary
    FBX Proprietary
    COLLADA Neutral
    3DS Proprietary
    IGES Neutral
    STEP Neutral
    VRML/X3D Neutral

    But before we discuss each these formats in detail, we will first take a look at the general features of a 3D file format and discuss the important things you should keep in mind when selecting a format for your project.

    General Features of 3D File Formats

    As we discussed earlier, the general features of a 3D file format are:

    1. Encoding geometry of the 3D model
    2. Storing appearance of the 3D model
    3. Saving scene information
    4. Encoding animations

    1. 3D File Formats: Encoding Geometry of the 3D Model

    Every 3D model has a unique geometry and the capability of encoding this geometry can be considered to be the most basic feature of a 3D file format. Every 3D file format supports this — otherwise, they wouldn’t be considered 3D file formats.

    There are three distinct ways of encoding surface geometry, each with their corresponding strengths and weaknesses. They are called approximate mesh, precise mesh and constructive solid geometry (CSG).

    1.1 3D File Format Geometry: The Approximate Mesh

    The fine trinaglar mesh is approximately encoding the surface geometry of this 3D model (source : i.materialize)
    The fine trinaglar mesh is approximately encoding the surface geometry of this 3D model (source : i.materialize)
    The fine triangular mesh is approximately encoding the surface geometry of this 3D model (source: i.materialize)

    In this encoding, the surface of a 3D model is first covered with a mesh of tiny imaginary polygons. Triangles are most commonly used shape. The vertices of the covering triangles and the outward normal vector to the triangles are stored in the file. This represents the surface geometry of the target model.

    The vertices and the normal to each triangular facet making up the mesh is stored in the file.
    The vertices and the normal to each triangular facet making up the mesh is stored in the file.
    The vertices and the normal to each triangular facet making up the mesh is stored in the file.

    The process of covering a surface with non-overlapping geometric shapes is also known as “tessellation”. Hence these file formats are also called tessellated formats.

    The triangles approximate the smooth geometry of the surface. Hence this is an approximate format. The approximation gets better as the triangles get smaller. However, the smaller the triangles, the larger the number of triangles you need to tile the surface. This implies that the file needs to store a larger number of vertices and normal vectors. Thus better approximations come at the cost of increasing file size.

    The perfect spherical surface on the left is approximated by tessellations. The figure on the right uses big triangles, resulting in a coarse model. The figure on the center uses smaller triangles and achieves a smoother approximation (source: i.materialize)
    The perfect spherical surface on the left is approximated by tessellations. The figure on the right uses big triangles, resulting in a coarse model. The figure on the center uses smaller triangles and achieves a smoother approximation (source: i.materialize)
    The perfect spherical surface on the left is approximated by tessellations. The figure on the right uses big triangles, resulting in a coarse model. The figure on the center uses smaller triangles and achieves a smoother approximation (source: i.materialize)

    Approximate or tessellated formats are best used in situations where you don’t need ultrafine resolutions of the 3D model. A good example is 3D printing. 3D printers cannot print beyond a certain resolution and therefore, this type of 3D printing file formats are perfect for the job. In fact, the most popular 3D printing file format STL indeed belongs to this class of file formats.

    1.2 3D File Format Geometry 2: The Precise Mesh

    An example of NURBS patches encoding a curved surface geometry precisely. The red dots are the control points of the NURBS.
    An example of NURBS patches encoding a curved surface geometry precisely. The red dots are the control points of the NURBS.
    An example of NURBS patches encoding a curved surface geometry precisely. The red dots are the control points of the NURBS.

    There are, of course, situations where an approximate encoding of the 3D model is not enough and one needs precise encoding of the surface geometry. For example, when constructing the body of an airplane, in particular the round hull, a discrete polygonal mesh won’t work. Although the model might look good at small resolutions,  the flat faces and sharp corners will become apparent up close.

    Precise file formats get around this problem by using Non-Uniform Rational B-Spline patches (or NURBS) instead of polygons. These parametric surfaces are made up of a small number of weighted control points and a set of parameters called knots. From knots, a surface can be computed mathematically by smoothly interpolating over the control points.

    These surfaces look smooth in any scale and can replicate the surface geometry of a small part of a 3D model in exact detail. However, there’s always a trade off. While the precise mesh is exact at any resolution, they render slower and should be avoided in applications where speedy rendering is important.

    1.3 3D File Format Geometry 3: Constructive Solid Geometry aka CSG

    Finally, there’s yet another type of file format that does not involve meshes at all. In this format, 3D shapes are built by performing boolean operations (addition or subtraction) of primitive shapes like cubes, spheres etc. For example, to make a dumbbell, one can simply take two spheres and add a connecting cylindrical rod between. If you have ever used a CAD software, then you have seen this in action, because most of them use this principle.

    Constructive solid geometry in action during the construction of a dumbbell in Tinkercad
    Constructive solid geometry in action during the construction of a dumbbell in Tinkercad
    Constructive solid geometry in action during the construction of a dumbbell in Tinkercad

    Constructive solid geometry is great for designing 3D models and is very user-friendly. Another big advantage is that each individual editing step (addition, subtraction, transformations of primitive shapes) is stored in this 3D file format. Therefore, one can undo and redo any step at any time.

    Clearly, if you convert this format to a mesh-based format,  you will lose the information about the individual editing steps.

    2. 3D File Formats: Appearance

    The second important feature of 3D file formats is the ability to store appearance related information. In many applications, the appearance of the 3D model is of prime importance. For example, no one wants to play Need For Speed with dull, colorless cars. The cars better be colorful and shiny! The color and shine of a car are examples of appearance related properties. In simple terms, appearance describes surface properties such as material type, texture, color etc. This decides how the model looks like when it is rendered.

    Information about appearance can be encoded in two different ways.

    2.1 3D File Format Appearance: Texture mapping

    Illustration of how texture mapping is used to encode color and texture information of one side of a cube
    Illustration of how texture mapping is used to encode color and texture information of one side of a cube
    Illustration of how texture mapping is used to encode color and texture information of one side of a cube

    In texture mapping, every point in the 3D model’s surface (or the polygonal mesh)  is mapped to a 2-dimensional image. The coordinates of the 2D image have attributes like color and texture. When rendering the 3D model, every surface point is assigned a coordinate in this 2-dimensional image. The vertices of the mesh are mapped first. The other points are then assigned coordinates by interpolating between the coordinates of the vertices.

    Most 3D file formats support texture mapping. In this case, the 2D image containing texture information needs to be stored within the same file or separately in a different file.

    2.2 3D File Format Appearance: Face attributes

    Another common way of storing texture information is to assign each face of the mesh a set of attributes. Common attributes include color, texture and material type.

    In addition, a surface can have a specular component indicating the color and intensity of true mirror reflections of light sources and other nearby surfaces. Surfaces can be transparent or semi transparent. This is encoded by a transmissive component describing the color and intensity of light that passes through the surface. Transparent surfaces usually distort light passing through them. This distortion is represented by an index of refraction property, associated with the model’s material type.

    A transparent 3D model of a chair. The transparency is encoded as a property of each individual facet.
    A transparent 3D model of a chair. The transparency is encoded as a property of each individual facet.
    A transparent 3D model of a chair. The transparency is encoded as a property of each individual facet.

    3.3D File Formats: Scene information

    The capability of encoding information about the scene is another important feature of some 3D file formats. The scene describes the layout of the 3D model in terms of cameras, light sources, and other nearby 3D models.

    The camera is defined by four parameters: magnification and principal point, location, the direction the camera is facing and an arrow indicating which direction is “up”.

    The encoding of the light source depends on the nature of the light source. In the simplest case of a point source, we simply need to store the source’s location, its color, and its intensity.

    Some 3D file formats have the capability to encode information about lights, as shown in this image.
    Some 3D file formats have the capability to encode information about lights, as shown in this image.
    Some 3D file formats have the capability to encode information about lights, as shown in this image.

    The spatial relationship between the 3D model and other nearby models is also sometimes stored. This is particularly important if the model is made of several parts, which needs to be laid out in a certain way to make up the scene.

    It is worth noting that most 3D file formats often do not support scene information. This stems from practical reasons. When it comes to layout, one can always ensure that the parts of the model are placed in the correct location before saving the model. In this case, the file format does not need to explicitly define the relationships between the parts. The camera and light attributes can also be ignored since it is expected that the end users will change the camera position anyway as they navigate around a scene.

    4. 3D File Formats: Animation

    Some 3D file formats have the capability to store animations of a 3D model. This is very useful in game designing or movie making where animations are used heavily.

    4.1 3D File Format Animation: Skeletal animation

    The most popular way of animating a 3D model is called “skeletal animation”. In skeletal animation, each model is associated with an underlying skeleton. The skeleton is made out of a hierarchy of virtual “bones”. The movement of bones higher in the hierarchy (parent bones) affect the bones lower in the hierarchy (child bones). This is similar to the human body, where a movement of the shin bone affects the position of the toes.

    It is important to understand that these bones are not real bones, but merely mathematical constructs that help an animator define movements in a model. The bones are typically represented by a 4×3 matrix where the first three columns represent rotation, scale, and shear of the bone.  The last column is the translation relative to the parent’s world space.

    In addition to the transformation, each bone is given a unique ID and is associated with a subset of the mesh encoding the surface geometry. This subset moves along with the virtual bone.

    Bones are connected by “joints”. Joints introduce constraints in the possible transformations associated with a bone, thereby restricting how a bone can move in relation to its parent. This is again similar to the human body – the elbow may only rotate around a specified axis while the ball joint between the thigh and pelvis allow rotation around all axis.

    Here is a cool and short video explaining how bones and joints can be used to create basic animations in Cinema4D.

    4.2 3D File Format Animation: Techniques of animation

    There are many different techniques of storing animations of skeletal structures. The most important techniques are forward kinematics, inverse kinematics, and keyframes. You can read much more about animation techniques and encodings in this Bachelor thesis by Marcus Lundgren.

    Which 3D File Format Should you use for Exporting and Sharing your Model?

    We are now in good position to answer this question.

    Every 3D modeling software allows exporting into many different 3D file formats. However, which one you choose for your application depends a lot on which features you need for your work and the software you are going to use. Since we are now familiar with the different features of 3D file formats, we are ready to take an abstract look at the different considerations that goes behind the choice of a particular file format. There are three major considerations.

    1. 3D File Formats: Which Features do you Need?

    3D file formats are used in many different sectors and industries and each has their own specific needs and requirements. Depending on which industry you are in, you might want different sets of features in your ideal 3D file format. To explain what we mean, let’s discuss three major industries using 3D file formats.

    1.1 3D File Formats for 3D Printing

    The 3D printing industry uses approximate file formats. Capability for storing appearance is required in some cases.
    The 3D printing industry uses approximate file formats. Capability for storing appearance is required in some cases.
    The 3D printing industry uses approximate file formats. Capability for storing appearance is required in some cases.

    In 3D printing, high precision is not a requirement because the current printers cannot print beyond a certain resolution. Therefore, file formats using the approximate encoding of the surface geometry are ideal for the job. STL is such a file format and is the most popular 3D printing format to date.

    STL, however, cannot store information related to appearance. So if you want to print a multicolor model, then you can’t use STL anymore because it cannot store color or material related information. There are other file formats such as OBJ or AMF which can store appearance related information. Thus these formats (OBJ being the most popular) are the best choice for multi-color models.

    1.2 3D File Formats for Graphics Based Applications (Games and Movies)

    Games require fast rendering, support for rich color and textures, and animation.
    Games require fast rendering, support for rich color and textures, and animation.
    Games require fast rendering, support for rich color and textures, and animation.

    In graphics based applications, the requirements are different from 3D printing. Since we are way past the black and white era, 3D models used in games and movies require rich colors and texturing. Games and movies also need to support animation. In addition, all graphics based applications usually demand high rendering speeds. Therefore, the best formats for this kind of job would be something that uses approximate geometry to achieve fast rendering, can encode appearance and support animation. The FBX and COLLADA formats check all these boxes and hence are ideal for graphics applications.

    1.3 3D File Formats for High-Precision Engineering

    3D modeling in the area of aeronautics engineering requires precise encoding of surface geometry
    3D modeling in the area of aeronautics engineering requires precise encoding of surface geometry
    3D modeling in the area of aeronautics engineering requires precise encoding of surface geometry

    The name says it all. In the discipline of high precision engineering such as aerospace engineering, the 3D models need to be smooth and precise at any scale. Therefore, formats using precise geometry such as IGES or STEP are going to be the best fit for this task.

    Since the features of a 3D file format is a crucial consideration in identifying the ideal format, we have provided a table of features supported by the top 8 3D file formats in the appendix to this article. You can take a look at it when you need to make a decision.

    2. Which Software Pipeline are you Going to Use?

    The next important consideration is the software pipeline that you will use for your task. Not all software support importing and exporting of all 3D file formats. You should choose a file format that is supported by your software of choice.

    For your reference, we have included a table of file formats supported by the commonly used 3D modeling software and engines in the second appendix to the article. This is another resource you can consult when deciding on a file format.

    Market share of the most popular 3D modeling software
    Market share of the most popular 3D modeling software
    Market share of the most popular 3D modeling software

    3. Which Software does your collaborator use?

    The file format that you choose not only needs to fit into your pipeline, but also into your collaborator’s pipeline. If you know your collaborators, ask them what they use and discuss which file formats fits well into both your and your collaborator’s workflow.

    If you don’t know your collaborators, then it’s best to play it safe.  Just choose the most popular format that satisfies the previous requirements. It’s best if the format is neutral and not proprietary.

    Top 8 3D File Formats in Detail

    So far, we have discussed 3D file formats at an abstract and high level. We have discussed the different features that 3D file formats implement and how you can pick the ideal 3D file format based on this knowledge. Now, let’s take a look at the 8 most important 3D file formats and find out which of these features they support, how popular they are and which industries use them the most.

    If you are looking for information about a certain 3D file format, you can skip the others and jump right to that 3D file format.

    1. STL
    2. OBJ
    3. FBX
    4. COLLADA
    5. 3DS
    6. IGES
    7. STEP
    8. VRML and X3D

    3D Files Format #1: STL

    STL (STereoLithography) is one of the most important neutral 3D file formats in the domain of 3D printing, rapid prototyping, and computer aided manufacturing. It is native to the stereolithography CAD software made by 3D Systems. The corresponding file extension is .STL.

    STL is one of the oldest 3D file formats and was created in 1987 by Chuck Hull, who is currently the CTO at 3D Systems. He also invented the world’s first stereolithographic 3D printer. The STL file format was created subsequently as a simple way of transferring information about 3D CAD models to this 3D printer.

    Main characteristics

    STL encodes the surface geometry of a 3D model approximately using a triangular mesh. Since it was one of the first 3D file formats to exploit tessellations as a way of encoding surface geometry, it has several backronyms such as “Standard Tessellation Language” and “Standard Triangle Language”.

    STL ignores appearance, scene, and animations. It is one of the simplest and leanest 3D file formats available today. The STL format specifies both ASCII and binary representations. Binary files are more common since they are more compact.

    Popularity and future prospects

    Ever since its invention, the STL file format has been rapidly adopted by the rapid prototyping, 3D printing, and computer-aided manufacturing industries. It is still the most widely used file format in 3D printing.

    The reign of STL over 3D printing might end soon, however. In recent years, 3D printing technology has advanced rapidly. The fidelity of printing processes are now reaching micron level accuracy. Since STL is an approximate format, it needs very small triangular facets to reach this resolution, producing huge and unwieldy files in the process. Secondly, many 3D printers now allow printing in full color, a technology that’s expected to become more widespread in the near future. STL can’t encode color information and is useless for this purpose. For these reasons, the reign of STL over the 3D printing world may not last long and formats like OBJ, 3MF, or AMF might replace it.

    Which industries use it?

    3D printing, rapid prototyping, computer aided manufacturing. To know more about the STL file format, you can see our detailed article on STL.

    3D Files Format #2: OBJ

    The OBJ file format is another neutral heavyweight in the field of 3D printing. It is also widely used in 3D graphics. It was first developed by Wavefront Technologies for its Advanced Visualization animation package. The 3D file format has the extension .OBJ.

    Main characteristics

    The OBJ file format supports both approximate and precise encoding of surface geometry. When using the approximate encoding, it doesn’t restrict the surface mesh to triangular facets. If the user wants, he can use polygons like quadrilaterals. When using precise encoding, it uses smooth curves and surfaces such as NURBS.

    The OBJ format can encode color and texture information. This information is stored in a separate file with the extension .MTL (Material Template Library). It does not support any kind of animation. The format specifies both ASCII and binary encodings, but only the ASCII encoding is open source.

    Popularity and future prospects

    The OBJ file format, by virtue of being neutral or open, is one of the most popular interchange formats for 3D graphics. It is also gaining traction in the 3D printing industry as the industry moves towards full color printing.

    Which industries use it?

    3D graphics, 3D printing

    For more information on the OBJ file format, you can see its Wikipedia page.

    3D Files Format #3: FBX

    FBX is a proprietary file format which is widely used in the film industry and video games. It was originally developed by Kaydara but was bought by Autodesk in 2006. Ever since the acquisition, AutoDesk has used FBX as an interchange format for its own portfolio which includes AutoCAD, Fusion 360, Maya, 3DS Max and other software packages.

    Main characteristics

    The FBX file format supports geometry and appearance related properties like color and textures. It also supports skeletal animations and morphs. Both binary and ASCII files are supported.

    Popularity and future prospects

    FBX is one of the most popular choices for animation. In addition, it is also used as an exchange format which facilitates high fidelity exchange between 3DS Max, Maya, MotionBuilder, Mudbox and other proprietary software.

    Which industries use it?

    Video game industry and film industry. To know more about the FBX file format, you can see its Wikipedia page.

    3D Files Format #4: COLLADA

    Collada is a neutral file format used heavily in the video game and film industry. It is managed by the non-profit technology consortium, the Khronos Group. The file extension for the COLLADA format is .DAE.

    Main characteristics

    The COLLADA format supports geometry, appearance related properties like color, material, textures, and animation. In addition, it is one of the rare formats supporting kinematics and physics. The COLLADA format stores data using the XML markup language.

    Popularity and future prospects

    The original intention behind the COLLADA format was to become a standard among 3D file formats. Indeed, in 2013, it was adopted by ISO as a publicly available specification, ISO/PAS 17506. As a result of this history, lots of 3D modeling software support the COLLADA format.

    However, the consensus is that the COLLADA format hasn’t kept up with the times. The COLLADA format was once used heavily as an interchange format for Autodesk Max/Maya in the film industry, but the industry has now shifted more towards OBJ, FBX, and Alembic.

    Which industries use it?

    Film industry, video game industry. For more information about the COLLADA file format, see the official docs from the Khronos Group.

    3D Files Format #5: 3DS

    3DS is a proprietary file format used in architecture, engineering, education, and manufacturing. It is native to the old Autodesk 3D Studio DOS, a popular modeling software which was later replaced by its successor 3D Studio MAX in 1996. Developed in the 90s, it is one of the oldest 3D file formats. It has become one of the de facto industry standards for storing 3D models or for interchanging between two other proprietary formats.

    Main characteristics

    The 3DS file format retains only the most basic information about geometry, appearance, scene, and animation. It uses a triangular mesh to encode the surface geometry approximately, the total number of triangles being limited to 65536. It stores appearance related properties like color, texture, material, transmissivity etc. Scene information such camera position, lights can also be stored, but the format does not support directional light sources.

    The 3DS format specifies a binary encoding and stores information in chunks. This allows parsers to skip chunks they don’t recognize and allows for extensions to the format.

    Popularity and future prospects

    Being one of the oldest file formats, 3DS has become a standard for storing 3D models and interchanging between other 3D file formats. Virtually all 3D software packages support it. However, since this format retains only the most basic information about the 3D model, it cannot be used in situations where one does not want to lose information. In this case, this format needs to supplemented by the MAX format (now superseded by the PRJ format), which contains extra information specific to Autodesk 3DS Max, to allow a scene to be completely saved/loaded.

    Which industries use it?

    Architecture, engineering, education, and manufacturing. To know more about the 3DS file format, you can check out the Wikipedia page.

    3D Files Format #6: IGES

    IGES (pronounced eye-jess) is a neutral old timer used primarily in the defense industry and in the field of engineering. It was developed in the mid-seventies by the US Air Force.

    Back in those days, the Air Force used to waste a lot of time in the tedious process of sharing and converting data between proprietary systems used by its suppliers. The situation was especially bad with larger projects like aircraft carriers or missile delivery systems involving hundreds of suppliers. The IGES format was developed by the Air Force in partnership with Boeing and others in order to serve as an interchange format that can be shared across all CAD systems. Since the 80s, the US Department of Defense has required that all defense and weapons contracts use IGES as the standard file format. The file extension corresponding to the IGES format is .IGS or .IGES.

    Main characteristics

    The IGES format is an ASCII encoding that is extremely flexible when it comes to representing surface geometry. It has the ability to use circuit diagrams, wireframes, precise free-form surfaces or CSG for storing geometry related information. The format can also store colors but does not support material properties like textures, material type etc. Animation is also not supported.

    Popularity and future prospects

    IGES has enjoyed widespread popularity ever since it was invented in the 70s. It has been adopted as a national standard in many countries such as UK and Australia. Virtually all CAD software supports it.

    The IGES file format is no longer developed, and yet it is still widely used to transfer data between CAD, CAM, and CAE software programs. It is a popular choice for 3D modeling, creation of technical drawings, and product design. It has the reputation of being a good choice for amateurs in 3D; professional 3D artists now prefer its successor STEP.

    Which industries use it?

    Defense, engineering

    3D Files Format #7: STEP

    STEP (The Standard for the Exchange for Product Data) or ISO 10303 was developed as a successor of the IGES file format. It is widely used in engineering related fields like automotive and aeronautic engineering, building construction etc. The corresponding file format is .STP.

    The officially stated objective of developing STEP was to create a mechanism that is capable of describing product data throughout the life cycle of a product, independent from any particular system. However, due to the complexity and size of the original standard, it has been later broken down into smaller, modular specifications in four major releases.

    Main characteristics

    The STEP format supports all the features supported by the IGES format. In addition, it can also encode topology, geometrical tolerances, material properties like textures, material types, and other complex product data.

    Popularity and future prospects

    STEP, like IGES, is a popular format for interchange of data between CAD, CAM and CAE software programs. For compatibility, it is still advisable to use IGES as it is the more common format and more likely to work with the receiving party’s software. However, for use cases where one needs to transfer information related to the model’s appearance, tolerances of the parts etc., STEP is the right format.

    Which industries use it?

    Engineering e.g. automotive, aerospace, building construction etc.

    For more information, read this comparative discussion of the IGES and STEP formats.

    3D Files Format #8: VRML and X3D

    The last 3D file format we will discuss is VRML and X3D. VRML (pronounced vermal and having the file extension .WRL) stands for Virtual Reality Modeling Language. It is a 3D file format that was developed for the World Wide Web. It has been succeeded by X3D.

    The term VRML was first coined in a paper by Dave Raggett titled “Extending WWW to support Platform Independent Virtual Reality” submitted to the first First World Wide Web conference in 1994. It took three more years till a mature version of the format VRML97 was created and became an ISO standard.

    VRML97 was used in some personal homepages and 3D chatting sites such as “CyberTown”. However, the format failed to gain any significant adoption. In addition, VRML’s capabilities remained stagnant while realtime 3D graphics improved fast. Eventually, the VRML consortium changed its name to the Web3D Consortium and started developing the successor of the VRML format X3D, which was released in 2001.

    Main characteristics

    X3D is an XML based 3D file format. It supports all features of the VRML format along with some additions.

    The VRML format uses a polygonal mesh to encode surface geometry and can store appearance related information such as color, texture, transparency etc. The X3D format adds NURBS encoding of the surface geometry, the capability of storing scene related information and support for animation.

    Popularity and future prospects

    The goal of X3D is to become the standard 3D file format for the web. In particular, X3D applets can run within a browser and display content in 3D using the OpenGL 3D graphics technology. X3D was also designed to integrate seamlessly with HTML5 pages much like the SVG format for images. However, till date, the format has not received wide acceptance.

    Which industries use it?

    Internet and the web. For more information about the X3D format, read this guide from the Web3D Consortium.

    Conclusion

    We have learned quite a bit about 3D file formats in this article. We discussed how and why there are hundreds of formats and how they can be classified into two broad categories: proprietary and neutral. Next, we explored the most important features of a 3D file format and provided tips on how you can choose the ideal format for your application.  We wrapped up with a discussion of the 8 most important 3D file formats, focusing on their features, popularity and use cases. The appendix has a wealth of information about the compatibility of these 3D file formats with the most popular 3D modeling software and engines. It also has a table for comparative analysis of the feature sets of these 3D file formats.

    We hope you enjoyed this article. Share it with your friends who are interested in the world of 3D modeling, game development, special effects, engineering, architecture and 3D printing. If you have any question, opinion or feedback, please share it with us in the comment section.

    Appendix

    1. Feature matrix of the 8 most popular 3D file formats

    Green indicates supported, red indicated not supported
    File format Geometry Appearance Scene Animation
    Approximate mesh Precise mesh CSG Color Material Texture Camera Lights Relative positioning
    STL
    OBJ
    FBX
    COLLADA
    3DS
    IGES
    STEP
    X3D

    2. Import/Export support in popular 3D modeling software and engines

    STL OBJ FBX COLLADA 3DS IGES STEP VRML X3D
    Sketchup No Export Export Both Both None No Export No
    Solidworks Both Both No No Both Both Both Both No
    Fusion 360 Both Import Both No No Both Both No No
    AutoCAD No No Both No Import Both Import No No
    Blender Both Both Both Both Both No No Both Both
    Rhino Both Both Both Export Import Import Import Both Export
    Cinema4D Both Both Both Both Both Import No Both No
    Unity No Import Import Import Import No No No No

    License: The text of „8 Most Common 3D File Formats – Simply Explained“ by All3DP is licensed under a Creative Commons Attribution 4.0 International License.

    Subscribe to updates from All3DP

    You are subscribed to updates from All3DP

    Website: LINK

  • Wikimedia Commons Enables 3D Model Uploads and Downloads

    Wikimedia Commons Enables 3D Model Uploads and Downloads

    Reading Time: 3 minutes

    Wikimedia Commons has enabled a new feature which will allow you to upload 3D models. The first upload is a model by the #NEWPALMYRA project, honoring Bassel Khartabil. 

    In 2015, the Wikimedia community was surveyed and a wish list was realized. On that list, number eleven is to add 3D models on Wikimedia Commons.

    Wikimedia is slowly making its way down the list, adding green ticks next to each of the wishes they’ve delivered on. Now, adding 3D models is under development by the Multimedia team at the Wikimedia Foundation.

    The first 3D model will honor the life the Palestinian Syrian open-source software developer, Bassel Khartabil who preserved records of Syrian historical monuments using photographs. He was an originator of the project #NEWPALMYRA and an important member of the Free Knowledge community.

    You can read more about the murdered Syrian Creative Commons activist here, and All3DP’s involvement here.

    The 3D model honoring his life will be one by the #NEWPALMYRA project.

    Gilles Dubuc, an engineer who helped make our 3D feature launch happen, explains: “I doubt I would have appreciated the full impact of this project if it weren’t for #NEWPALMYRA and Bassel. It is critical that humanity can see (and print!) what cannot be visited in person anymore.”


    Upload Your Own 3D Model

    Wikimedia explain that this is their first “foray” into 3D printing so they intend on being careful. This means only supporting the .STL file format for now.

    Until now, Wikimedia has done a great job with offering audio, video and 2D images. However, it’s no secret that 3D models offer new and different perspective on many subjects.

    Wikimedia will first show 3D models as a static preview image and, after clicking on an image, an interactive viewer will load. This new Multimedia Viewer extension will enable a user will be able to view a model from all angles and rotate it.

    The next step after rolling out 3D models is to receive feedback from the community. Then, with users’ help, Wikimedia will continue to add features and support for more complex file types.

    However, for now, you can upload, download and then 3D print .STL models from the Wikimedia website. To upload a model, simply visit Wikimedia Commons, log in and click “upload file”. It’s as simple as that. Just make sure to enable your Media Viewer and you’re ready to go.

    Source: Wikimedia Blog



    License: The text of „Wikimedia Commons Enables 3D Model Uploads and Downloads“ by All3DP is licensed under a Creative Commons Attribution 4.0 International License.

    Subscribe to updates from All3DP

    You are subscribed to updates from All3DP

    Website: LINK