Mixbox is a practical library for paint-like color mixing

  • Treats colors as pigments using Kubelka & Munk
  • Packed in a simple RGB-in, RGB-out interface
  • Available in C++, Python, GLSL and more
  • Treats colors as pigments
  • Simple RGB-in, RGB-out interface
  • C++, Python, GLSL and more


Try it Out!

Try it Out!

The best way to appreciate pigment mixing is to feel it on your own. Here's a demo painter for you to try Mixbox out.

The best way to appreciate pigment mixing is to feel it on your own. Here's a demo painter for you to try Mixbox out.

Color Effects of Real Paints

Color Effects of Real Paints

Color Effects of Real Paints

  • Rich Gradients with Hue Shifts
  • Natural and Vibrant Mixtures
  • Juicy Brushstroke Falloff
Paint Effects Paint Effects



Painting Software

Painting Software

Paint Apps

Mixbox

Mixbox

Mixbox

Software-vs-Mixbox Software-vs-Mixbox Software-vs-Mixbox
Software-vs-Mixbox Software-vs-Mixbox Software-vs-Mixbox


Impact on Digital PaintingArt

Layering of brushstrokes

Satisfying Smudging

Satisfying Smudging

Satisfying Smudging

No more muddy mixtures, smudge brush is now your friend! It'll help you bring natural gradients into your art.

No more muddy mixtures, smudge brush is now your friend! It'll help you bring natural gradients into your art.

No more muddy mixtures, smudge brush is now your friend!

Juicy Brushstrokes

Juicy Brushstrokes

Juicy Brushstrokes

Layering of textured brushstrokes won't desaturate your art anymore. Brushes will have a rich and vibrant fallof.

Layering of textured brushstrokes won't desaturate your art anymore. Brushes will have a rich and vibrant fallof.

Layering of textured brushstrokes won't desaturate your art anymore!

Smudging
Layering of brushstrokes

Rich, Deep Gradients

Rich, Deep Gradients

Rich, Deep Gradients

Enjoy the hue shifts and radiant midtones! Build beautiful gradients from dark colors using just the pen pressure.

Enjoy the hue shifts and radiant midtones! Build beautiful gradients from dark colors using just the pen pressure.

Build beautiful gradients from dark colors using just the pen pressure.




Natural Traditional Media

Natural Traditional Media

Realistic Fluid Simulation

Realistic Fluid Simulation

Mixbox is an essential part of Rebelle – a painting tool with beautiful digital oils and watercolors.

Mixbox is bringing realistic colors of liquids to Flip Fluids add-on for Blender.

Natural Traditional Media

Mixbox is an essential part of Rebelle – a painting tool with beautiful digital oils and watercolors.

Natural Traditional Media

Mixbox is an essential part of Rebelle – a painting tool with beautiful digital oils and watercolors.

Realistic Fluid Simulation

Mixbox is bringing realistic colors of liquids to Flip Fluids add-on for Blender.

Realistic Fluid Simulation

Mixbox is bringing realistic colors of liquids to Flip Fluids add-on for Blender.

For Developers

  • Mixbox has the classic lerp interface
  • You pass RGB colors in and get the mixed RGB out
  • Support for Unity and Android Studio
  • Mixbox has the classic lerp interface
  • You pass RGB in and get RGB out
  • Support for Unity and Android Studio
  • Mixbox has the classic lerp interface
  • You pass RGB colors in and get the mixed RGB out
  • Support for Unity and Android Studio
  • Mixbox has the lerp interface
  • Pass RGB in and get RGB out
  • Support for Unity and Android
#include "mixbox.h"

int main(void) {
  uint8_t r1 =   0, g1 =  33, b1 = 133;
  uint8_t r2 = 252, g2 = 211, b2 =   0;
  float t = 0.5;                       
  uint8_t r, g, b;

  mixbox_lerp(r1, g1, b1,  // first color
              r2, g2, b2,  // second color
              t,           // mixing ratio
              &r, &g, &b); // result

  printf("%d %d %d\n", r, g, b);
}
uniform sampler2D mixbox_lut;

#include "mixbox.glsl"

void main(void) {
  vec3 blue = vec3(0, 0.129, 0.522);
  vec3 yellow = vec3(0.988, 0.827, 0);
    
  float t = 0.5; // mixing ratio

  vec3 rgb = mixbox_lerp(blue, yellow, t);

  gl_FragColor = vec4(rgb, 1.0);
}

import mixbox from 'mixbox';

let blue = "rgb(0, 33, 133)";
let yellow = "rgb(252, 211, 0)";

let t = 0.5; // mixing ratio

