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...

Date | |
---|---|

Colors | 16,777,216 |

Pixels | 16,777,216 |

Dimensions | 4,096 × 4,096 |

Bytes | 49,114,730 |