Why 3MF exists
STL helped 3D printing go mainstream, but it carries almost no context: no explicit units, no materials, no textures, no assembly structure, and no manufacturing metadata. It also stores geometry as disconnected triangles, which makes export errors and mesh-repair workflows common.
The 3MF Consortium was formed in 2013 — originally led by Microsoft, with backing from companies such as Autodesk, HP, Materialise, Stratasys, 3D Systems, Siemens, Dassault Systemes, and PTC — to replace that workflow with an open, royalty-free standard built for additive manufacturing. In 2025, 3MF was standardized as ISO/IEC 25422:2025, giving it formal status as an international format for 3D manufacturing data exchange.
The container: ZIP plus XML
A .3mf file is not a single document. It is a standard ZIP archive that follows the Open Packaging Conventions (OPC), the same packaging model used by .docx and .xlsx files. Rename a .3mf file to .zip and you can inspect it with any archive tool.
Typical contents include:
[Content_Types].xml— the manifest that tells software how to interpret each part in the package_rels/.rels— the relationship file that points parsers to the main model payload3D/3dmodel.model— the primary XML document with geometry, resources, metadata, and build instructionsMetadata/— optional thumbnails, print tickets, and slicer-specific project dataEmbedded textures— optional PNG or JPEG assets referenced by material extensions
At first glance XML sounds heavier than binary STL, but ZIP compression works extremely well on repetitive numeric data. In practice, a compressed 3MF is often smaller than an equivalent STL while also carrying much more information.
Indexed meshes instead of triangle soup
STL writes every triangle by listing all three vertices explicitly. Neighboring triangles do not share vertex records, so the same point can be written over and over again. That redundancy inflates file size and makes tiny floating-point mismatches between adjacent triangles much more likely.
3MF uses an indexed triangle mesh. A vertex is defined once in a shared list, and triangles refer to it by integer index. That structure reduces duplication and keeps topology consistent across the mesh. The format is designed around watertight, manifold geometry, so compliant exporters avoid many of the broken-mesh problems that plague STL workflows.
More than just geometry
The main 3dmodel.model file is structured, not flat. At the top level, a 3MF model typically contains:
<metadata>for authoring and application details<resources>for reusable objects, meshes, components, materials, textures, and other definitions<build>for the actual printable instances placed on the build plate
That separation matters. A model can define one object once, then place it many times in the build using transforms for position, rotation, or scale. This makes repeated parts and multi-object layouts far more efficient than duplicating raw triangle data.
3MF also supports component-based assemblies, so a single file can describe multi-part models without splitting them into separate exports.
Units, colors, materials, and textures
Unlike STL, 3MF stores the unit of measurement directly in the file, such as millimeter or inch. That eliminates the classic "why did my model import at the wrong scale?" problem.
Depending on the extensions used, 3MF can also store:
- Base materials with sRGB color definitions
- Per-triangle or per-vertex property assignments
- UV-mapped textures through embedded PNG or JPEG files
- Multi-material and composite definitions
- PBR-style surface data such as roughness, metallic appearance, and translucency
This is one reason slicers increasingly prefer 3MF for project files: it can preserve both the model and much of the print intent around it.
Extension ecosystem
The 3MF core specification stays intentionally small, while richer capabilities are added through namespaced extensions that older parsers can safely ignore. Important extensions include:
- Materials and Properties — colors, textures, and richer material definitions
- Beam Lattice — lightweight encoding for lattice and strut structures that would be enormous as plain triangle meshes
- Slice — precomputed layer contours for production workflows
- Production — identifiers and metadata for multi-part manufacturing pipelines
- Secure Content — encrypted packaging for protected manufacturing data
This extension model lets the format grow without breaking simple readers that only need the mesh.
Tooling support
Modern slicers such as Bambu Studio, PrusaSlicer, Cura, OrcaSlicer, and IdeaMaker all support 3MF. Many of them use it not just for geometry, but also for project settings, plate layout, modifiers, and print profiles.
CAD support has also improved significantly. Fusion 360, SolidWorks, Autodesk Inventor, and other design tools can export 3MF, while developer libraries such as lib3mf make it practical to parse and generate the format programmatically.
Viewing 3MF in STLViewer
STLViewer focuses on the mesh content of a 3MF package and renders it like any other 3D model. Geometry comes through; slicer-specific settings, support definitions, and other manufacturing metadata are generally ignored.
That makes STLViewer useful when you want to inspect the actual shape quickly, share a model with a link, or verify that a .3mf file contains the geometry you expect without opening a full slicer project.
