3MF splitter: split a 3MF file into printable parts, colors kept
Quick answer: open splicestl, drop the .3mf on the page, pick your printer and download. The split runs in the browser, and nothing is uploaded. It keeps the file's colours: painted regions, per-part filament assignments and standard 3MF material colours. The pieces come back as 3MF: one file per piece, one per plate, or one Bambu Studio / OrcaSlicer project. Connectors (pegs, dovetails, magnets and six more) are added at every cut.
- Reads plain 3MF and the project files Bambu Studio, OrcaSlicer and PrusaSlicer save (meshes in
3D/Objects/, colours inproject_settings.config). - Multi-object files get an object picker: split everything merged, or one object at a time.
- Free, no account, 152 printer presets; also takes STL and OBJ.
What the splitter reads from a 3MF
A 3MF is a zip. Inside, 3D/3dmodel.model is an XML mesh with declared units, and slicers add more. splicestl reads all of it that matters for splitting:
| Inside the 3MF | Written by | What splicestl does with it |
|---|---|---|
Core mesh with basematerials / m:colorgroup colours | Any 3MF exporter (Blender, Fusion, Tinkercad, slicers' "export 3MF") | Per-triangle colour kept through the cut; pieces export with the same colour groups |
Objects in 3D/Objects/object_N.model via p:path | Bambu Studio, OrcaSlicer, PrusaSlicer project files | Loaded and placed with the build transforms, each as a selectable object |
paint_color / slic3rpe:mmu_segmentation on triangles | Bambu Studio / Orca painting tools, PrusaSlicer MMU painting | Decoded to the filament slot; triangle takes that filament's colour |
Metadata/model_settings.config extruder per object / part | Bambu Studio, OrcaSlicer | Unpainted triangles take their part's filament colour ("colour by part") |
Metadata/project_settings.config filament_colour | Bambu Studio, OrcaSlicer | The palette the slots map to; without it a fixed fallback palette keeps regions distinct |
| Print profiles, supports, modifiers, layer-height tables | Slicer projects | Not carried over — reapply your profile in the slicer |
How to split a 3MF, step by step
- Load. Drop the .3mf on splicestl. A project with several objects shows an object picker: "All objects (merged)" splits the whole plate as one model; pick one object to split only that.
- Pick your printer. Choose a preset (Bambu Lab A1 mini to Elegoo Neptune 4 Max) or type the largest size a piece may be. The cuts are planned on X, Y and Z together and the split runs by itself.
- Choose connectors. Pegs by default; dovetails, tenons, finger joints, magnet pockets, dowel holes, screw joints, your own connector STL, or none. Connectors are placed inside the pieces, so colours on the outside are untouched.
- Download. Under Output format pick 3MF (one per piece), 3MF, one file per plate or Bambu / Orca project. The zip also has the connectors, a README, an assembly sheet and labels.
Colour, precisely
Every triangle in the loaded model carries one colour. Through the cut, new triangles on the cut face take the colour of the surface they came from, so a piece's outside looks exactly as it did before the split; the cut faces are plain. When the pieces are written as 3MF, each piece gets one colour group with one entry per filament, and the slicer maps those to its filament slots. Bambu Studio and OrcaSlicer read the project output with the plates already placed; PrusaSlicer and Cura read the per-piece 3MF.
Painted borders are the one approximation. Slicers paint sub-triangle detail by splitting a triangle into up to four children and painting each; splicestl keeps whole triangles, so a triangle split between two colours takes the colour that covers most of it. On a typical 50,000-triangle model that moves a border by a fraction of a millimetre; on a very coarse mesh the step is visible. If a crisp border matters, subdivide in the slicer or Blender before painting.
Where 3MF splitting goes wrong elsewhere, and what to check
- A project file loads empty or as one object in other tools. That is the production extension: the main model file only references
3D/Objects/*.model. Tools that read a single model file see no triangles. Re-exporting from the slicer as "export 3MF (mesh only)" is the workaround there; here the project loads as is. - Colours vanish. Paint strings are opaque to most importers. Check the piece colours in the viewport after loading; if everything is one colour, the file has no colour information to keep.
- Pieces come back in the wrong place. Build-item transforms (
transform="…") place each object on the plate; splicestl applies them, so a plate of four objects loads as four objects in their plate positions. Pick one object to split it on its own. - The slicer asks for a filament mapping. Normal. The colour groups name the colours, not your AMS slots; map them once and save the project.
Frequently asked questions
Can I split a Bambu Studio or OrcaSlicer project 3MF?
Yes. Project files from Bambu Studio, OrcaSlicer and PrusaSlicer keep each object in its own 3D/Objects/*.model file inside the 3MF (the 3MF production extension). splicestl 3.5 reads those files, the per-object filament assignments in Metadata/model_settings.config and the filament colours in Metadata/project_settings.config, so a project with several objects, several filaments or painted regions loads with its colours.
Does the 3MF splitter keep painted colors?
Brush-, fill- and height-range painting from Bambu Studio and OrcaSlicer is stored per triangle as a paint_color string (PrusaSlicer: slic3rpe:mmu_segmentation). splicestl decodes it and gives each triangle the filament colour it was painted with. One thing is lost: where a single triangle was painted with two colours, the splitter keeps the colour that covers more of that triangle, so a border between two colours can move by up to one triangle. Regions, objects and per-part filaments are kept exactly.
What does the split 3MF contain?
Three choices in the download step: one 3MF per piece (mesh plus a colour group per filament), one 3MF per build plate with the pieces already laid out, or a single Bambu Studio / OrcaSlicer project 3MF with every plate placed. STL, OBJ and PLY are available for single-colour models; a model that loaded with colours is always written as 3MF, because STL and OBJ cannot carry colour.
Do I lose my slicer settings?
The print settings stored in a project 3MF (layer height, infill, supports, filament profiles) are not carried into the pieces: the output describes geometry, colour and plate layout only. Open the plated 3MF or the project 3MF in your slicer and apply your usual profile; the colours and the plate placement are already there.
Can I split a multicolor 3MF into one file per color instead of per piece?
Not yet as a single button. A colour-separated export (one object per filament, in place) is on the roadmap; today the pieces keep their colours and the slicer assigns filaments from the colour groups. If you need per-colour objects for a single-extruder swap print, split by colour in the slicer first, then split each object for size here.
What is the difference between STL and 3MF for splitting?
An STL is a bare list of triangles: no units, no colour, no object names. A 3MF is a zip container with an XML mesh, declared units (millimetres), colour and material tables, object names and, in slicer projects, plate layouts and settings. Splitting either gives the same geometry; the 3MF route is the one to use when the model has colours, several objects or you want the pieces placed on plates for Bambu Studio or OrcaSlicer.
Related
What changed. 31 October 2026: page published with splicestl 3.5, which added project-3MF loading (production extension), paint_color decoding and colour-by-part. Sources: 3MF Consortium core and production-extension specifications (3mf.io, read 31 October 2026); PrusaSlicer TriangleSelector::serialize source (github.com/prusa3d/PrusaSlicer, read 31 October 2026); splicestl 3.5 test harness scenario bambu_project_3mf_split.