- Create a list of all 16,777,216 RGB colors
- Construct the upper half’s nested U-shaped geometry
- Mirror that geometry vertically to create the corresponding lower half
- Reserve a 16x8 region at the top and bottom center areas for 128 grayscale colors in each half, with the lightest ones placed at the top and the darkest ones placed at the bottom
- Generate 256 different chroma buckets, where chroma is max(R,G,B) − min(R,G,B)
- Split the middle chroma level between the two halves (dark at the top and light at the bottom), while assigning the remaining chroma levels to their respective half
- Group every color within each bucket by exact hue and sort by hue ascending
- Sort colors within each hue group by value, alternating the direction to produce changing light-to-dark patterns
- Distribute each chroma bucket around the nested U-shaped perimeters, preserving the exact number of pixels required by each bucket by evenly spacing the remainder pixels
- Place the RGB values on the canvas, producing continuous hue sequences and radial value transitions
Fun fact: Opposing chroma buckets contain the exact same number of pixels, where the more grayscale one contains fewer hues and more value levels, and the more saturated one contains more hues and fewer value levels
Image License: Public Domain (CC0).