These tables represent the Planckian (thermal) and spectral locus output for WS2812B. The observer model used is the CIE 2012 10° observer. All RGB values are given as floating-point numbers between 0 and 255, so they can be scaled as desired for your application. This allows the values to be easily scaled to any designed brightness, or mixed with other colors, without losing precision. If you want plain RGB values to output to the LEDs, just round to integer. *** thermal.csv: The minimum achievable *approximate* color temperature with WS2812B is 638.0 K, which corresponds to G = B = 0. The maximum R component is at 1662.0 K. The brightest possible thermal (Planckian) temperature is 8743.7 K, at which point RGB = (216.15 255.00 255.00). The approximate color temperature of R = G = B = 255 is 7170 K, however, this is not actually Planckian color. As the dynamic range of the *actual* Planckian locus is enormous, the values have been scaled by a power function so that: R = 255 at maximum red (T = 1662.0 K) G = B = 255 at maximum thermal brightness (T = 8743.7 K) Values above 8743.7 K are capped so that B = 255. Thus, brightness will decrease with increasing temperature. The values given are: 1. Temperature in mireds (inverse megakelvins, 10^6/T) 2. Temperature in kelvins 3. R,G,B *** spectral.csv This represents an approximation of pure spectral colors. As the spectral locus is curved in XYZ color space, only the actual pure RGB primaries are achievable as true spectral colors; all the rest of them would require at least one negative RGB value, which is of course impossible. The values given are: 1. Wavelength in nanometers 2. R,G,B *** color.c, rgbxyz.c These are C functions which contain a variety of color transformation functions. color.c is generic; rgbxyz.c is specific to WS2812B and was calculated by the Octave/Matlab script rgbxyz.mat. The files lin2012xyz10e_fine_7sf.* are helper files for color.c (and are #included into color.c); they contain the data for the observer model.