Introduction To see the visualization, click here. The chromaticity diagram is one of the most informative diagrams in color science—it shows the range of colors the human eye can perceive and what portion of that range our displays can reproduce. While the diagram is quite interesting on its own, I feel like there is some information that begs to be explored. I wanted to do the following: intuit…
Introduction There was a very interesting article I came across that I highly recommend discussing the gamma function that addressed color mixing. Essentially: color mixing is often done inaccurately. For example, if you mix two sRGB colors by just averaging them, that color will not be the same color as if you just shined two flashlights of those colors (at 50% brightness) and overlapped them.…
Here is a point cloud containing $2^{15}$ particles for exploring the various color spaces (or, more accurately, exploring the projection of sRGB into these spaces). They have various purposes, but CIELab, OKLab, and CAM16-UCS are all designed to be perceptually uniform. This design is built to make it easy to see the differences and surprising variability between these three spaces, and contrast…
Introduction In the background of this page you can see an invisible sprite leaving a trail of multi-colored “smoke.” Feel free to click and drag on the page itself, your cursor will also give off colored smoke. The experience works in both light and dark mode but is best viewed in dark mode, so click the ⚪️/⚫️ button to switch. Scroll down for an empty area to interact with the smoke and for…
Previously I have used the concept of dithering with colors, but we can apply it to any system. Let’s see how this would look in the context of time: 12:3456 Perhaps the only benefit is that you can somewhat estimate the milliseconds without needing the space to write them, but you can already do that with regular intuition. In any case, I do think it makes for a nice visual.
Audio Graph Below you can find a graph representing the spectrum of the audio input. The graph is interactive, so feel free trying to click and drag the graph or zoom to see better. Additionally, two different gradients are used depending on whether you are viewing in dark mode or light mode, so click the ⚪️/⚫️ button to switch. ▶️
Introduction It’s quite common to see an image or to want to have an image in grayscale. What is it that we are doing when we have a grayscale image? We are deleting two dimensions—hue and saturation—from the color space representing our image. However, why cannot/why don’t we delete the other dimensions? Why is this the only standard operation? The problem at the heart of the matter here is that…
Introduction Here we are using a dithering method to analyze the differences between three color spaces, namely HSL, Okhsl, and CIELch. The strategy being used is similar to that deployed here, but there is one major difference. Here, when we dither our colors, we are not anihilating any specific one, but rather, all of them. Borrowing the notation from that post, we have that for every color $c$:…
Introduction This shader is demonstrating what it would look like to remove a portion of the color wheel. The inspiration? I just don’t like the color green (🤮) and wanted to get rid of it… however, this gave me the inspiration to see what it would look like if I could optionally remove any color by removing a sector from the color wheel. So now, with this shader, we can see what that would…
Introduction This shader displays images with a portion of the color wheel being impossible to show, instead being displayed as noise being dithered so as to approximate that color. For more information, see here. Shader ▶️ Upload Controls ▶️/⏸ Button: Controls time, causes noisiness to evolve over time and smoothens dither Slider: Controls the annihilated hue. Runs counterclockwise starting from…
Hey there! I’m a software developer with a focus on imaging, color management, and visualization. I graduated from a master’s program in Imaging and Light in Extended Reality in 2022 and received my bachelor’s degree in Mathematics from Princeton University in 2020. This website mostly functions as a way for me to teach myself and strengthen my understanding of what I like to…