Show HN: What's my JND? – a colour guessing game(keithcirkel.co.uk) |
Show HN: What's my JND? – a colour guessing game(keithcirkel.co.uk) |
it is measuring the smallest color distance you can still detect. so a lower number means you can spot the difference between two more-alike colors.
Very addictive, kudos to the dev
Okay, tried again and got 0.0034 which is still says is beyond the human limit! I'll have to give this to my mum because we often argue about colours and I suspect she might be a tetrachromat.
Both tests on a Pixel 10 btw
Here's the related article on how much accuracy is really needed in CSS values. https://www.keithcirkel.co.uk/too-much-color/
The code contains a function that, given the target ΔE, generates two colors in floating-point Oklab representation, separated by that distance. But there is no check whether the two generated colors end up rounding to exactly the same one on 8-bit displays. So, I was asked to find a boundary (while the claim was that there were two distinct colors 0.0013 ΔE apart) between RGB(80, 83, 152) and RGB(80, 83, 152). Obviously unfair.
not knowing anything about color, i will admit i am a bit confused. i scored 0.0034 and was told "if you're not already calibrating displays for a living, you're leaving money on the table". which, to me, implied i did quite well!
but, reading the scores posted here, most people are doing a lot better than me. i doubt all of us are crazy good...
so, i assume the front page is a typo: "most people land around 0.02" (should be 0.002, not 0.02)? if yes, then i am back to not understanding the message i got about calibrating displays, because i did quite a bit worse than 0.002.
edit: nerd-sniping myself a little bit. but it appears (stressing: i know nothing) the "0.02" is accurate, but calculated by showing someone two colors and asking "are these different" until the person answers the question correctly 50% of the time. which is a different question than "where, precisely, is the line between these two colors". with the different question, it ends up compressing the result down by about an order of magnitude.
absolutely! thanks for posting it and the associated article.
To promote some further reading:
OKLab isn't actually a perceptually uniform colorspace. It's better than others, but it was specifically chosen as a tradeoff between accuracy and speed (hence the name OK). When you start digging this deep, you quickly learn that we have yet to invent any perceptually uniform colorspaces; even the most precise models we have end up using fits and approximations. Color has some really inconvenient properties like depending strongly on brightness and background. Frankly, given the differences in human biology (having orders of magnitude differences in relative numbers of each cone, for instance), it's surprising we agree as much as we do! Human color perception is an endless pit of complexity.
(Note, I don't say any of this to detract from what you've built here, merely expand. Your site is awesome and I love it!)
I tried it on a recent Pixel with brightness set to two-thirds, and this is my result:
But I think this kind of test can really be limited on your display and color profiles.
Most of my misses were on blues, but sometimes the line was obvious. Other times, I could “see” many phantom bars of slightly different colors.
And in bright sunlight, I can see variations in the film in my phone screen. I suspect this could affect a test like this.
It helps if I move side to side like a party parrot. I'd love to see a histogram of where I stand.
I can't find it now. Is anyone else aware of what I'm talking about?
anyway, thank you ! i didn't clean my screen since 1 week, and this game need to !
0.000020 ^^ https://www.keithcirkel.co.uk/whats-my-jnd/?r=AAIoKP
This reminds me that there's a worlde like game for color mixing, I think someone posted it on HN a while ago colorfle.com
- 0.0028 on my MacBook pro screen
- 0.0045 on my Dell monitor
- 0.0033 on my Pixel 10 pro
And those scores are pretty consistent.
But now I'm aware of a slightly darker vertical band on my screen, compared to the rest of the display. x_x
Had to turn off the "Night Light" (reducing blue) and set brightness to max.
EDIT: Just read the blog post. I thought HSL was bad for design, Oklab is much worse. It just goes right ahead and reuses color science terms so it sounds it got it all right. (dEOK existing and its "JND" being 0.02 absolutely made my head spin. None of this is recognizable to a color scientist)
isnt it just because the lightness scale is 0-1 instead of 0-100? i would like to learn more about this, and your comments are contrary to what i see on, for example, https://www.w3.org/TR/css-color-4/
"In CIE Lab color space, where the range of the Lightness component is 0 to 100, using deltaE2000, one JND is 2. Because the range of Lightness in Oklab and OkLCh is 0 to 1, using deltaEOK, one JND is 100 times smaller."
if youd rather just point in the direction of where to read more, that would be fine too. i assumed (wrongly?) that the CSS color specification would be accurate. or, at least, accurate enough to not make heads spin. (any ideas on why w3 got it so wrong? or why they would use OKlab at all, if it is as utterly awful as you imply?)
It's very correct - but the implications must not be clear.
In the CIELAB space (read: a scientific space), JND is 2. (3 is color science version, but a minor quibble)
In OKLab space, we'll say it's the same, and then account for normalized lightness.
Oklab's lightness isn't CIELAB's lightness, neither are their dimensions the same, so it's like saying "when we measure in kilometers, a Just Noticable Distance is 2 meters. Miles is scaled differently then normalized, but we'll just say it's 2 yards." (and that's being too kind, in practice, 2m ~= 2 yards, and I don't want to give the impression it's a simple linear scaling difference. The example is meant to communicate they're different dimensions entirely)
> i assumed (wrongly?) that the CSS color specification would be accurate. or, at least, accurate enough to not make heads spin. (any ideas on why w3 got it so wrong? or why they would use OKlab at all, if it is as utterly awful as you imply?)
The thrust of my comment isn't that Oklab is so awful it should be banned, in fact, it's specifically mentioned as better than the incumbent. However, continued reusing of color science terminology, and people assuming that it then applies, is both remniscent of HSL and may worse intellectual poverty for software engineers, even the well-intentioned and studied, as it sounds unobjectionable at its face, but would be batshit insane if applied to synonymous areas of science that affect daily life (ex. distance)