Remix.run Logo
noelwelsh 3 hours ago

Can anyone explain how this works? Humans have 3 (sometimes 4) cones, so I thought that going beyond 3 primaries wouldn't increase the perceivable gamut.

Update: thanks for all the great explanations!

layer8 3 hours ago | parent | next [-]

You are probably familiar with the horseshoe-shaped chromaticity diagram [0] of human-visible colors. A light source with three color primaries spans a triangle in that coordinate system. To cover the whole horseshoe, at least one of the vertices would need to be way outside the horseshoe. With four color primaries, you get a quadrilateral that makes it easier to cover a larger portion of the horseshoe.

The reason the visible colors form a horseshoe rather than a triangle is due to how the cones’ sensitivity ranges overlap [1]. They cannot be excited independently by the primaries of a display.

[0] https://upload.wikimedia.org/wikipedia/commons/1/1e/CIE1931x...

[1] https://upload.wikimedia.org/wikipedia/commons/thumb/0/04/Co...

summa_tech 3 hours ago | parent | next [-]

Excellent explanation.

I'd like to add that no light source can lie outside the horseshoe of the CIE xyz diagram: pure wavelengths are points on the curved line, everything that mixes them moves towards the inside of the space. So you're stuck with triangles that fit within it.

layer8 3 hours ago | parent | next [-]

I was wondering about that, since some color spaces have their primaries outside the horseshoe. Thanks for clarifying.

extesy 2 hours ago | parent | prev [-]

What does it mean then for ProPhoto RGB triangle to be outside of the horseshoe on that diagram?

AprilArcus 2 hours ago | parent [-]

It uses nonphysical "imaginary" primaries that have meaning within the coordinate system but not within the human perceptual system.

gallerdude 2 hours ago | parent | prev | next [-]

This was a really fun visualization, so I vibecoded it.

https://www.jackgaller.com/colorspace

pohl an hour ago | parent [-]

Nice. If I add a primary and then clicking optimize—without first moving the primary—it seem as though there are still only 3 primaries, because the new one doesn't move.

bbqbbqbbq 12 minutes ago | parent | prev [-]

[dead]

mitthrowaway2 an hour ago | parent | prev | next [-]

There's a lot of great explanations here, but none that quite put it the way I'd think of it.

If we had primary color wavelengths that could stimulate each cone independently, then it would work just like you say, and we'd only need 3 of them. But because the cone spectra overlap, we don't have "orthogonal basis vectors" to work with. Our primary colors each excite a mix of cone responses.

But no problem right? As long as each primary color has a different response, we at least have linearly independent vectors, and any student of linear algebra knows you can mix those together to act as an orthogonal basis and get any desired excitation of the cones. Right?

And that would be true, except that linear algebra assumes you can freely add or subtract vector amplitudes, but with LEDs we can only generate light, we can't send a beam of "negative green". So we're constrained to the subset of colors where the basis vectors all have positive amplitudes. And that's the smaller color space that results.

Daneel_ 3 hours ago | parent | prev | next [-]

Cyan is severely under-represented by monitors, so the extra pixel is a dedicated cyan. It dramatically improves the ability to display blue/green colours.

*edit: found the link I was after on this: https://moultano.wordpress.com/2026/06/19/where-to-find-the-...

ripe 2 hours ago | parent | next [-]

Wow, that's a great article about color! It answers many questions. Thanks for the link.

NoMoreNicksLeft 3 hours ago | parent | prev [-]

I was under the impression that yellow was a better candidate for this. But whatever. Can hardly wait for RGBCYM televisions that will make my wallet bleed.

AprilArcus 2 hours ago | parent | next [-]

The chromaticity diagram is basically a straight line between 640nm (red) and 545nm (green), so anything in between (including pure yellow around 570nm) can be reproduced with a linear combination of red and green.

RGBY televisions do exist, but their goal is to boost brightness in the yellow region, not color gamut.

stronglikedan an hour ago | parent | prev [-]

How about just a "true RGB" that will make your wallet bleed (at $31k): https://www.youtube.com/watch?v=aAOgZ6cjrio

rezmason 3 hours ago | parent | prev | next [-]

I don't have an answer, I'm just wondering out loud.

