So I plotted all the 255 colors on a grid based on Lab coloration. I made layers to group together colors with similar L values. It helps to illustrate some of the space you have to traverse.Luminous yellow is out there, so it makes sense that it’s harder to mutate. I bet it’s impossible to mix. The best you could manage would be to mix it with some of the colors close to it and double up on the yellow. As long as you don’t crowd out the yellow. Same with all the extreme pointy ends.
for the goo mutation step, a graph has been generated that links all the colours together in a somewhat sensible way, and it steps through that graph to whichever neighbour is closest to the target than the current colour is; the random mutation then kicks in to sometimes also step it 1 neighbour in any direction.
the graph is generated by starting from each of the 255 colours, and evaluating for all the other 254 colours which of the 254 remaining colours in closest to the current colour, whilst also being closer to that other colour than the current colour is, and adding a link between those colours to the graph. Basically ensuring that no matter which colour it is morphing towards in the goo mutation (aka the 255 gleam colours) there is always a step you can take in the graph that brings you closer to the target than the current colour is and that those steps are somewhat minimal in distance.
Distance here, is measured using the CIEDE2000 colour distance metric.
Colour mixing is a linear combination of the colours in the Lab color space, and then the result is mapped to the closest in the palette, again with the CIEDE2000 colour distance metric.
So, if we ignore L (the unseen third dimension in this graph) then we could expect mutation between the two colors in the left image to step through along a path somewhat like what is shown in the second (depending on whether there is a bias to step distance increments or not). While mixing equal amounts of the two colors of pigment would likely return the color in the magenta circle, since it’s roughly equidistant between the two initial colors.
I’m curious how mixing would work between two colors with no other colors reasonably between them. For example, if we mix the two colors shown below in equal parts, which color spray will we get? Do we break ties based on stack order in the mixer? As in most left pigment wins?
Trust that I will do some testing
you wouldnt get the magenta circled one most likely, it is taking the weighted average of the colours, then picking the “nearest” colour, which is going to be one of those two extra that you circled in white instead.
In the bottom case with no colours closer than the two inputs, you would never be able to get anything other than one of those two colours as output. the “breaking ties” case if the inputs were equal in count is likely just going to be whichever has the smallest color-index
Yeah, after I posted that, I realized it was more likely to go along the grey line. That’s what I get for summarizing complex color theory while at work!
I hadn’t thought of color index!