A Short History of Color Theory
programmingdesignsystems.com
programmingdesignsystems.com
The eye gets colour information from the three types of cone, but it then processes this information into three new dimensions. Black against white, red against green, yellow against blue. So from a psychological point of view there are four primary colours: RYGB.
These are arranged like the points on a compassb so it's impossible to experience a mix of red and green or yellow and blue, just like it's impossible to be both north and south.
I think this is why these colours tend to be used more often in logos and board game pieces. The brain views them as more simple, and the psychological secodary colours (orange, chartreuse, turquoise and purple) as more complex.
It's a bit strange that UI designers are mostly using tools made for color production for selecting colors (rgb/hsv/hsl), not those that are appropriate for color selection like lch.
>I think this is why these colours tend to be used more often in logos and board game pieces.
Cool/serious vs. warm/playful colors, most businesses try to be serious, most toys want to be played with..
Most monitors that... Macs have? As a Windows/Linux user, none of the monitors I've used as my daily driver are wide-gamut. The only wide-gamut monitor I've really seen was in my university's computer lab. It displayed every color a bit more brightly, and my laptop didn't desaturate colors to compensate.
> Firefox does not implement the spec that restricts CSS colors to sRGB. Instead, it just throws the raw RGB coordinates on the screen, so e.g. rgb(100% 0% 0%) is the brightest red your screen can display. While this may seem like a superior solution, it’s incredibly inconsistent: specifying a color is approximate at best, since every screen displays it differently. By restricting CSS colors to a known color space (sRGB) we gained device independence. LCH and Lab are also device independent as they are based on actual measured color.
Yeah that explains why.
Calculating colors within CSS as part of a build step or on the fly is more a niche usecase though, so I'm a bit sceptic if lch capability within CSS would have a big effect on design tools considering the existing options mentioned above.
The main usecase is for design, from where you'd export hex values for development for most dev usecases.
LCH collides with Adobes own color system they use for Kuler/Adobe color, which is a proprietary perception based system. Pantone of course, it also rivals their proprietary system (they sell expensive color swatch books to designers), and NCS, another proprietary perception based system that is mostly used in interior design. Strong forces within the industry with an self preserving interest.
So the hopes are more on rivaling tools like Figma and Sketch to implement LCH. With LCH they could even do print, because process colors can be easily derived from those..
The limitation in so many cases, and the reason why there's a constant crossover in this history between textiles dying, artists, and researchers, is that producing substances which represent a given color and have good light-fastness are hard to come by unless there's a strong commercial reason to explore the space.
At one point I was looking to see if I could buy paints for my kids to play with in the "true"-er primary colors, CMYK, and that led down a big rabbit hole (basic answer is "not easily", unfortunately) eventually leading me to [1] which is a fascinating look at our ability to span the gamut through some set of primaries.
From personal experience, I always find it amazing when I see a color magazine in the light and note that some parts are reflective and some are more matte; and that this is not a function of intent of any sort -- those are just the incidental properties of the physical pigments selected for their saturation/brightness/fastness primarily.
One caveat to the acrylic inks for a CMYK process is that they need to be really thinned down with an acrylic medium in order to get the proper transparency to achieve red, green, and blue.
https://crystalbridges.org/blog/james-turrell-josef-albers-c...
Sound can have as many "dimensions" as you care to analyze, but physically you have pressure & velocity embedded in a spacetime continuum.
I think the fundamental three-dimensional thing is that we're all mostly limited to reasoning about three-dimensional objects in a three-dimensional world.
It is true that in practice we are unable to replicate the colours we can perceive. But it is possible to create a colourspace that completely contains the gamut of perceivable colours using only three dimensions.
In that world, you would be arguing there are only two colours. Yet, the image on those green-blue TVs would obviously not be an accurate reproduction if viewed by a person with normal RGB colour vision from our world.
Similarly, compared to Geordi La Forge, we are all colourblind. He can distinguish thousands of different wavelengths of light independently, and to him our current RGB videos look nothing like the reality they attempt to depict, due to all the colours they throw away.
So colour as perceived by humans is indeed three-dimensional.
There are no three colors that can be mixed to produce the whole gamut of colors that humans can perceive. That is, there are shades that are visibly distinct that can not be produced by the closest pigments we have to primary cyan/magenta/yellow, and similar cannot be produced by mixing of monochromatic light.
Our perception is a window into the infinite dimensional space of frequency/intensity that can be very well-described by three parameters, but that is not adequate to completely describe colors even as perceived by humans.
Pigment maps into our perception of colour are possible in theory, but it is impossible to make an ideal pigment in practice nor an ideal substrate, which is why you see the issues you do when trying to produce them in practice.
With sound, what we hear is pretty much all the frequency information within our range.
With light, the huge frequency complexity gets reduced down to our three base colors. This is why a certain "color" can be produced with an uncountable number of frequency combinations.
In some sense the eyes and ears are at opposite ends of a spectrum. The eyes give you lots of information about the direction light is coming from, but barely any information about its spectrum (only three types of cone), whereas the ears give you lots of information about sound's frequency spectrum, but barely any information about its direction (only two ears).
Come to think of it, this could be phrased as a tradeoff between resolution in position and resolution in frequency. It's the uncertainty principle!
On a similar note, color is not fundamentally three-dimensional; that's a function of our eyes having three band-pass filters. Light itself is infinite dimensional; any function mapping frequency to intensity corresponds to a "color" of sorts. We can only perceive colors in terms of how they activate the three different sensor types (four including intensity).
Or you could use a B-L B-R pair for tone and a third component for Luma - three-dimensional.
Or you can give the amplitude of Red, Green and Blue; three dimensions.
You could add a fourth dimension, RGB+Luma, but the fourth dimension is useless in describing a given perceived colour, as the activation of the intensity receptor is a function of the activation of the three colour receptors, it is only there for high-gain situations.
Sound is not one-dimensional, as simply considering the pressure of a point is insufficient as a description of sound perception of humans. Indeed, we perceive variations in pressure, not pressure itself (consider the balancing of the pressure of the inner ear). In order to understand sound, you fundamentally need two dimensions, either pressure and time, or frequency and amplitude. This is only for an instantaneous perception of sound, in order to record "a sound", you need three dimensions. Although you could indeed plot a time-series of pressures, this does not describe what actually is happening - for a time-series of pressures to be interpreted as a recorded sound you necessarily need a sample rate, otherwise the physical interpretations are infinite. This is why a spectrogram is three-dimensional - frequency, amplitude, and time. Hence, the sounds we operate on and process are three-dimensional, as any representation of a sound is tridimensional, either a time series of pressure, time and sample rate, or a continuous spectrum of time, frequency and amplitude.
While in classical physics, time is not considered a dimension, if you what you want to do is encode a signal, or construct a mathematical model, time is very much a dimension.
Of course you are free to use a different definition of "dimension" than the rest of the world. But this won't help making discussions any easier.
If you want to use the physics definition of dimensions in a discussion about colourspaces that has nothing to do with physics jargon, that's ok. If you want to represent amplitude over time, you need two dimensions. There is no graphical representation of sound that can be done in less than two dimensions for this reason.
If you want to graphically represent the human perception of sound, you need three dimensions, that correspond to frequency, amplitude and time.
Likewise with sound, unless you want to describe it as just the amplitude at a single spatial point versus time, in with case sound and color are just 1D (plus time), which isn't a useful model since you now have to account for all spatial points.
If you want, here is something you can do. Get a square, inside of that square plot the x axis for frequency, and the y axis for time. For every frequency x, at every time y, choose a luminosity level going from 0 from null amplitude to 1 corresponding to the entire amount of energy in the observable universe.
That square will be able to represent perfectly colour over time, what you claim is "infinite dimensional", in a three-dimensional space.
Get a square, inside of that square, plot the x axis for dimension, and the y axis for time (the x axis is discrete, taking values of 1, 2, 3, ... up to N). For every dimension x, at every time y, choose a luminosity level going from 0 from null amplitude to 1 corresponding to the entire amount of energy in the observable universe.
That square will be able to represent perfectly ND position over time, which I claim is N dimensional (plus time), in a three dimensional space.
Much more simply, you can represent an Nd point in 2d, with the first dimension indexing dimension, and the second dimension indexing value. The 2D representation isn't the space. It's a single point in the space, which can vary along some number of degrees of freedom (N in this case).
If that first dimension of the two (the index dimension) was continuous, and the second still represents value, then we're representing the set of 1D functions, which is infinite dimensional. That's how we represent a frequency distribution.
You cannot represent an n-dimensional point in 2D; that means representing an n-dimensional point bijectively onto a finite a̶m̶o̶u̶n̶t̶ ̶o̶f̶ ̶2̶D̶ ̶s̶p̶a̶c̶e̶ number of 2D points. You can represent one n-dimensional point using an entire 2-dimensonal space, but that's not what I am talking about. There is no bijection possible from one spatial dimension into two spatial dimensions because all R->R^2 and so on bijections are impossible to construct continuously .
A frequency distribution is not the set of 1D functions. A frequency distribution represents one 2D function. Indeed, the amplitude of each possible frequency is in reality the Fourier transform of a 2D, or one argument function.
The function f(x) = 2x^2, is a 2D, one argument function, as it describes the relationship between two dimensions.
A 1D wave is actually a 2D function. You cannot abstract away time in this situation. There is no such thing as a 1D function; all functions require at least two dimensions. A 1 argument function necessitates a 2D space. For example, s = vt + a/2(t^2) is a relationship between two dimensions, time and displacement.
Here's a 3d point in 2d with a discrete dimension and a continuous one:
(x1, x2, x3)
Or if you want it with a continuous horizontal dimension, using dirac deltas makes it trivial, but you wanted it in a finite space, so we can use all sorts of other sets of orthogonal functions. I'll use sinusiods. To represent any 3D point (x1, x2, x3) as a function that takes a finite amount of 2D space, define
g(x1, x2, x3) = f, where f is the following function from R to R:
f(x) = x1 * sin(x) + x2 * sin(2x) + x3 * sin(3x).
So that's representing any point in R^3 in a finite 2D space, with x and y=f(x), just like in your original construction with x=frequency and y=time and z=luminosity=f(frequency, time).
For the reverse, to make it a bijection, make use of the fact that the integral from negative pi to pi of 1/pi sin(m x) sin(n x) is 1 if m == n and 0 otherwise.
h(f) = (
integral 1/pi sin(x) f(x),
integral 1/pi sin(2 x) f(x),
integral 1/pi sin(3 x) f(x)
) = (x1, x2, x3)
g and h are inverses, so we have a bijection. Crucially, the bijection is between R^3 and a very particular set of functions from R to R.
With the set of sin(i x) functions for different i, you can make a bijection between any R^N and a particular set of functions from R to R, so the fact that there's an (x, y=f(x)) representation doesn't matter.
And this why your original construction doesn't work. You didn't make a function from the set of frequency distributions to R^3. You made a function from the set of frequency distributions to the set of functions from R^2 to R. The set of functions from R^2 -> R is an infinite dimensional set, which is a very well established fact. See [0] for a bunch of different explanations of this fact.
[0] https://math.stackexchange.com/questions/2599827/proof-that-...
If you want to represent any given colour spectrum as a set of real numbers, of course that isn't possible, because a colour spectrum can only be described as either a 2D space or a function. However, that's not my assertion, my assertion is that you only need 3 dimensions in order to describe the human perception of color, and that you do not need an infinite number of dimensions in order to represent a colour spectrum.
Your arguments for the three dimensionality don't depend on the fact that we're humans talking instead of, say, mantis shrimp whose color perception needs over a dozen dimensional representation.