Sorting in the LCH Color Space: Jan 2025
Tiny improvements to color sort; medium improvements to grey sort.

See other posts here: Sorting by Color in the LCH Color Space
Two-Stage Rounding Hue and Luminance
Prior state
Hue values rounded up to increments of 20: CEILING.MATH(K2,20)
The problem
Hue values that were very close got pushed far away.
- 19.9 would round up to 20;
- 20.1 would round up to 40.
Ideally, 19.9 & 20.1 would end up closer to each other.
Updated State
Hue values round down a small amount and then round up: CEILING.MATH(FLOOR.MATH(K2,5),20)
- 19.9...
- Rounds down to 15
- 15 rounds up to 20
- 20.1...
- Rounds down to 20
- 20 rounds up to 20
Luminance is similar: CEILING.MATH(FLOOR.MATH(I2,3),10)
I think I like the look of it better; I definitely like the math of it better.
Simplifying the Grey Sort
Prior state
Shades of grey, identified as colors with a Chroma value < 4.1, were pushed to the start (lighter greys) and end (darker greys) of the color sort. Otherwise, they sorted the same as non-greys.
The problem
Sorting the greys primarily by Hue looks weird; the low Chroma values make Hue less visually relevant for grey.
Updated
- I expanded the grey range from 4.1 to 4.9. I may push the range to 5.0 or a little beyond, once I resample some of my colors on the 4.9 border.
- All greys now have a static value of 360.
- Instead of rounding Luminance for the greys, I'm using the full value for Luminance.
The net effect of those last two bullet points: I'm ignoring Hue, sorting by non-rounded Luminance, and ignoring Chroma.
Previous sort and current sort
I like the idea of knowing which greys are warmer and which are cooler; in the future, I'll probably look at splitting the greys into a Warm vs. Cool binary.