The Blink implementation uses a white point of [4200, -1050] when calculating the custom CAM16 matrix. These are clearly not plausible chromaticity coordinates, and appear to have slipped in by mistake. As long as "discount illuminant" is used in all XYZ <-> JMh conversions (as recommended by Luke Hellwig) these values appear to have no effect, as the same matrix is applied to the input white and input XYZ, so cancels out. However if "discount illuminant" is disabled at any stage, these values cause strong colour casts.
Changing to the coordinates of the Equal Energy illuminant [1/3, 1/3], which is the reference illuminant in CAM16, means "discount illuminant" can be disabled with results that are more what might be expected.
The Blink implementation uses a white point of [4200, -1050] when calculating the custom CAM16 matrix. These are clearly not plausible chromaticity coordinates, and appear to have slipped in by mistake. As long as "discount illuminant" is used in all XYZ <-> JMh conversions (as recommended by Luke Hellwig) these values appear to have no effect, as the same matrix is applied to the input white and input XYZ, so cancels out. However if "discount illuminant" is disabled at any stage, these values cause strong colour casts.
Changing to the coordinates of the Equal Energy illuminant [1/3, 1/3], which is the reference illuminant in CAM16, means "discount illuminant" can be disabled with results that are more what might be expected.