Hacker News new | comments | show | ask | jobs | submit login

I was disappointed to read that they gave up the principled modeling approach (the 80-year old German paper mentioned early on in the article) and instead collected 100 data points that "looked good" and interpolated somehow.

The article says that the Kubelka-Munk model achieved color mixing that was "too realistic" and therefore difficult to use for the purpose of creating a distinctive brand palette. What this tells me is that they weren't looking for a model of how colors mix together, but a model of what colors look good together.

> "We know red and yellow should yield orange, or that red and blue should make purple--but there isn't any way to arrive at these colors no matter what color-space you use."

Well, that's clearly not true. In the HSL color wheel [1], orange is halfway between red and yellow, and purple is halfway between red and blue. Should have picked a better example.

[1] http://www.workwithcolor.com/hsl-color-picker-01.htm

Look at it another way. What is the goal of their product? A person should be able to sit down, and draw something. That person has a model in his head of what the drawing should look like. He picks and mixes colors to achieve this according to his intuition. So the goal of the program is to match human intuition, not to match reality. Why would real world paint be the optimal painting tool? The best way to match human intuition is to base the behavior of the program on data collected from human intuition.

Kubelka-Munk is fantastic for modeling the behavior of real world pigments as they're applied in thin layers on a canvas. However, since we were not trying to simulate the act of using physical watercolor, oil paints, etc., it was not only overkill but actually produced unintuitive results.

Our problem is more abstract. We want to appeal to the user's notions of how pigments blend together, but in such a way that the operation is predictable and can be hand tuned to avoid unpleasant cases. Ultimately, the mixing behavior that we released is inspired by the physical world, but is tuned by our designers to produce what they consider pleasing results.

You're correct in that, for example, purple lies halfway between read an blue in terms of hue. However, an interpolation between those colors based on hue that does not adjust saturation, will look quite ugly, as it passes through magenta, etc. The question is, how should one adjust the saturation?

There's nothing wrong with any given color space. It was designed with particular goals in mind, and those goals generally did not include attractive blending through linear interpolation. So, yes, we developed a means of hand-tuning the interpolation such that it produces colors that look good together, which is what our users really cares about.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact