The 3MF file
over STL

- Siddhesh Pai

- 6th Mar 2023

The 3MF file format

The 3MF file format is a 3D printing file format that was developed by the 3MF Consortium, a group of companies including Microsoft, HP, Autodesk and many others. It stands for "3D Manufacturing Format" and is designed to provide a more streamlined and efficient way of handling 3D models for 3D printing.
The 3MF format is an XML-based format, which means that it is composed of human-readable text rather than binary code. This makes it easier for software applications to read and manipulate the data in the file. The format allows for the inclusion of all of the information needed to print a 3D model, including the geometry, colour, material, and texture data. It also allows for the inclusion of multiple objects in a single file, as well as the ability to specify support structures and other printing parameters.
One of the key advantages of the 3MF format is that it is extensible, meaning that it can be adapted to new printing technologies and materials as they become available. The format is also designed to be more compatible with a wide range of 3D printing software and hardware, making it easier for designers and manufacturers to collaborate on projects.

3MF file representation:

The 3MF (3D Manufacturing Format) file format represents a 3D object using a combination of a model file and a package file.
The model file is an XML file that defines the object's geometry, as well as any associated colours, textures, and materials. The model file can also include additional metadata about the object, such as its creator, creation date, and licensing information.
The package file is a ZIP archive that contains the model file and any associated resources, such as texture images or other 3D models. This allows all of the necessary information to be stored in a single file.
Here's an example of what a simple 3MF model file might look like:
<?xml version="1.0" encoding="UTF-8"?>
<model unit="millimeter" xmlns="">
    <author>John Smith</author>
    <description>A simple cube</description>
    <keywords>cube, 3D printing, example</keywords>
    <object id="1" type="model">
          <vertex x="0" y="0" z="0" />
          <vertex x="1" y="0" z="0" />
          <vertex x="1" y="1" z="0" />
          <vertex x="0" y="1" z="0" />
          <vertex x="0" y="0" z="1" />
          <vertex x="1" y="0" z="1" />
          <vertex x="1" y="1" z="1" />
          <vertex x="0" y="1" z="1" />
          <triangle v1="0" v2="1" v3="2" />
          <triangle v1="0" v2="2" v3="3" />
          <triangle v1="4" v2="5" v3="6" />
          <triangle v1="4" v2="6" v3="7" />
          <triangle v1="0" v2="1" v3="5" />
          <triangle v1="0" v2="5" v3="4" />
          <triangle v1="1" v2="2" v3="6" />
          <triangle v1="1" v2="6" v3="5" />
          <triangle v1="2" v2="3" v3="7" />
          <triangle v1="2" v2="7" v3="6" />
          <triangle v1="3" v2="0" v3="4" />
          <triangle v1="3" v2="4" v3="7" />
In this example, the model file defines a simple cube with 8 vertices and 12 trianglesOverall, the 3MF file format is designed to be flexible and extensible, allowing for a wide range of 3D printing applications and workflows.
On the other hand, STL (Standard Triangle Language) files represent the surface of a 3D object as a mesh of interconnected triangles. Each triangle is defined by the coordinates of its three vertices, which are specified in 3D space using Cartesian coordinates.
The file format itself is a plain text format that contains a list of the triangles that make up the object's surface. The basic structure of an STL file is as follows:
  • A header section that provides information about the file, such as its name and creation date
  • A section that defines the number of triangles in the mesh
  • A series of triangle definitions, each of which consists of three vertex coordinates and a normal vector that indicates the orientation of the triangle
solid example
  facet normal 0 0 1
    outer loop
      vertex 0 0 0
      vertex 1 0 0
      vertex 0 1 0
In this example, the file contains a single triangle that lies in the XY plane with one vertex at the origin and the other two vertices at (1, 0, 0) and (0, 1, 0), respectively. The normal vector of the triangle points in the positive Z direction.
Although STL file format is a widely used and relatively simple method for representing the surface geometry of 3D objects, it is a native format that has not kept up with the rapid evolution of 3D printing technologies. As a result, there is a growing need to upgrade software and file formats to better meet the needs of modern 3D printing applications.

Advantages over STL file format:

The 3MF file format offers several advantages over the STL file format, which is widely used in 3D printing:
  • Multiple parts support:3MF allows for the inclusion of multiple parts or objects within a single file, while STL file format only supports a single object in a file. The objects within a 3MF file can be easily rotated, translated and oriented however, STL file will need a specialised software such as MIRApro (SHELL TO PART feature) for separation of individual objects and performing operations on them.
  • Material and colour support: 3MF includes support for colour information, as well as other advanced features such as textures and multi-materials. Colour, texture and material can be added in the CAD design software itself. On the other hand, it is possible to add colour to an STL(STL color format) file however,the process is not that easy or robust as in the previous case.
  • Metadata support: 3MF includes support for metadata such as the model's author and print settings, while STL does not. This helps protect IP of the designer and also makes the file compatible to be loaded directly into the 3D printing machines. Metadata also helps in part traceability. Traceability includes information such as source of the file, build details as well as machine information which will aid in diagnosing print failures.
  • Compression support:The 3MF file format utilises the ZIP archive for storing physical models, which helps in reducing the file size and increasing transfer speed. This is a feature that is not present in the STL file format.
  • Extensibility:3MF being an XML based format is designed to be extensible, which means it can be extended to include additional features and functionality beyond the core specification. This allows for the addition of capabilities in the future, without breaking compatibility with existing software or hardware.
This makes it a more powerful and flexible format for 3D printing applications, especially for complex models.

How to convert STL to 3MF using Mirapro?

As a member of the 3MF Consortium, MIRA3D promotes the use of the 3MF file format. Both MIRApro and MIRAlite come equipped with a built-in 3MF viewer and converter, allowing for the conversion of STL files to 3MF and vice versa. To convert an STL file to 3MF, the following steps should be taken:
  1. Open the STL file in MIRApro or MIRAlite software.
  2. Select the file(s) and click the "Export" button.
  3. Enter a desired file name, select the "3MF" option from the "Save as type" drop-down menu, and then click "Save".

Talk To Us

© copyright 2022 Samisan Tech Pvt Ltd