Print with dozens of colors: Our new open-source ColorMix for EasyPrint and PrusaSlicer - Original Prusa 3D Printers
Pangram verdict · v3.3
We believe that this document is fully human-written
AI likelihood · overall
HumanArticle text · 1,636 words · 5 segments analyzed
For the past few months, the 3D printing community has been poking at a very interesting question: what if a multi-material printer were not limited to the colors physically loaded on it? And we must say it right now: This is a really awesome way to expand your 3D printing capabilities! In this article and video, we’ll show you how to print with dozens of color tones on any multi-material printer and how we made that possible. It’s a proper deep dive, so get comfy – you’re in for a ride! Let’s talk about the community – because that’s where it started. Solutions started appearing in slicer forks, test palettes, and increasingly convincing prints. Ratdoux’s OrcaSlicer-FullSpectrum showed how virtual mixed-color filaments could be created by alternating thin layers of differently colored materials. Justin H. Rahb’s filament-mixer helped predict what those colors might look like, and community projects like PeggyPalette made it easier to compare and share results. It was one of those moments where you could feel an idea catching fire in real time. These projects are all amazing and truly demonstrate the benefits of an open-source approach. <span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span><span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span><span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span><span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span>
And honestly, we got excited too. Inside Prusa, the idea spread fast: let’s create an easy way to take a couple of filament spools and let people print in dozens of beautiful colors. The teams working on Prusament, PrusaSlicer, EasyPrint, and OpenPrintTag are always pulling in the same direction, and this was the perfect project for them.
We calibrated a new, more accurate color mixing model against measured FDM prints, connected it to real material data through the OpenPrintTag Material Database, brought the workflow directly into PrusaSlicer and EasyPrint, and started preparing a dedicated Prusament CMYKW set to make the whole process more reliable from the first print. Why CMYKW? We’ll explain in a second.
The result is a much easier workflow that makes printing in color feel more like painting rather than programming, with more accurate color previews than any existing solution. Our color mixing model is published under the MIT license, so the community can inspect it, use it, test it, improve it, and build on it just like we built on the work that came before us. We call the model Prusa ColorMix to distinguish it from similar projects and products.
How does it work? So, how is it possible to print a model that looks almost painted – using just five filaments? The principle is well-known from traditional 2D printing. It uses Cyan, Magenta, and Yellow (CMY) inks in a method called Halftoning, which allows a printer to produce continuous tones by varying the size and spacing of small ink dots. Printing CMY dots in equal size ratios creates black. Inkjet printers have an additional black (K) ink to save on ink and use the CMYK color model. They usually print on white paper, so white is just the absence of any printed color. A color perceived as cerulean is a blend of cyan, magenta, yellow, and black inks, as observed under magnification. (Wikipedia) In 3D printing, there is no paper, so the existing models work with CMY colors and white (W). Because of the nature of FDM printing, we don’t use a combination of dots, but we alternate the colors by layer. A model with a 0.1 mm layer height that has all odd layers white and all even layers black appears grey from a normal viewing distance. This neat trick is possible because of the limited resolution of the human eye, which can’t see details below a certain size. Mixing the CMY colors is predictable because it is known from 2D printing. Behind the scenes Let’s hear about the Prusa ColorMix from the people who worked on bringing it to you.
Meet Barbora Marsikova, from the team of Prusa Academy, who fell for the full spectrum on the way to bringing multi-material printing to 3D printing beginners.
Why I started this I first heard about Full Spectrum from our multi-material expert from Prusa Development. When he said this is the future, I believed him. I kept an eye on the community trying out the existing fork and used every opportunity to internally promote it. But it really took off once we started printing test samples with the Easy PLA CMYK Filament Set and the Prusament Galaxy Black on the Original Prusa XL. Because everyone who saw it wanted it. Most available multi-filament systems use four spools in parallel and therefore work in the CMYW mode. But the color mixing never produces a truly black color, more like blueish grey. On the 5T Prusa XL, we were able to directly add black and work with the CMYKW color combinations. By trying out all of them, we identified about 40 color combinations that make sense.
We also easily agreed that we would love to have our own Full Spectrum for the Prusa CORE One INDX. To have a Prusa solution, there were three key teams to get on board: Prusa Polymers, EasyPrint, and PrusaSlicer. Everybody Loves Color Prusa Polymers, where the in-house manufactured Prusament comes into existence, didn’t need much persuading. Before we finished testing the CMYKW filaments available on the market, they were already working on the new Prusament colors. Right now, they are tuning the final shades and transparency of the Prusa CMYKW bundle and even preparing PLA Natural Glitter, which can add a glittery look to any existing PLA.
The PrusaSlicer team is working hard on the upcoming PrusaSlicer 3.0 and, at the same time, finalizing CORE One INDX profiles to deliver the best possible performance. They borrowed the test prints cautiously but soon realized how much fun this is. So they happily became part of the movement and were eager to prepare a build for version 2.9.6 already. The biggest leap forward came when we paid a visit to the EasyPrint & Printables team.
They literally dropped (almost) everything and immediately started discussing how to implement the CMYKW slicing in EasyPrint and get it out there as fast as possible.
So, we had both the EasyPrint and PrusaSlicer teams fully on the case, and new features started popping up in the test environment every other day. When the first test batch of Prusament CMYKW arrived, we were able to leave behind all other software implementations of the Full Spectrum and work purely in the Prusaverse.
Developer’s diary Meet Ondrej Bartas, software engineer from the Printables & EasyPrint team and the main developer behind the ColorMix model.
What we learned trying to mix colors on a 3D printer These are my notes on building a color mixing model for layer-interleaved FDM. We’re sharing this because we want to help the community adopt full-spectrum printing, not because we’ve solved color mixing. Why I started this I want multicolor FDM printing to feel like painting. You squeeze tubes onto a palette, you grab a brush, you mix. The colors are right there in front of you. It doesn’t feel like that in any slicer today. In Orca and Bambu, if you want a non-base color, you click “add mixed color combination,” pick which two extruders to mix, set a ratio, and repeat for every color. There are preset 3MFs floating around the community that skip this, but they’re workarounds. The underlying experience is still “configure machinery first, see colors second.”
So we’re building two things into PrusaSlicer and Prusa EasyPrint: a color-mixing model that predicts what color you’ll actually get when you interleave layers and a UI that gets out of the way. Load filaments, the palette appears, paint. This post is about the color model. How we got here We didn’t invent multicolor FDM via layer stacking. Ratdoux did, with OrcaSlicer-FullSpectrum.
They also vendored Justin H. Rahb’s filament-mixer, a polynomial pigment-mix model trained on Mixbox (oil paint) to predict the resulting colors. Bambu Studio iterated through linear sRGB, then gamma-corrected RGB, and in April 2026, vendored a filament-mixer directly. We’re showing up with PrusaSlicer and EasyPrint integration now. We got to look at what was available, print our own test cards, and notice something nobody had done yet: the actual calibration of a model against measured FDM prints. Filament-mixer predicts oil paint behavior.
It’s good at what it was trained on; it just wasn’t trained on filament. So that’s the gap we’re filling: we ran necessary measurements, and we applied corrections to those measurements. What didn’t work
Kubelka-Munk. The canonical pigment-mixing model from paint science. It assumes pigments stirred together in one medium, but no consumer FDM printer does that. Bambu AMS, Prusa MMU, Prusa XL and INDX – they all swap filaments per layer. K-M solves a different problem. Beer-Lambert / HueForge stacking. This is the one I almost shipped. HueForge stacks translucent layers and looks down through them. Light passes through the top, hits the bottom, and comes back. Then I caught it: HueForge looks at flat prints from above. We’re looking at 3D objects from the side. Layers are adjacent, not stacked in the light path. Different geometry.
What worked This is halftone printing, not paint mixing. Once I got that, the physics got simpler. Side-view multicolor FDM is spatial optical mixing – adjacent thin layers blending in your eye at viewing distance. Same family as printing CMYK ink dots. The right starting formula is Yule-Nielsen, the standard halftone equation. Yule-Nielsen alone is already roughly twice as good as plain linear-RGB averaging. The ratios (in %) are 75:25, 50:50, 25:75, and 33:33:33. Not arbitrary. Layer-interleaved mixing isn’t continuous, it’s discrete layers. A 50:50 mix alternates one of each.