let rgb = mixbox.lerp(blue, yellow, t);

console.log(rgb);





import mixbox

rgb1 = (0, 33, 133)  # blue
rgb2 = (252, 211, 0) # yellow
t = 0.5              # mixing ratio

rgb_mix = mixbox.lerp(rgb1, rgb2, t)

print(rgb_mix)






import com.scrtwpns.Mixbox;

public class MainActivity extends Activity {
  @Override
  protected void onCreate(Bundle saved) {
    super.onCreate(saved);
    int color1 = Color.rgb(0, 33, 133);  // blue
    int color2 = Color.rgb(252, 211, 0); // yellow
    float t = 0.5f;
    int colorMix = Mixbox.lerp(color1, color2, t);
    View view = new View(this);
    view.setBackgroundColor(colorMix);
    setContentView(view);
  }
}
fn main() {
  let rgb1 = [0, 33, 133];  // blue
  let rgb2 = [252, 211, 0]; // yellow
        
  let t = 0.5;  // mixing ratio
    
  let [r, g, b] = mixbox::lerp(&rgb1, &rgb2, t);
    
  println!("{} {} {}", r, g, b);
}





using Scrtwpns.Mixbox;

public class NewBehaviourScript : MonoBehaviour
{
  void Start()
  {
    Color blue = new Color(0.0f, 0.13f, 0.52f);
    Color yellow = new Color(0.99f, 0.83f, 0.0f);
    float t = 0.5f;

    Color mixed = Mixbox.Lerp(blue, yellow, t);
 
    Debug.Log(mixed);
  }
}

Coding Examples

See how Mixbox works in these fun and easy projects! They run live in your browser, so you can either play with the graphics or with the code.

See how Mixbox works in these easy projects! They run live in your browser, so go ahead and try them out.

How it works

Do you want to know more about the science behind Mixbox? Here's our research.

Do you want to know more about the science behind Mixbox? Here's our research.

Licensing

Do you want Mixbox in your software? No problem! We have many flexible licensing options. Whether you're an indie developer or a big corporate, we'd be happy to hear you out and tailor the license to your needs. Get in touch with us to get the ball rolling!

Do you want Mixbox in your software? No problem! We have many flexible licensing options. Whether you're an indie developer or a big corporate, we'd be happy to hear you out and tailor the license to your needs. Get in touch with us to get the ball rolling!


Secret Weapons


Hi! We are the development team behind EbSynth and Mixbox.We both love computer graphics, art, and VFX. Together we founded Secret Weapons to transform our research into powerful tools for visual artists.

Frequently Asked Questions

Frequently Asked Questions

We would love for you to have Mixbox inside your favorite painting tools. However, Mixbox is not a plugin you could install yourselves. It is a piece of code for a new blending mode, and the only way to get it in painting software is if the developers do it. A possible way to achieve that is by letting them know you want it. Here are some user forums where you can drop a note if you'd like:

Yes, Mixbox is released under the CC BY-NC 4.0 license. That means you can evaluate it for free. You won't need to buy the commercial license until you're ready to launch your product. Please get in touch with us by that time to set the license up: [email protected]

Cadmium Yellow Light
Cadmium Yellow Light
Hansa Yellow
Hansa Yellow
Cadmium Yellow Deep
Cadmium Yellow Deep
Cadmium Orange Light
Cadmium Orange Light
Cadmium Orange
Cadmium Orange Medium
Cadmium Red Light
Cadmium Red Light
Cadmium Red Medium
Cadmium Red Medium
Pyrrole Red
Pyrrole Red
Alizarin Crimson
Alizarin Crimson
Quinacridone Magenta
Quinacridone Magenta
Cobalt Violet
Cobalt Violet
Ultramarine Violet
Ultramarine Violet
Ultramarine Blue
Ultramarine Blue
Cobalt Blue
Cobalt Blue
Phthalo Blue
Phthalo Blue
Cerulean Blue
Cerulean Blue
Prussian Blue
Prussian Blue
Phthalo Green
Phthalo Green
Permanent Green
Permanent Green
Permanent Green Light
Permanent Green Light
Sap Green
Sap Green
Burnt Sienna
Burnt Sienna
Indian Red
Indian Red
Bone Black
Bone Black

You might be familiar with terms like additive and subtractive mixing. True pigment mixing is a complex combination of both. When you push paints out of a tube and mix them, the light entering the substance starts bouncing around. It gets repeatedly scattered and absorbed, and that's how the final color is made. The process is called subsurface scattering. If you want to know more, watch our Introduction Video, or our Siggraph Talk.

Interested in News?

Interested in News?