Can LLMs read a color vision test?
This post and benchmark were written and built with AI assistance using Codex and Claude Code.
Example
Each plate contains 23. The dots have matched brightness. Only their color defines the number. Color separation increases from left to right.
Select an image to open the original 1024 × 1024 PNG.
How the images are made
- Place 900 dots in a circle. Set their positions, sizes, and brightness before applying a number.
- Use a two-digit mask to assign one color to dots inside the number and another color to the other dots.
- Match the brightness of the two colors. Change their separation across seven levels in two red–green color directions.
- Add grayscale copies and color blanks with no number. These controls should produce
null.
The set has 140 color plates (10 numbers × 2 color directions × 7 separations), 100 grayscale copies, and 20 color blanks.
Results
Each result set has one saved response for every image. Both digits must match for a correct read. A number reported on a control is a false read.
GPT-6 Astra read 81/140 color plates correctly. GPT-4.1-mini scored highest at the strongest color separation: 15/20.
Compare model scores
25 result sets
Correct number reads. Each level has 20 color plates; “All color” combines all 140. Color separation increases from left to right.
Ranked by all 140 color plates. Ties share a rank.
Select a column to rank. Select a model to inspect its images.
| Rank | Model | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 81 | 6 | 11 | 14 | 13 | 14 | 11 | 12 | |
| 2 | 47 | 0 | 1 | 2 | 7 | 11 | 12 | 14 | |
| 3 | 46 | 0 | 0 | 2 | 5 | 11 | 13 | 15 | |
| 4 | 42 | 0 | 2 | 5 | 9 | 8 | 8 | 10 | |
| 5 | 40 | 0 | 1 | 3 | 5 | 8 | 10 | 13 | |
| 6 | 36 | 1 | 0 | 2 | 4 | 9 | 8 | 12 | |
| 7 | 31 | 0 | 0 | 0 | 5 | 8 | 7 | 11 | |
| 8 | 26 | 0 | 1 | 2 | 5 | 6 | 6 | 6 | |
| 9 | 25 | 0 | 0 | 3 | 4 | 3 | 7 | 8 | |
| 10 | 20 | 0 | 0 | 0 | 1 | 4 | 7 | 8 | |
| 11 | 13 | 0 | 0 | 0 | 3 | 3 | 3 | 4 | |
| 12 | 12 | 0 | 0 | 0 | 0 | 1 | 5 | 6 | |
| 13 | 8 | 0 | 0 | 2 | 1 | 1 | 2 | 2 | |
| 14 | 7 | 0 | 0 | 0 | 2 | 2 | 1 | 2 | |
| =15 | 6 | 0 | 0 | 1 | 2 | 1 | 2 | 0 | |
| =15 | 6 | 2 | 0 | 1 | 2 | 0 | 1 | 0 | |
| 17 | 4 | 0 | 0 | 0 | 0 | 0 | 2 | 2 | |
| 18 | 3 | 0 | 0 | 0 | 2 | 1 | 0 | 0 | |
| =19 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | |
| =19 | 2 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | |
| =19 | 2 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | |
| 22 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |
| =23 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| =23 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| =23 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bold marks the best score in each column. Equal scores share a rank.
Inspect individual image answers
GPT-6 Astra
Saved results · low reasoning · original image detail
✓ Correct · × Incorrect · Cell labels show the selected model’s answer.
Open a thumbnail to inspect the exact image and saved answer. “none” means no number was reported.
Enter: open · ← / →: previous / next · Escape: close. Filters keep columns in place.
Model selection is unavailable. The tables show Astra. Select an image to open its original PNG.
No inputs match these filters. Reset filters to show all inputs.
Color plates · Protan
Rows show the expected number. Columns show color separation.
Color plates · Deutan
Rows show the expected number. Columns show color separation.
Grayscale controls · Protan
No number is expected. Row labels identify the source mask.
| Source | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 |
|---|---|---|---|---|---|
| Mask 18 | |||||
| Mask 23 | |||||
| Mask 30 | |||||
| Mask 36 | |||||
| Mask 41 | |||||
| Mask 54 | |||||
| Mask 67 | |||||
| Mask 79 | |||||
| Mask 82 | |||||
| Mask 95 |
Grayscale controls · Deutan
No number is expected. Row labels identify the source mask.
| Source | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 |
|---|---|---|---|---|---|
| Mask 18 | |||||
| Mask 23 | |||||
| Mask 30 | |||||
| Mask 36 | |||||
| Mask 41 | |||||
| Mask 54 | |||||
| Mask 67 | |||||
| Mask 79 | |||||
| Mask 82 | |||||
| Mask 95 |
Color blanks
No number is expected in any blank.
Model settings and secondary metrics
Expand a model for request settings, digit accuracy, and control errors.
1GPT-6 AstraAll color plates81/140Separation 0.12012/20False reads0/120
81/140 exact · 57 wrong numbers · 2 null answers · 0 invalid
Reasoning: low · Image detail: original · Output limit: default
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 30% | 55% | 70% | 65% | 70% | 55% | 60% |
| Digits | 57.5% | 75% | 85% | 80% | 80% | 75% | 77.5% |
| Numeric | 90% | 100% | 100% | 100% | 100% | 100% | 100% |
Correct control rejections: 100% grayscale; 100% color blanks.
2GPT-4.1All color plates47/140Separation 0.12014/20False reads0/120
47/140 exact · 63 wrong numbers · 30 null answers · 0 invalid
Reasoning: not set · Image detail: high · Temperature: 0 · Output limit: 60 tokens
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 5% | 10% | 35% | 55% | 60% | 70% |
| Digits | 0% | 12.5% | 50% | 67.5% | 77.5% | 80% | 85% |
| Numeric | 5% | 45% | 100% | 100% | 100% | 100% | 100% |
Correct control rejections: 100% grayscale; 100% color blanks.
3GPT-4.1-miniAll color plates46/140Separation 0.12015/20False reads0/120
46/140 exact · 90 wrong numbers · 4 null answers · 0 invalid
Core plate settings: Reasoning: not set · Image detail: high · Temperature: 0 · Output limit: 60 tokens
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 0% | 10% | 25% | 55% | 65% | 75% |
| Digits | 12.5% | 32.5% | 40% | 62.5% | 75% | 77.5% | 82.5% |
| Numeric | 80% | 100% | 100% | 100% | 100% | 100% | 100% |
Correct control rejections: 100% grayscale; 100% color blanks.
4Gemini 3.8 FlashAll color plates42/140Separation 0.12010/20False reads0/120
42/140 exact · 79 wrong numbers · 19 null answers · 0 invalid
Thinking level: low · Image detail: native · Output limit: 2048 tokens · Output format: JSON schema
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 10% | 25% | 45% | 40% | 40% | 50% |
| Digits | 0% | 30% | 52.5% | 70% | 67.5% | 67.5% | 72.5% |
| Numeric | 5% | 100% | 100% | 100% | 100% | 100% | 100% |
Correct control rejections: 100% grayscale; 100% color blanks.
5Gemini 3.6 FlashAll color plates40/140Separation 0.12013/20False reads1/120
40/140 exact · 82 wrong numbers · 18 null answers · 0 invalid
Thinking level: minimal · Image detail: native · Output limit: 2048 tokens · Output format: JSON schema
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 5% | 15% | 25% | 40% | 50% | 65% |
| Digits | 0% | 27.5% | 42.5% | 62.5% | 67.5% | 75% | 82.5% |
| Numeric | 15% | 95% | 100% | 100% | 100% | 100% | 100% |
Correct control rejections: 100% grayscale; 95% color blanks.
| Answer | Color blanks | Grayscale |
|---|---|---|
| 81 | 1 | 0 |
6Gemini 3.7 FlashAll color plates36/140Separation 0.12012/20False reads0/120
36/140 exact · 90 wrong numbers · 14 null answers · 0 invalid
Thinking level: low · Image detail: native · Output limit: 2048 tokens · Output format: JSON schema
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 5% | 0% | 10% | 20% | 45% | 40% | 60% |
| Digits | 10% | 30% | 42.5% | 55% | 72.5% | 65% | 77.5% |
| Numeric | 30% | 100% | 100% | 100% | 100% | 100% | 100% |
Correct control rejections: 100% grayscale; 100% color blanks.
7Gemini 3.1 Pro PreviewAll color plates31/140Separation 0.12011/20False reads1/120
31/140 exact · 88 wrong numbers · 17 null answers · 4 invalid
Core plate settings: Thinking level: low · Image detail: native · Output limit: 2048 tokens
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 0% | 0% | 25% | 40% | 35% | 55% |
| Digits | 0% | 25% | 45% | 57.5% | 70% | 57.5% | 77.5% |
| Numeric | 15% | 100% | 100% | 95% | 100% | 85% | 100% |
Correct control rejections: 100% grayscale; 95% color blanks.
| Answer | Color blanks | Grayscale |
|---|---|---|
| 4 | 1 | 0 |
8Gemini 3.5 FlashAll color plates26/140Separation 0.1206/20False reads15/120
26/140 exact · 104 wrong numbers · 10 null answers · 0 invalid
Core plate settings: Thinking level: low · Image detail: native · Output limit: 2048 tokens
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 5% | 10% | 25% | 30% | 30% | 30% |
| Digits | 5% | 22.5% | 37.5% | 55% | 57.5% | 62.5% | 65% |
| Numeric | 50% | 100% | 100% | 100% | 100% | 100% | 100% |
Correct control rejections: 100% grayscale; 25% color blanks.
| Answer | Color blanks | Grayscale |
|---|---|---|
| 52 | 5 | 0 |
| 53 | 5 | 0 |
| 5 | 3 | 0 |
| 25 | 2 | 0 |
9Gemini 3 Flash PreviewAll color plates25/140Separation 0.1208/20False reads22/120
25/140 exact · 103 wrong numbers · 12 null answers · 0 invalid
Core plate settings: Thinking level: low · Image detail: native · Output limit: 2048 tokens
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 0% | 15% | 20% | 15% | 35% | 40% |
| Digits | 7.5% | 27.5% | 42.5% | 55% | 55% | 65% | 70% |
| Numeric | 40% | 100% | 100% | 100% | 100% | 100% | 100% |
Correct control rejections: 92% grayscale; 30% color blanks.
| Answer | Color blanks | Grayscale |
|---|---|---|
| 47 | 1 | 2 |
| 52 | 2 | 1 |
| 15 | 2 | 0 |
| 3 | 0 | 1 |
| 5 | 1 | 0 |
| 12 | 0 | 1 |
| 20 | 1 | 0 |
| 21 | 1 | 0 |
| 24 | 1 | 0 |
| 26 | 1 | 0 |
| 28 | 0 | 1 |
| 38 | 1 | 0 |
| 42 | 0 | 1 |
| 60 | 1 | 0 |
| 74 | 0 | 1 |
| 81 | 1 | 0 |
| 86 | 1 | 0 |
10GPT-5 miniAll color plates20/140Separation 0.1208/20False reads2/120
20/140 exact · 99 wrong numbers · 21 null answers · 0 invalid
Core plate settings: Reasoning: minimal · Image detail: high · Output limit: 1000 tokens
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 0% | 0% | 5% | 20% | 35% | 40% |
| Digits | 0% | 22.5% | 25% | 32.5% | 45% | 62.5% | 57.5% |
| Numeric | 5% | 90% | 100% | 100% | 100% | 100% | 100% |
Correct control rejections: 99% grayscale; 95% color blanks.
| Answer | Color blanks | Grayscale |
|---|---|---|
| 12 | 1 | 1 |
11Gemini 3.1 Flash-LiteAll color plates13/140Separation 0.1204/20False reads0/120
13/140 exact · 105 wrong numbers · 22 null answers · 0 invalid
Core plate settings: Thinking level: low · Image detail: native · Output limit: 2048 tokens
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 0% | 0% | 15% | 15% | 15% | 20% |
| Digits | 0% | 17.5% | 25% | 52.5% | 47.5% | 52.5% | 47.5% |
| Numeric | 0% | 90% | 100% | 100% | 100% | 100% | 100% |
Correct control rejections: 100% grayscale; 100% color blanks.
12GPT-5.1-Codex miniAll color plates12/140Separation 0.1206/20False reads0/120
12/140 exact · 76 wrong numbers · 52 null answers · 0 invalid
Core plate settings: Reasoning: low · Image detail: high · Output limit: 4000 tokens
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 0% | 0% | 0% | 5% | 25% | 30% |
| Digits | 0% | 2.5% | 15% | 25% | 25% | 47.5% | 57.5% |
| Numeric | 0% | 20% | 70% | 70% | 85% | 100% | 95% |
Correct control rejections: 100% grayscale; 100% color blanks.
13Claude Opus 5All color plates8/140Separation 0.1202/20False reads0/120
8/140 exact · 93 wrong numbers · 39 null answers · 0 invalid
Thinking: disabled · Effort: low · Image detail: native · Output limit: 8192 tokens
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 0% | 10% | 5% | 5% | 10% | 10% |
| Digits | 0% | 0% | 17.5% | 20% | 35% | 25% | 25% |
| Numeric | 0% | 15% | 90% | 100% | 100% | 100% | 100% |
Correct control rejections: 100% grayscale; 100% color blanks.
14Gemini 3.5 Flash-LiteAll color plates7/140Separation 0.1202/20False reads0/120
7/140 exact · 107 wrong numbers · 26 null answers · 0 invalid
Thinking level: minimal · Image detail: native · Output limit: 2048 tokens · Output format: JSON schema
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 0% | 0% | 10% | 10% | 5% | 10% |
| Digits | 0% | 17.5% | 25% | 45% | 45% | 37.5% | 50% |
| Numeric | 0% | 70% | 100% | 100% | 100% | 100% | 100% |
Correct control rejections: 100% grayscale; 100% color blanks.
15GPT-5.6 SolAll color plates6/140Separation 0.1200/20False reads0/120
6/140 exact · 134 wrong numbers · 0 null answers · 0 invalid
Reasoning: low · Image detail: original · Output limit: default
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 0% | 5% | 10% | 5% | 10% | 0% |
| Digits | 12.5% | 12.5% | 17.5% | 22.5% | 25% | 35% | 15% |
| Numeric | 100% | 100% | 100% | 100% | 100% | 100% | 100% |
Correct control rejections: 100% grayscale; 100% color blanks.
Other saved results
Daybreak → Sol · 6/140
6/140 exact · 134 wrong numbers · 0 null answers · 0 invalid
Reasoning: low · Image detail: original · Output limit: default
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 10% | 0% | 5% | 10% | 0% | 5% | 0% |
| Digits | 25% | 17.5% | 17.5% | 17.5% | 20% | 25% | 25% |
| Numeric | 100% | 100% | 100% | 100% | 100% | 100% | 100% |
Correct control rejections: 100% grayscale; 95% color blanks.
| Answer | Color blanks | Grayscale |
|---|---|---|
| 56 | 1 | 0 |
16GPT-4.1 nanoAll color plates4/140Separation 0.1202/20False reads0/120
4/140 exact · 65 wrong numbers · 71 null answers · 0 invalid
Reasoning: not set · Image detail: high · Temperature: 0 · Output limit: 60 tokens
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 0% | 0% | 0% | 0% | 10% | 10% |
| Digits | 0% | 0% | 0% | 10% | 12.5% | 25% | 20% |
| Numeric | 0% | 0% | 35% | 75% | 70% | 75% | 90% |
Correct control rejections: 100% grayscale; 100% color blanks.
17Claude Fable 5.1All color plates3/140Separation 0.1200/20False reads0/120
3/140 exact · 116 wrong numbers · 21 null answers · 0 invalid
Thinking: adaptive · Effort: low · Image detail: native · Output limit: 8192 tokens
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 0% | 0% | 10% | 5% | 0% | 0% |
| Digits | 0% | 15% | 15% | 40% | 35% | 20% | 27.5% |
| Numeric | 0% | 95% | 100% | 100% | 100% | 100% | 100% |
Correct control rejections: 100% grayscale; 100% color blanks.
18GPT-5.4All color plates2/140Separation 0.1202/20False reads0/120
2/140 exact · 134 wrong numbers · 4 null answers · 0 invalid
Core plate settings: Reasoning: not set · Image detail: original · Output limit: 1000 tokens
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 0% | 0% | 0% | 0% | 0% | 10% |
| Digits | 5% | 17.5% | 17.5% | 12.5% | 15% | 17.5% | 20% |
| Numeric | 80% | 100% | 100% | 100% | 100% | 100% | 100% |
Correct control rejections: 100% grayscale; 100% color blanks.
18GPT-5.4 miniAll color plates2/140Separation 0.1201/20False reads0/120
2/140 exact · 134 wrong numbers · 4 null answers · 0 invalid
Core plate settings: Reasoning: none · Image detail: high · Output limit: 1000 tokens
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 0% | 0% | 0% | 0% | 5% | 5% |
| Digits | 12.5% | 10% | 12.5% | 12.5% | 12.5% | 35% | 30% |
| Numeric | 90% | 95% | 100% | 95% | 100% | 100% | 100% |
Correct control rejections: 100% grayscale; 100% color blanks.
18GPT-5.6 LunaAll color plates2/140Separation 0.1200/20False reads0/120
2/140 exact · 77 wrong numbers · 61 null answers · 0 invalid
Reasoning: low · Image detail: original · Output limit: default
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 0% | 0% | 5% | 0% | 5% | 0% |
| Digits | 0% | 2.5% | 5% | 12.5% | 5% | 10% | 7.5% |
| Numeric | 0% | 30% | 55% | 75% | 60% | 85% | 90% |
Correct control rejections: 100% grayscale; 100% color blanks.
21GPT-5.6 TerraAll color plates1/140Separation 0.1200/20False reads0/120
1/140 exact · 136 wrong numbers · 3 null answers · 0 invalid
Reasoning: low · Image detail: original · Output limit: default
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 5% | 0% | 0% | 0% | 0% | 0% |
| Digits | 10% | 12.5% | 2.5% | 10% | 7.5% | 15% | 15% |
| Numeric | 85% | 100% | 100% | 100% | 100% | 100% | 100% |
Correct control rejections: 100% grayscale; 100% color blanks.
22Claude Sonnet 4.5All color plates0/140Separation 0.1200/20False reads0/120
0/140 exact · 54 wrong numbers · 86 null answers · 0 invalid
Core plate settings: Reasoning: not set · Image detail: native · Output limit: 64 tokens
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 0% | 0% | 0% | 0% | 0% | 0% |
| Digits | 0% | 0% | 0% | 2.5% | 2.5% | 10% | 15% |
| Numeric | 0% | 0% | 5% | 35% | 60% | 90% | 80% |
Correct control rejections: 100% grayscale; 100% color blanks.
22Claude Sonnet 5All color plates0/140Separation 0.1200/20False reads0/120
0/140 exact · 9 wrong numbers · 131 null answers · 0 invalid
Core plate settings: Reasoning: disabled · Image detail: native · Output limit: 64 tokens
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 0% | 0% | 0% | 0% | 0% | 0% |
| Digits | 0% | 0% | 0% | 0% | 5% | 12.5% | 2.5% |
| Numeric | 0% | 0% | 0% | 0% | 10% | 25% | 10% |
Correct control rejections: 100% grayscale; 100% color blanks.
22Gemini 2.5 FlashAll color plates0/140Separation 0.1200/20False reads0/120
0/140 exact · 67 wrong numbers · 73 null answers · 0 invalid
Core plate settings: Thinking budget: 0 · Image detail: native · Output limit: 2048 tokens
| Score | 0.006 | 0.010 | 0.016 | 0.026 | 0.040 | 0.080 | 0.120 |
|---|---|---|---|---|---|---|---|
| Exact | 0% | 0% | 0% | 0% | 0% | 0% | 0% |
| Digits | 0% | 0% | 2.5% | 0% | 2.5% | 17.5% | 22.5% |
| Numeric | 0% | 0% | 30% | 40% | 80% | 90% | 95% |
Correct control rejections: 100% grayscale; 100% color blanks.
Each row shows one result set. Other saved results are inside that model’s details.
Prompt and scoring
Inspect this newly generated pseudoisochromatic color-dot plate. Report the one- or two-digit Arabic number only if it is actually visible. Do not infer an answer from familiar clinical color-vision plates and do not force a guess. Return only JSON as{"number":"NN"}; if no numeral is visible, return{"number":null}.
In the score details, Exact requires both digits to match. Digits counts correct digit positions. Numeric counts number responses. Invalid answers count as wrong.
Color separation is measured in CIE u′v′ coordinates. The two directions are called protan and deutan. The number mask uses Atkinson Hyperlegible.




