3MF will take over from the STL format as the de facto 3D print design file format eventually. This initiative is being backed by giants such as Microsoft, General Electric and 3D Printer majors such as Stratasys and 3D systems. As such there is no doubt that the format will gain wide adoption as well as have adequate support resources to keep it updated and maintained to take care of future developments. If you are planning to buy a new 3D printer, it now makes sense to find out if the printer supports 3MF format or not.
STL is a streolithography file format that was created by 3D systems in the early ‘80s for 3D priting. That’s how long 3D printing has been around by the way.
Wikipedia says there are several backronmys (acronyms invented after that fact) on STL including Standard Triangle Language and Standard Tesselation language.
The very fact that the STL file format has stood the test of time over nearly a quarter of a century and is the most prevalent file format in today’s additive manufacturing space, speaks enough about the file format. It has been the backbone of 3D printing for more than 2 decades now.
The Basic STL File:
The basic STL file is an ASCII format file (American Standard Code for Information Interchange). What this means is that the STL file is written in simple text and can be created with any text editor. It does not require to be written in any programming languages or compiled into an encrypted file. You can open an STL file in any text editor and see its contents. So the first best quality of STL files is simplicity.
An STL file simply describes the raw unstructured triangulated surface using a 3 dimensional Cartesian co-ordinate system. (A Cartesian coordinate system defines a point as 0 and then measures each point on how far along and how far up it is from the point defined as 0. This is different as compared to a Polar coordinate system where each point is marked as how far away it is from the origin (or 0) and what its angle is.)
So when it comes to a 3D Cartesian coordinate, we need to describe every point as how far away it is from the origin, with reference to length, width and height. I guess you get the point about 3D coordinates.
Coming back to STL file format, it describes only the surface geometry of a 3D object, without taking into account other characteristics of the object such as texture, color, reflectivity, incidence of light, etc. used in a typical 3D cad software.
To sum up what we’ve learnt so far: An STL file is a simple text file. It specifies the 3D co-ordinates of the features of an object (or in other words the surface geometry) in simple terms.
The simplicity has been both the strength as well as the weakness of the STL file format. Strength, in the sense that it is easy, elegant and simple to understand. Also since it is in text format, the file size can be smaller compared to compiled files.
There are several structural stipulations of the STL file format including how parameters are defined, syntaxes to be used, etc. When all these stipulations are strictly followed, it becomes straight forward for any application or printer to understand the meaning of each STL file and react accordingly. The STL file format is almost universally adopted across applications and devices in the 3D printing world.
So an STL file is simple, it describes the 3D property of an object conforming to the strict syntax of the file spec and has near universal adoption. What that term means is that almost everyone in 3D cad world uses STL file format, they understand it and they know how to talk to and pass back information to and fro using the correct syntax.
The STL file format has also spawned sufficient clones in its long life time, where people have tried to include additional information such as color. These variations do co-exist with the STL file format but are more proprietary. Interchange of these proprietary formats is not very common.
Limitations of the STL format:
In spite of being a text only format, the STI file can become quite huge when objects whose surface geometries are being described in such files, become bigger and bigger. This is because more and more triangles need to be added in order to form bigger objects and to cater to the complexity of the shapes of the object being designed.
As we discussed earlier, an STL file format only describes the spatial geometry of an object. It normally does not define other parameters such as color, etc. though some manufacturers have customised some of their STL files to add additional color information. These are not the puritans, though. An STL file conforming to the original spec should limit itself to describing the shape of an object and does not heed the relevance of other parameters.
All faces need to be closed in an STL file, in order for correct definition of an object. If there are two objects touching each other, then both these objects need to be designed separately, and should contain in two different STL files. Also when a single object has multiple materials, each material needs a separate STL file.
3MF (or 3D Manufacturing Format) is a file format that was originally developed by Microsoft and its partners in order to meet the requirement of supporting 3D printing for current and future needs. The initial version of the 3MF code was created by Microsoft and its partners and this work in progress was donated to the 3MF consortium to serve as a source which could be refined further.
The goal of 3MF is to be able to include all the information of a 3D model in a single file. This includes basic Cartesian coordinates, materials, texture, color and a way to make printers understand this information.
To quote the 3MF Consortium, the 3MF file format is
… rich enough to fully describe a model, retaining internal information, color, and other characteristics
… extensible so that it supports new innovations in 3D printing
… able to be broadly adopted
… free of the issues besetting other widely used file formats
The code to read or write 3MF is available as open source: Microsoft’s donated code reads STL/OBJ/3MF, writes 3MF, and can use Web Services for model repair. The source code will be on Github and cross-platform code is in development.
The 3MF Consortium manages the changes to the official 3MF spec, including the acceptance process for changes coming from consortium members and from open source changes. Eventually, conformance will also be addressed by the 3MF Consortium.”
Recent News on 3MF:
March 2016: The 3MF consortium released its first update (Ver.1.1) to the 3MF core specification.
June 2016: American Society for Testing and Materials (ASTM) recently signed a liaison agreement with the 3MF consortium to explore ways to collaborate and align standards and roadmaps.
The website of 3MF consortium (consisting of members such as 3D Systems Stratasys, Microsoft, General Electric, Dassault Systems, Siemens, Autodesk, etc.)
The open source platform for supporting 3MF format.
The 3MF specification document is available as a download from this url.
Article on 3D print magazine, about library development for 3MF.
Microsoft Developer Network namespace for 3D printing and APIs for 3D printers.