This is a beta, and I want to build it with you
3MF Magic Solver is in beta. The version on sale is 1.2.0 beta. Everything on this page works today and is covered by automated tests (217 checks, run on Blender 4.2, 4.5 LTS and 5.2 with the add-on installed from the zip you download), but a beta can still have problems, above all with files I have never seen. A 3MF can come out of a dozen slicers, painted in a dozen ways, and I only find the awkward ones if you send them to me.
So if something goes wrong, please tell me. Message me here on Superhive with what you dropped in, what came out and what you expected. Every report goes into the next update. I want to design this tool together with the people who use it, so your feedback decides what I fix and build next. Every future version is included: buy once, updated for good.
Known issues in 1.2.0 beta
None known yet. When one is reported, it goes here with its workaround until the fix is out. The two issues of 1.1.1 (colours from 8-bit textures read lighter, the viewport lighter than the print) are fixed in 1.2.0.
A 3MF lands on your disk. Blender either refuses it, or opens a grey mesh with the colours gone. You wanted to change one thing and print it - instead you are rebuilding materials by hand.
3MF Magic Solver ("3Mffer") is the round trip. Drag the file into the viewport and the model arrives with everything it carried: colour groups, base materials, and the actual painting from Bambu Studio or PrusaSlicer, face by face. Click one preset and the model is painted from its own geometry. Export, and the slicer opens it coloured - not a grey blob you have to paint again.

No tutorials, go fast. The panel is a five-step to-do list and every step ticks itself when it is really done: scene in millimetres, model loaded, painted, filaments within your slot count, exported.
Any coloured model, not only a 3MF. An OBJ or GLB scan with a photo texture, an FBX game asset, a PLY with a colour per vertex: Blender's own importer opens it, 3Mffer puts it in millimetres and captures the colour out of its materials, per triangle corner, so the texture becomes printable paint. Capture Colour from Materials does the same for any mesh already in the scene.
Print size: Scale to Print Size sets the longest side, or the height, width or depth, to the millimetres you type, and Put on the Plate sits the model on Z = 0, centred. A scan or a game asset arrives at whatever size its app used; this is the size it will print.

New in 1.2: from a photo to filaments
A scan, a textured game asset or a GLB carries its colour as a photo. Give each triangle the nearest spool and it looks fine on screen and prints badly: the shadows baked into the texture cost a spool of their own, and every speck is a colour change on every layer it crosses.
Make Filament Version does it properly. The shading comes out first: light makes a colour darker, it does not change its hue, so the lit and the shaded side of a red jacket become one red filament. The filaments are picked by how much of the model they cover and how different they are, so a small white eye on a red figure still gets its own spool, and a slot is only used for a colour that is really different: ask for 4, get 3 if the model has 3. Patches smaller than 1.5 sq mm (you choose) join the colour around them, and the borders are smoothed.
Or use your own spools: type the colours you have loaded, read them from a Bambu Studio, Orca, Creality Print or PrusaSlicer project, or take them from the model. With more spools than slots, the best ones for this model are picked. It always starts again from the original colour, so you can try 3 filaments, then 5, then your spools, and Back to Full Colour puts the photo back.

