Note
This is an actively maintained fork of the original Blender 3MF add-on, updated for modern Blender versions (4.2+) and ongoing development.
This is an add-on for Blender for importing and exporting 3MF (3D Manufacturing Format) files.
3MF is a modern format for 3D printing. Unlike STL, it carries more than geometry: units, materials, colors, metadata, and slicer-relevant information. Blender sits upstream of slicers in many workflows, and this add-on helps make that process smooth and predictable.
The goal is simple: make Blender a reliable, spec-compliant tool in real 3MF workflows, with solid behavior and interoperability with modern slicers.
- Version 2.0.0 — Major architecture restructure with public API
- Compatible with Blender 4.2+
- Actively maintained
For Blender versions 2.80–3.6, see the original releases.
- Import and export 3MF files
- Material and color support using modern Blender material APIs
- Embedded viewport thumbnails in exported 3MF files
- Correct handling of units and build structure
- Public API for programmatic/headless workflows (documentation)
- Multiple 3MF spec-compliant extensions:
- Core Materials (basematerials)
- Production Extension (multi-object builds, color zones)
- Vendor extensions for Orca Slicer, BambuStudio, and PrusaSlicer
| Slicer | Round-Trip Support | Notes |
|---|---|---|
| Orca Slicer / BambuStudio | Partial | Per-triangle material/color zones preserved. Does not reproduce slicer paint workflows |
| PrusaSlicer | Partial | Per-triangle material/color zones preserved. No Blender paint-mode support |
| Standard 3MF | Full | Geometry, materials, metadata |
Official Blender Extensions Platform – Includes automatic updates!
- Open Blender
- Go to Edit → Preferences → Get Extensions
- Search for "3MF"
- Click Install on 3MF Import/Export
Option 1: Drag & Drop
- Download the ZIP from Releases
- Open Blender
- Drag the downloaded ZIP file into Blender
- Enable the add-on
Option 2: Preferences
- Download the ZIP from Releases
- Open Edit → Preferences → Add-ons
- Click Install… and select the downloaded ZIP file
- Enable 3MF Import/Export
Menus after installation:
- File → Import → 3D Manufacturing Format (.3mf)
- File → Export → 3D Manufacturing Format (.3mf)
- Scale – Uniform scale applied from the scene origin
- Import Materials – Import material colors (disable for geometry-only)
- Placement – Choose object placement:
- Keep – Keep positions from the 3MF file
- World Origin – Move to scene origin
- 3D Cursor – Place at the current 3D cursor
- Reset Object Origins – Reset each object’s origin before placement
- Selection Only
- Scale
- Apply Modifiers
- Coordinate Precision
- Export Hidden Objects
- Multi-Material Format – Per-triangle material assignment using Standard 3MF, Orca/Bambu Slicer, or PrusaSlicer MMU
- Orca Slicer –
Production Extensionwithpaint_colorattributes - PrusaSlicer –
slic3rpe:mmu_segmentationattributes for color metadata and round-trip fidelity
- Orca Slicer –
Built-in multi-material texture painting system for creating per-triangle filament assignments directly in Blender's 3D Viewport.
Features:
- Texture-Based Painting – Paint multi-filament regions using Blender's native paint tools
- Visual Filament Palette – Click-to-switch color swatches in the 3D View sidebar (N-panel → 3MF tab)
- Filament Management – Add, remove, and reassign filament colors during painting
Usage:
- Import a 3MF file with multi-material data, or select any mesh object
- Open sidebar (N-panel) → 3MF tab → MMU Paint Suite
- Add filaments and click "Initialize Painting"
- Click filament swatches to switch active color, then paint in Texture Paint mode
- Export to 3MF with desired slicer format
Version 2.0.0 introduces a public Python API for headless/programmatic use without bpy.ops:
from io_mesh_3mf.api import import_3mf, export_3mf, inspect_3mf
# Inspect without importing
info = inspect_3mf("model.3mf")
print(info.unit, info.num_objects, info.num_triangles_total)
# Import
result = import_3mf("model.3mf", import_materials="PAINT")
print(result.status, result.num_loaded)
# Export specific objects
result = export_3mf("output.3mf", objects=my_objects, use_orca_format="AUTO")
# Batch operations
from io_mesh_3mf.api import batch_import
results = batch_import(["a.3mf", "b.3mf"], target_collection="Imports")Full documentation: API Docs | Rebuild with docs/build.ps1 after API changes
Current features and roadmap are in ROADMAP.md | Full changelog in CHANGELOG.md
This add-on targets 3MF Core Specification v1.4.0. It includes checks to warn or stop on specification-specific conditions.
The 3MF spec requires consumers to fail hard on malformed files. In Blender, this is often impractical, so the add-on handles recoverable issues gracefully:
- Core requirements (ZIP/OPC structure, model XML, units, build definitions) are enforced on export
- Partial or malformed files may import with warnings instead of failing
- Conflicting metadata from multiple files may be skipped to preserve scene integrity
Supported 3MF extensions for improved slicer interoperability:
| Extension | Namespace | Support |
|---|---|---|
Core Materials (basematerials) |
Core Spec v1.3.0 | Full |
| Production Extension | http://schemas.microsoft.com/3dmanufacturing/production/2015/06 |
Full |
| Materials Extension v1.2.1 | http://schemas.microsoft.com/3dmanufacturing/material/2015/02 |
Full (Active PBR) |
Materials Extension Features:
- Colorgroups & Textures: Full import/export with UV coordinates
- PBR Metallic: Metallic/roughness values applied to Principled BSDF
- PBR Specular: Specular color/glossiness mapped to Blender materials
- Translucent: IOR, transmission, and attenuation for glass-like materials
- Round-trip: All element types preserved for lossless re-export
Per-triangle material handling for Orca Slicer and BambuStudio files. Does not include slicer paint-mode workflows.
Import
- Reads multi-file Production Extension structure (
3D/Objects/*.model) - Imports
paint_colorattributes as Blender materials - Loads filament colors from
Metadata/project_settings.config - Supports Orca, BambuStudio, and PrusaSlicer files
Export
- Writes multi-file Production Extension structure
- Exports per-triangle
paint_colorattributes - Generates
project_settings.configwith filament colors - Creates correct OPC relationships
- Embeds viewport thumbnail previews
Filament colors reload automatically from metadata for accurate material recreation.
Import
- Reads
slic3rpe:mmu_segmentationattributes - Preserves multi-material zones as Blender materials
Export
- Standard 3MF export works
- Orca-format color zones compatible with PrusaSlicer painting tools
PrusaSlicer does not embed actual RGB colors in 3MF files; it uses filament indices referencing local profiles. Round-tripping through Blender generates colors based on zone indices and may not match original filament colors exactly.
Forked from Ghostkeeper’s original Blender 3MF add-on and modernized by Jack (2025–).
- Original author: Ghostkeeper (2020–2023)
- Fork & maintenance: Jack (2025–)
All original attribution and GPL v2+ license are preserved.
GPL v2+