All the sRGB colours in a Hilbert curve, sorted by their hue* in Björn Ottosson's Oklab colourspace.
The hues were computed as (M-script based syntax):
- W = M2*(M1*X).^(1/3)
- for each column w in W: atan2(w(3),w(2))
where:
- X is a 3x16777216 matrix of sRGB colours converted to linear RGB,
- M1 and M2 as defined in Björn's programming sample in his blog post.
Generated as a farbfeld image with C++ and the Eigen library, then converted to PNG.
*: I'm less satisfied with this one. There were 23 hue value collisions when I originally ran my generator, and my attempts to fix it only caused more collisions. I'm not sure how many are actual collisions or just floating-point error, so just I used the L component (lightness, w(1)) as a tiebreaker. I may revisit this in the future...