Tutorials
Seven short videos cover the add-on click by click: the whole workflow end to end, plus one for each panel - Load, Paint in one click, Printable relief, Texture & displacement, Check Mesh & Quick Fix and Export. Every click is shown, and every click is followed by what it did, so they read even with the sound off.
They are ready: message me here on Superhive and I will send them to you.
The written walkthrough is already in the Documentation tab - the same steps, in text, readable before you buy.
The videos show 1.1. The panels new in 1.2 (Colour to filaments, Make it printable, Print size) are described step by step in the Documentation tab.
Import that actually reads the file
A 3MF is a zip holding one or more models, a palette and - when it came out of a slicer - the painting itself. All of it is read: basematerials with a displaycolor per material; colorgroup, what Bambu Studio calls "standard 3mf colour import"; and paint_color, the PrusaSlicer / Bambu Studio MMU painting, decoded down its whole recursive split tree so the filaments land on the faces they were painted on.
Painting survives the round trip, exactly. A slicer paints per triangle and subdivides a triangle to cut an edge finer than the mesh allows. The file's own painting is kept alongside the mesh and written back untouched when you export a Painted 3MF without repainting - verified on real Bambu Studio projects: 916,350 triangles and 2,988 distinct painted states in, not one changed on the way out.
One honest thing about the preview, in this beta. Blender shows the painting one colour per triangle. Where the slicer cut a finer edge by subdividing a triangle, the viewport shows the filament covering most of it, so small painted shapes can look a little jagged on screen compared with your slicer. It is a preview limit, not a reading error: export a Painted 3MF and the painting is identical to what went in. Improving what the viewport draws is the next thing on my list.
Objects made of component references are flattened with their transforms - what the author modelled is what you get - and a Bambu, Orca or Creality project that hides its geometry in 3D/Objects/object_N.model is followed there. When the project declares its spools, the real filament colours come across with it. A 500,000-triangle painted Creality project imports in about 23 seconds with its palette intact.
Paint in one click, from the shape itself
Twenty-nine presets in four groups: materials and finishes; figures, minis and fun; terrain, tiles and parts; light and checks. No UVs, no textures, not one brush stroke - the colour comes out of the geometry:
- curvature tells a crevice from a ridge, normalised on the model's own 90th percentile, so a soft organic sculpt and a hard-edged mechanical part both use the full range instead of washing out;
- thickness finds the walls too thin to print;
- ambient occlusion finds what sits buried in shadow;
- outward, height and normal fields do the rest.
Weathered rock, carved wood, gilded relief, mossy stone, lava, ice, antique silver, water and jewels, terrain, edge highlight, two-tone... and two that are diagnosis rather than decoration: thin-wall check and backlit, which colours the model by how much light gets through the wall. New in 1.2: miniature, toon, rainbow layers, kawaii pastel, galaxy, haunted glow, rusted iron, marble statue, snow capped and camo.
Every button carries a chip made of that preset's own filaments, so you see the palette before you click. Filament slots folds a richer preset down to the number of spools you actually own, closest colours merged first.

Printable relief
The same fields, moving the surface instead of colouring it: emboss the ridges, engrave the crevices, deepen the recesses by a millimetre you choose. Detail that survives even a single-filament print.

Bring your own texture
Where the presets read the shape, this reads space: a texture sampled in millimetres, so a 40 mm tile is 40 mm on the printed part whatever the size of the model.
Load your own image - a licensed wood or stone photo, a scan, a height map, your own artwork - and it is wrapped triplanar: no UVs, no unwrapping, no seam. That matters, because a 3MF that came out of a slicer almost never carries usable UVs, and nobody should have to unwrap a downloaded model before they can put a texture on it. Paint with the photo's own colours, or use it as a pure height map and carve it in.
Brick, cells, marble, clouds, brushed metal, stripes and rings are built in for before you have picked an image - brick is the default because a running bond with mortar joints is pure geometry, which is what a procedural is genuinely good at. Depth can be negative, so the joints go in and the bricks stand proud.

Nothing here is destructive. The untouched vertex positions are stored on the mesh, so Reset Shape always puts the surface back; relief measured from the original never stacks on itself; and Clear Paint restores the colours the file arrived with, not a flat grey.
Make it printable, in one click
A slicer refuses a mesh with holes, zero-area faces, or edges shared by three faces - even when it looks perfect in Blender. Blender's own Suzanne is the clearest example: she arrives with 42 open edges, and a Subdivision Surface at level 3 turns them into 336. Nothing looks wrong. She simply is not a solid.
Check Mesh counts what a slicer will refuse and changes nothing. Quick Fix welds coincident vertices, drops zero-area faces and loose geometry, closes small holes and points the normals outwards. Both sit right above the export buttons, and both work on whatever you have selected - a part that came out of a 3MF, or something you modelled yourself.
When that is not enough, Deep Fix repeats it until nothing changes, removes duplicate faces and inner walls, prunes every edge shared by three or more faces and caps every open loop, the big ones too. Rebuild Solid is the last resort: a fresh closed skin on a voxel grid, colours carried over, the old mesh kept as a hidden backup. Each step is kept only when measured better.
New in 1.2: Make Printable runs the whole ladder for you, Quick Fix, then Deep Fix, then Rebuild Solid if you allow it. It stops at the first step that leaves the mesh watertight and tells you which one it was. Rebuild Solid now carries the colour over per triangle corner, so painted edges survive it.
It cannot eat your model. The weld distance is capped at a fifth of the mesh's own typical edge, so it can close a seam but never dissolve a feature, and a result that loses faces is thrown away and retried with a tenth of the weld, then with none at all. A mesh that is already clean is left untouched. Measured on that subdivided Suzanne at 60 mm: 336 open edges to none, 31,486 of 31,488 faces kept, exported as OBJ and read back watertight.
For diagnosis, self-intersection counts and splitting a model into parts by colour, RegoSplit has the specific tools, and the panel says so when it is installed.