Cone cell activation is complicated. Displays with three well chosen primaries are economical and effective, but they aren't intended to produce every perceivable color. And our chromaticity diagrams, that pointy splotch that's often used to compare display gamuts, is based on a "standard observer" that is a simplified model for human perception.

An ideal pixel would be able to emit any kind of electromagnetic radiation of any intensity, kind of fun to think about but unrealistic and impractical.

What additional primaries mathematically do is expand a gamut from a triangle to a convex polygon. While ten or a hundred primaries would be bonkers, I bet we could fit a quadrilateral or a pentagon to the perceivable gamut in ways that'd see some gains.

rayiner 2 hours ago | parent | prev | next [-]

It's not as simple as "3 cones = 3 primary colors." Each type of cone has a response curve and three curves overlap: http://hyperphysics.phy-astr.gsu.edu/hbase/vision/colcon.htm.... And each cone has different sensitivities (blue is much more sensitive than red and green). So perfectly monochromatic light will stimulate two and usually three cones to varying degrees. When you mix "green" and "red" to get yellow, what you're actually doing is stimulating the green cones (but also the red cones) and the red cones (but also the green cones) in relative proportions that your brain perceives as yellow. But it won't necessarily give you the exact same response of the two cones as monochromatic yellow light.

ChrisMarshallNY 3 hours ago | parent | prev | next [-]

We have a very "fuzzy" visual perception. I remember seeing an RGB response curve of the human vision mechanism once. I doubt it was measured. Maybe they extracted it from the CIELab stuff.

Anyway, things like the green (or blue -can't remember) receptor have a strong curve in the green spectrum, but also a "bump," over in red (I think).

We're an organic mess.

Looking at RGB curves for LEDs, they are three perfect little mountains. No "bumps," anywhere.

I guess that the goal is to try to mimic the "messy" human visual perception.

Also, expect these monitors to be non-cheap. Companies like Eizo are having a difficult time, justifying their prices, these days.

Giefo6ah 3 hours ago | parent | prev | next [-]

The cones are not sensitive to a single wavelength but to a range.

The green-sensitive cones overlap with the red-sensitive cones, and to a smaller extent also with the blue-sensitive.

Full saturation red and blue are possible by emitting light on the edges of the visible spectrum.

Full saturation green, however, also activates the red and blue cones.

To cover the whole gamut is impossible, but you can approximate it with ~three green tones: a 490nm deep cyan that hits blue and green but not red, ~510nm that hits red and blue equally, and ~540nm the peak of the green cone.

Cthulhu_ 3 hours ago | parent | prev | next [-]

Humans can see more than the colors they can make with only combining RGB pixels; you can't make 'neon' colors with them, even though we can see them in real life, for example. Other commenters pointed to links showing the visible color gamut vs the RGB ones. Compare also with CMYK used in print, it can produce sightly different colors compared to display RGB.

jbverschoor an hour ago | parent [-]

The YouTube logo in HDR looks very neon to me

3 hours ago | parent | prev | next [-]
[deleted]
esafak 3 hours ago | parent | prev | next [-]

Remember that light is synthesized by combining the primaries; the spectrum is defined by their convex hull. You can expand the hull and ergo gamut by adding primaries.

The RGB setup we have strikes a balance between cost and visual quality. If the cost of adding primaries goes down you can add more to increase the quality. One issue is that the signals often assume RGB (channels), so the hardware manufacturer would have to adapt the RGB signal to their multi-primary hardware.

kibwen 3 hours ago | parent | prev | next [-]

I don't know either, but if we visualize the RGB color space as a triangle that is entirely contained within the weird shape that represents the set of all colors the human eye can perceive ( https://en.wikipedia.org/wiki/RGB_color_model#/media/File:CI... ), presumably the idea is to cover more of that human-perceived space via a quadrilateral with four anchor points rather than a triangle with three. Presumably the "C" in "RGBC" stands for cyan, and in the linked image the cyan portion of the color space is particularly poorly represented.

2 hours ago | parent | prev | next [-]
[deleted]
esafak 3 hours ago | parent | prev [-]

Remember that light is synthesized by combining the primaries; the spectrum is defined by their convex hull. You can expand the hull and ergo gamut by adding primaries.