Exploring the Visible Spectrum in Python
codedrome.com
codedrome.com
This is why rainbows do not have purple at the edge, and why prisms do not create purple; it is a "non-physical" color (I made that term up, but it hopefully makes sense given my explanation above).
For a more physically-sound mapping of wavelength to color, see the CIE XYZ color system [1]. In particular, in Figure 2, the "pure wavelengths" are given as points along the outside edge of the curved surface, and as you can see, purple does not exist along that outside edge.
For those interested in simulation of color, I highly recommend Jiahao Chen's old notebook "The Colors of Chemistry" [2], which goes through a lot of these concepts, and accurately simulates things like the color of solutions just from knowing their chemical composition. Truly fascinating stuff.
[1] http://www.fourmilab.ch/documents/specrend/ [2] https://github.com/jiahao/ijulia-notebooks/blob/master/2014-...
My very fuzzy recollection is it was this specrend code that was behind the oops of a "The Universe is green!" NYTimes front-page(?) article - someone's research generated spectra, and for PR they derived a color using off-the-web code, but didn't recognize the bogosity of the output value. Red-shifted faces.
The Wikipedia discussion of violet[1] currently seems plausible - yay. Unlike the "Black-body radiation" article,[2] which again has a CIE chromaticity diagram with a blackbody curve going through yellow and missing white, which is indicative of broken whitepoint math. Oh well.
> This mapping of wavelength to RGB value is very misleading
As is so much science education content. It can be fun to imagine how different science learning might be if content wasn't so broken.
[1] https://en.wikipedia.org/wiki/Violet_(color) [2] https://en.wikipedia.org/wiki/Black-body_radiation
About purple, recently I've been looking at pictures of rainbows, and one in particular caught my attention, it shows several (I believe 5) concentric rainbows. The order of the colors alternate on each rainbow, so of the outermost rainbow has red on the outside, the one right next to it has blue on the outside and red on the inside. Then if you look at the intersections or the space in between rainbows, it looks purple.
What makes that space look purple? And what makes the color order alternate?
There's also something odd to me about how one chart appears to be polynomial and the other linear.
Lastly the mapping of RGB value to the frequency on the chart is inconsistent between the two charts. In the first we see 255,0,0 at ~480THz and in the second at over 500THz
In short, neat concept but I think the output needs a little validation.
Been playing around with "inverted colors" lately and noticed that the inversion is purely mathematical, but not perceptual.
For example, if you have the RGB color (120, 30, 10) the inverse of that is (135, 225, 240). But our eyes have different sensitivity to different colors, so when you invert a whole picture, the contrast gets all messed up and it's very hard to tell things apart (wanna try it? Set your screen to inverted colors then watch a video on YouTube and you'll see what I mean).
So, does anyone know how to get "perceptually equivalent" inverted colors?
There was entirely to much text and code for me to bother reading it all and see if it actuallt does somethig more...
Seems a little lean on the color science front. colour-science.org could have done all of this, with much greater focus on the science.
You can entirely encompass it using imaginary primaries, which is what some color spaces do (e.g. ProPhoto RGB), but it is physically impossible to manufacture a linear primary-based display which does. Adding extra primaries however does greatly help. DLP did this by having 6 (I think) primaries, but I don't think it was widely taken advantage of.
For a visual representation of the problem, look at the first diagram on https://en.wikipedia.org/wiki/Color_space and imagine how to encompass the colored region using a linear combination of three (or more) points within said region. (You can't.)
For the long answer, study up on human tristimulus response curves and how those interact to create the Planckian locus on CIE xy colorimetry diagrams.
Another use is enhancing saturation of an image. My DLP projector has a mode like this to take advantage of its 6 primaries. Enhancing saturation can produce a convex gamut even from a non-convex one (e.g. sRGB), the only means of reproducing of which may be with additional primaries.
By my estimation, the main problem with Quattron wasn't that it had a 4th primary, which is legitimately useful. It's that - as you point out - it didn't. It literally did not have a yellow primary; just a yellow filter illuminated by the red and green primaries. Thats, like, total hokum.
Now the reality is that those highly saturated colours are not very common in natural surfaces, a natural reflectance gamut such as Pointer's Gamut or SOCS show that no chromaticities reach the Spectral Locus.
Colours outside Pointer's Gamut are typically created with highly saturated emitters such as LEDs or lasers. Because they are spectrally sharp, Observer Metamerism is noticeable and two persons might experience very different visual perception for the same stimulus.
I still remeber when I first realized that white color from the pc-monitor is not white.
The best I can do, having studied Color Science at RIT, is that white is any spectral power distribution a person identifies as white. Yes, it’s a circular definition.
The topic is deeper than it might seem. I can put someone in a room and show them a color they would swear to be white. And then, in an instant, I can change that color by changing the surround, what you see peripherally. It’s freaky.
https://www.amazon.com/Appearance-Models-Imaging-Science-Tec...
I went looking around to see if I could find a better resource to help you dive into the topic in a more accessible manner. To my surprise Khan Academy seems to have a decent sequence of lectures on Color Science. I didn't watch the videos but the topics cover a reasonable portion of the basic knowledge one needs to start exploring Color Science: