Discussion
What's My ΔEOK JND?
stonedge: Is higher or lower "better"?
Biganon: 0.0023, but now my eyes are tired
john_strinlai: surprisingly fun.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.
Keithamus: Right. The average score is under different test conditions. Obviously this game is a little silly version with very little accuracy to the lab testing, but hopefully it gets people thinking about this stuff a bit more! Which given your investigations into this, I would say it has succeeded.
john_strinlai: >[...] but hopefully it gets people thinking about this stuff a bit more! Which given your investigations into this, I would say it has succeeded.absolutely! thanks for posting it and the associated article.
erikig: On a good monitor, I got to 0.0032 and then it all fell apart.Here's the related article on how much accuracy is really needed in CSS values. https://www.keithcirkel.co.uk/too-much-color/
patrakov: It's worse.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.
Keithamus: I will get around to fixing this. An oversight. Apologies.
vunderba: Nice job. Kind of reminds me of this one which increases the number of squares with the odd-one out becoming more subtle as you progress further in the game, but I prefer your sliding mechanic better for this kind of game.https://vectorization.eu/color-perception-test
refulgentis: Are you using Oklab channels to measure delta-E / difference? If so, Oklab is a hacky way to approximate a real colorspace with just one matrix multiplication, the channels have no meaning and are not related to delta-E. Use real Lab*, it'll take 10 minutes with an LLM.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)
brikym: Nice game very engaging. I got 0.0046It helps if I move side to side like a party parrot. I'd love to see a histogram of where I stand.
hatthew: To me this seems primarily like an aim test, not a color perception test
OisinMoran: Ooh this one is fun too! Though it doesn't get quite as hard as the slider one. Breezed through all 47 levels of this pretty easily while there were one or two impossible seeming ones in the slider.
OisinMoran: This is fun! I just played once and got 0.0016, which it says is "absurdly below the theoretical limit"...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
vova_hn2: 0.0025Had to turn off the "Night Light" (reducing blue) and set brightness to max.
whalesalad: 0.0028 -- I think a few of these surpassed the capabilities of my M2 air display.
michaelteter: 0.0043.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.
vunderba: It feels like a bit of both - the faster you're able to perceive the differing square, the faster you're able to navigate to it.
zoklet-enjoyer: That was fun. I got 0.0039This reminds me that there's a worlde like game for color mixing, I think someone posted it on HN a while ago colorfle.com
rda2: [delayed]
snarkconjecture: Tetrachromacy wouldn't affect a test taken through a phone screen.
ramon156: This is probably a fun way of finding the median screen quality (in a world where no one has color blindness or any eye issues, so scrape 15-18% of the results away ig)
beAbU: There was a similar web-game back in the day but for tones. You had to identify which one was higher or lower. Also gave a statistical comparison at the end. Near the end the difference was a couple hertz or something, so next to impossible as well.I can't find it now. Is anyone else aware of what I'm talking about?
beAbU: 0.0095 - nice.But now I'm aware of a slightly darker vertical band on my screen, compared to the rest of the display. x_x
iczero: was it this? https://www.themusiclab.org/quizzes/td
patrakov: Another issue is that it discards the color pair if the generated coordinates fall outside 100% sRGB. The problem here is that many low-end laptop displays cover significantly less than 100% sRGB, but come with the correct primaries in the EDID, thus causing browsers to display colors correctly if they can and clip colors if they can't. Colors too close to the sRGB boundary will be clipped in your game - different colors generated, different colors when converted to sRGB, same color on the screen because it is out of the screen gamut. Maybe it makes sense to avoid colors with more than 60% saturation?
pmoati: it's a clever idea but the perception of the color is not easy to have a graduated difficulty. Plus, an alternative to the div might be to use the canvas to avoid cheating by watching the position of the gradient on the console :p
john_strinlai: >dEOK existing and its "JND" being 0.02 absolutely made my head spin.can you expand on this at all, for me, the opposite of a color scientist?ΔE appears to be a real thing in color science. and, for example, while reading https://www.w3.org/TR/css-color-4/ i saw:"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."so to my uneducated brain, it just seems to be scaling the same thing from 0-100 to 0-1?but i would be interested in learning why this is so wrong that it made your head spin, and why ΔE using the OKlab color space is unrecognizable
john_strinlai: >dEOK existing and its "JND" being 0.02 absolutely made my head spin. None of this is recognizable to a color scientistisnt 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 thought the CSS color specification would be accurate.
refulgentis: > "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."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)
reader9274: I wish the test added a button that says "Same color" and some of the tests actually show the same color
john_strinlai: awesome, i appreciate the reply, thanks. most of this is all foreign to me, so i am missing a lot of the knowledge most of the things im finding & reading assume i have. the analogy helps.
Ldorigo: Aside from display quality I wonder if humans are more perceptive to changes in specific colors? Towards the end of the game some examples felt impossible while others were trivial .
_wire_: This test is subject to the display regime on which it's presented. A given display may hide or amplify differences due to lack of conformance with the color space for the test data.