Export: five containers, because one is never enough
- Colour 3MF - standard 3MF plus a colour group, one object made of components, no Metadata folder. The slicer creates a filament slot per colour it finds. The universal one.
- Painted 3MF - a real paint_color per triangle plus the extruder map. The model opens already painted, ready to slice. Filament 1 is the object's own extruder and carries no attribute at all, exactly as the slicers write it themselves.
- OBJ + MTL - per-vertex colours in the OBJ, faces grouped per filament, MTL alongside. Past four filaments this is the one that works: the slicers read the colours from the vertices, not from the MTL, and their colour dialog opens fully populated.
- STL - geometry only, for a one-filament print.
- Full-colour 3MF - for the printers that print a photograph (UV inkjet, binder jet, PolyJet): a captured texture is embedded with its coordinates per corner, anything else goes out as one colour per vertex. Written to the 3MF Materials and Properties specification and read back in lib3mf with zero warnings. FDM slicers open it as geometry.
Plus Bake Paint into Material Slots: one material per filament, the currency the rest of the pipeline speaks.

It plays with the other Rego add-ons
Install RegoSplit or Rego Kit Card and two more buttons appear. Hand to RegoSplit bakes the paint into material slots and passes the model over for Split with Pins, or Separate by Color when your printer has no AMS. Hand to Rego Kit Card traces it into flat plates that snap together on one card. No re-export, no round trip through disk.
3Mffer imports and paints. Cutting, pinning and colour separation stay RegoSplit's job; flat kit cards stay Rego Kit Card's. Buy one, buy all three - nothing is duplicated.

What it is NOT
Honest limits, so nobody buys the wrong thing:
- It reads geometry, colours and painting. Slicer settings, supports, plates and modifiers inside a project file are not imported.
- Painting is per vertex: a crisp boundary follows the mesh's own resolution. Subdivide first if you want a sharper line.
- Splitting a model into separate parts by colour is not here, by design. That is RegoSplit's ground.
- Taking the shading out of a photo is a best guess from the colours alone. A side that sits entirely in shadow can still come out a darker shade of its filament. Lower Ignore baked shading when that happens.
- No brush. This add-on paints from the shape; hand painting is Blender's own vertex paint, which it reads and writes happily.
- Very heavy imports (500k triangles and up) take tens of seconds. The painting is decoded exactly, not sampled.
- Slicer behaviour is claimed from the file formats and from files produced by Bambu Studio, Orca, Creality Print and PrusaSlicer. Always check the filament mapping in your slicer before a long print.
Requirements
- Blender 4.2 LTS or newer (extension format). Tested on 4.2, 4.5 LTS and 5.2.
- Windows, macOS, Linux
- No internet connection required, ever
No AI, no network, no telemetry
3MF Magic Solver contains no artificial intelligence and no machine learning, and it has no network code at all: no telemetry, no analytics, nothing leaves your machine. It works fully offline.
I have been writing code since long before generative tools were mainstream, and every behaviour in this add-on is an engineering decision, not a prompt: the paint_color codec, the field engine behind the presets, the millimetre-accurate relief, the four export containers. I did not build it alone - I use AI tools the way I use every other tool in my kit, for coding assistance and for translating my documentation into English, which is not my first language. What I do not delegate is judgement. I read and understand every line that ships and I take full responsibility for how it behaves, and the numbers are there to back that up: 154 automated checks run headless against bpy on Blender 4.2, 4.5 LTS and 5.2 and check real results - every preset paints, every palette fits the slot count, all four exports write and read back, and the paint_color encoder round-trips against the decoder over the whole filament range. On top of those, an acceptance run installs the released zip into a clean Blender and drives the whole five-step flow on real slicer project files, then reopens every export and measures it: every part closed, no non-manifold edges, real volume.
Part of the Regolith Highfield toolset - regolith-highfield.com
Support and updates
Questions, bug reports and feature requests are welcome - message me here on Superhive, before or after buying. Updates and support are included for good: no support period, no renewal fee. Buy once and every future version is yours. More example files and presets are on the way, free with the add-on.
Built on the Regolith engines
None of this was invented for a plugin listing. The paint engine is a port of Regolith Surface, and the export paths come straight out of VOXL Regolith - the advanced Regolith Highfield software, built in collaboration with TastyVoxels, where the 3MF colour containers, the paint_color decoding and the OBJ route past four filaments were all worked out and tested on real prints first.
Those tools reach the public one at a time, when each is genuinely ready for everyday use. What you get here is the part of that pipeline that is finished, tested and useful inside Blender today.