Practical Pigment Mixing for Digital Painting

Today’s painting software has a significant flaw: colors do not mix like actual paints.
For instance, blue and yellow make gray instead of green.

This is because the majority of painting software is built around the RGB representation. RGB simulates the mixing of colored lights. Paints, however, get their color from pigments. Physically-based mixing of colored pigments is predicted by the Kubelka–Munk model. However, implementing it into any painting software has been too impractical because it required to leave the RGB representation behind and to rebuild the core structure of a program. That's the main reason why Kubelka-Munk has never been adopted by painting software in practice.

We realized that if we want to make Kubelka-Munk practical for integration into painting software, we need to make it work as a blackbox. And that black box must take RGB inputs and produce RGB outputs. Which is what we did. We packed the Kubelka-Munk model into and RGB-in RGB-out box and we call it Mixbox.

Watch how Mixbox performs next to real life acrylic paints and next to current professional painting software:

Rebelle Pigments

Being this simple plug-and-play module, Mixbox can be easily integrated into any painting software. We are happy to announce that Mixbox is shipping in Rebelle 5, the leading artistic software in simulating traditional media. Their developers brought this whole color issue to our attention and we are very grateful for many consultations and useful feedback they provided during our research. Definitely go check Rebelle out, their watercolors and oils are absolutely stunning!

If you are interested in implementing Mixbox into your painting software as well, don't hesitate to get in touch.

The Paper

We have written a technical paper that was published at ACM Transactions on Graphics 40, 6, Article 234 (December 2021), and presented at SIGGRAPH Asia 2021. If you are interested in our technology and would like to read about the obstacles we faced and solutions we came up with, here is our paper:

If you'd like to try Mixbox out yourself, you can download it on our GitHub:

If you're not much of a reader and would rather watch our presentation, where we explain how pigment mixing really works and how we managed to pack it into an RGB-based blackbox, here it is:

If you have any questions, suggestions, or feedback, we'd be happy to hear from you, don't hesitate to drop us a message!