Color Cycle Picker

The “category10” color palette, originally developed by Tableau, was adopted as the default color cycle for Matplotlib 2.0 and is also used by default by D3.js and Vega, along with other software packages. While more aesthetically pleasing than the old Matplotlib default, it is unfortunately not colorblind-friendly.1 In an effort to improve this and promote the development of colorblind-friendly color cycles for scientific visualization, I built a color cycle picker that incorporates color vision deficiency simulation and enforces a minimum perceptual distance between colors, for both normal and anomalous trichromats. This is accomplished by performing color vision deficiency simulations2 for various types of deficiencies and enforcing a minimum perceptual difference for the simulated colors using the CAM02-UCS3 perceptually uniform color space (each type of deficiency is treated separately). Additionally, a minimum lightness distance is enforced, for better grayscale printability. The tool allows colors to be picked from a visualization of the CAM02-UCS color gamut and assembled into a color cycle. This visualization is performed using hardware-accelerated WebGL to allow for real-time interactive adjustment of parameters; the resulting palette is also visualized. The minimum perceptual color distance, lightness distance, and color vision deficiency simulation parameters are all adjustable. A hosted copy is provided, and the code is available in a repository on GitHub.

Color Cycle Picker Screenshot


  1. Personally, I have difficulty telling the second and third colors apart.  

  2. G. M. Machado, M. M. Oliveira and L. A. F. Fernandes, “A Physiologically-based Model for Simulation of Color Vision Deficiency,” in IEEE Transactions on Visualization and Computer Graphics, vol. 15, no. 6, pp. 1291-1298, Nov.-Dec. 2009. doi:10.1109/TVCG.2009.113  

  3. Luo M.R., Li C. (2013) CIECAM02 and Its Recent Developments. In: Fernandez-Maloigne C. (eds) Advanced Color Image Processing and Analysis. Springer, New York, NY. doi:10.1007/978-1-4419-6190-7_2  

Posted in , | Tagged , , , , , | Leave a comment

Pannellum 2.4

Yesterday, I released Pannellum 2.4.0. It doesn’t contain any major new features, although it does finally include translation support, which was an often requested feature. Also included are numerous minor improvements, a few new API functions, and quite a few bug fixes; see the changelog for full details. It had been more than a year since the last release—and I’ve been meaning to create a new release for a few months—so it was high time for a new release.

Posted in | Tagged , , , | 4 Comments

Amazon Echo Button Teardown

Amazon recently released the Echo Button, a Bluetooth Low Energy device designed for use with Echo devices (which I don’t own). Although it uses Bluetooth instead of Wi-Fi, I thought it might be a better device to repurpose than the Dash Button, due to its larger size and easily replaceable battery. Thus, I bought one to take apart.

Echo Button outside Continue reading

Posted in | Tagged , , , | 2 Comments

Light Bulb PCB

As part of a Halloween costume (I was a “bright idea”), I designed a light bulb PCB, which was mostly just an excuse to try out PCBmodE. It consists of seven addressable RGB LEDs, an ATtiny85 microcontroller, an ambient light sensor, and a rechargeable battery. The battery and an old hard drive magnet, for mounting the PCB, are attached to the back via double-sided tape. As one might expect, PCBmodeE worked well for this artistic circuit board design, given that it was designed to be used for something like this, but KiCad is much easier to use for just about everything else.

Light Bulb PCB: Front Continue reading

Posted in | Tagged , , , , | Leave a comment

Reserva Nacional Los Flamencos

While recently in San Pedro de Atacama, Chile, I drove out towards Argentina to look at the national flamingo reserve, which consists of a number of salt lakes (with flamingos). There are also other interesting geologic formations including rocks sticking out of the desert, the “Monjes de la Pacana.” Here are some photos of the reserve.Laguna Aguas Calientes Continue reading

Posted in | Tagged , , , | Leave a comment