This project was conceptualised with the aim of enabling learners to correlate the concept of light's waveform and the color it belongs to. Basically, by manipulating different parameters of the wave function describing a beam of light, see what color it corresponds to. This should help ground, by personal manipulation, the impact of a photons' frequency on the color of light.
Initially this was imagined to extend in two possible ways. One, was seeing how the mixing of colors worked, by describing multiple waves and playing around with them. This could be a fascinating foray to understand color theory, grounded much more in physics than in the notion of inks, pixels, and vague concepts of how displays work. I found this to be a potentially exciting line of thought and understanding, albeit not very necessary in learning physics/optics maybe.
The other was being able to manipulate and see the behavior of light's waveform, in parallel with seeing the physical optical phenomena that take place – for instance, refraction on the interfaces of media, splitting of colors through a prism, etc. In principle, it would be quite fun to be able to have a wave simulation of the double slit experiment, and more advanced experiments as well! Could this be made by programming elementally, the nature of how light's wave worked? I was (and still am) highly doubtful of actually being able to make for the entire imagined scope, because light is a transverse, electromagnetic wave. It's not like the wave itself is moving. The waveform, the depicted sine wave, is just a representation of the frequency with which the photons are vibrating, in my understanding. This is still an open question. It won't make sense to see the waveform move, and the real behavior of the waveform is likely to have a clash with physical observations, because as has been said often enough, the wave in reality is only a mathematical abstraction/representation, not the thing in itself.
Over a weekend project prototyping workshop for projects, I prepared a basic setup that would take fiducial input for accepting the wave's configuration, and (in principle), project the waveform on top of the fiducials' positions, and also show the color obtained.
The first point of conflict/confusion emerged at the question – given a wavelength, what color does it correspond to? Especially, what color on a computer screen does it relate to? There is quite a bit of discourse [on the internet] on this (not unlike most topics one can think of) , which mentions fascinating things about how the RGB rendering does not have a true correspondence with light's wavelength, that possibly HSB (Hue-Saturation-Brightness) has a better correspondence with the features of wavelength and amplitude of light, and a rough approximation, that for reasons of ease, I used. There's also a matlab function which I didn't find in time, and don't yet know how to engage inside my processing program at the moment.
For the fun of it, I added "RGB" channels beside the composite color box, to see what RGB configurations made the colors. And in playing around with it, I noticed something quite unexpected. No color in the spectrum, had all 3 RGB channels active at any point of time. (In retrospect, seeing that my RGB conversion was forced case consideration, this might just be a result of the specific code I copied.) But what this alerted me to, was the observation that the spectrum did not have all colors! This came almost as a shock to me. And after a small amount of thought, I recalled the color I knew for sure has all 3 RGB channels – and looked for the wavelength of grey. And not very surprisingly, read that grey, like white, was a mixture of all the wavelengths, but with lesser… quantity? [This continues to be a grey area in my knowledge. See what I did there?] We've always read that white is a mixture of all the colors. So, why was this surprising? I discussed around, and finally managed to articulate some notion of what was unexpected. That all colors aren't in the spectrum directly, means that nature has its own set of primary colors, which does not include all the colors that are seen. The colors in the spectrum, are fundamental, in some sense. Unlike RGB, inherently there're an infinitude of them. This sparked discussions regarding the choice of Red, Green, Blue, and the sensibility behind it. When discussing colors, especially in the context the computer, it appears rather confusing to figure out which came first. Is a color, a wavelength of light? Because in that sense, grey is not a color! Is a color a mixture of the red, green, blue channels? That seems like a rather contrived (and fairly inappropriate) way to see it. After quite a bit of discussion, we roughly came to a hypothesis that red green and violet makes more sense to be the primary colors, and that we'll read more to understand how this works. The next thing to do with respect to colors, is to allow for the definition of multiple waves, and see how different colors result from that. An alternate possibility, is to allow the choice of a color, and see what mixture(s) of waves allows for that to be made.