3MF, 3D Manufacturing Format, is used by applications to render 3D object models to a variety of other applications, platforms, services and printers. It was built to avoid the limitations and issues in other 3D file formats, like STL, for working with the latest versions of 3D printers. 3MF is relatively a new file format that has been developed and published by the 3MF consortium. It is rich enough to fully describe a model, retaining internal information, colour, and other characteristics that makes it extensible for supporting new innovations in 3D printing. The format is extensible, able to be broadly adopted and free of issues besetting other widely used file formats.
The existing limitations in available model descriptive file formats, such as STL and others, lead the leading brands to get together and formulate a more extensible file format for 3D printing. An important consideration was to how applications should pass model data to 3D printers. The 3MF consortium, hence, came into being to back a new 3D file format called 3MF with the aim to make it extendible enough to cater the needs of 3D printing. Several companies were part of this consortium including Microsoft, Autodesk, Dassault Systems, Netfabb, SLM, HP and others. Microsoft donated its 3D file format work-in-progress as the starting point for the 3MF Consortium’s collaborative further development of the specification.
3MF File Format
3MF is an XML-based data format – human-readable compressed XML — that includes definitions for data related to 3D manufacturing, including third-party extensibility for custom data. The 3MF file format was designed keeping in mind the limitations and issues faced by other 3D file formats. This lead to the formulation of 3MF file format that is:
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
The specifications for 3MF file format are hosted over Github for public access and continuous updates. The current published version is 1.2.3 that describes the set of conventions for the use of XML and other widely available technologies to describe the content and appearance of one or more 3D models. Developers, who want to build systems for processing 3MF file formats, can refer to these specifications for implementation purpose.
File Format Specifications
The 3MF file format uses the Open Packaging specifications in the form of ZIP archive for its physical model. It includes a well-defined set of parts and relationships that fullfill particular purpose in the document. This also makes the format follow the package feature including digital signatures and thumbnails.
The 3MF Document
A typical 3MF document looks as follow:
The payload includes the full set of parts required for processing the 3D Model part. All content to be used to manufacture an object described in the 3D payload MUST be contained in the 3MF Document. The description of each document part along with its status as required or option is as given in the following table.
Contains the description of one or more 3D objects for manufacturing.
The OPC part that contains various document properties.
Digital Signature Origin
The OPC part that is the root of digital signatures in the package.
OPC parts that each contains a digital signature.
Digital Signature Origin
Digital Signature Certificate
OPC parts that contain a digital signature certificate.
Provides settings to be used when outputting the 3D object(s) in the 3D Model part.
Contains a small JPEG or PNG image that represents the 3D objects in the package or the package as a whole.
Contains a texture used to apply color to a 3D object in the 3D Model part (available for extensions)