The square in the shadow.
Can you separate a square in the shadow from its context and set its gray correctly? Does your eye measure light, or surfaces?
Original study
- Adelson, E. H. (2000). Lightness perception and lightness illusions. In M. Gazzaniga (Ed.), The New Cognitive Neurosciences (2nd ed., pp. 339–351). MIT Press. Source
- Adelson, E. H. (1993). Perceptual organization and the judgment of brightness. Science, 262(5142), 2042–2044. Source
- Gilchrist, A., Kossyfidis, C., Bonato, F., Agostini, T., Cataliotti, J., Li, X., Spehar, B., Annan, V., & Economou, E. (1999). An anchoring theory of lightness perception. Psychological Review, 106(4), 795–834. Source
- White, M. (1979). A new effect of pattern on perceived lightness. Perception, 8(4), 413–416. Source
- Heinemann, E. G. (1955). Simultaneous brightness induction as a function of inducing- and test-field luminances. Journal of Experimental Psychology, 50(2), 89–96. Source
- Kingdom, F., & Moulden, B. (1991). White's effect and assimilation. Vision Research, 31(1), 151–159. Source
- Blakeslee, B., & McCourt, M. E. (1999). A multiscale spatial filtering account of the White effect, simultaneous brightness contrast and grating induction. Vision Research, 39(26), 4361–4377. Source
- Kingdom, F. A. A. (2011). Lightness, brightness and transparency: A quarter century of new ideas, captivating demonstrations and unrelenting controversy. Vision Research, 51(7), 652–673. Source
Our adaptation
A matching task with lightness illusions (Adelson, 2000). In each of six rounds the gray of a square in a scene drawn for this experiment is matched by adjusting a square on a neutral gray (L* 50) background. Three illusions (shadow, simultaneous contrast, White's illusion) appear in two rounds each: in one the target should look lighter in context, in the other darker. The target L* is between 40 and 58 in every round.
Differences from the original study
- Screens are not calibrated; grays are computed with the standard sRGB curve.
- Scenes are drawings made for this experiment, not photographs.
Measured variables
The columns of the open data file. List fields are expanded into numbered columns (for example rt_60, est_3); JSON columns contain only numbers and fixed stimulus names.
| Column | Type | Description |
|---|---|---|
r | JSON | Rounds: [[scene (0 shadow+, 1 contrast+, 2 White+, 3 shadow−, 4 contrast−, 5 White−), target L*, answer L*, time in ms] × 6]. |
pts_1 | number | Round score (0–10): 10 / (1 + (|answer − target| / 8)^1.6). (item 1) |
pts_2 | number | Round score (0–10): 10 / (1 + (|answer − target| / 8)^1.6). (item 2) |
pts_3 | number | Round score (0–10): 10 / (1 + (|answer − target| / 8)^1.6). (item 3) |
pts_4 | number | Round score (0–10): 10 / (1 + (|answer − target| / 8)^1.6). (item 4) |
pts_5 | number | Round score (0–10): 10 / (1 + (|answer − target| / 8)^1.6). (item 5) |
pts_6 | number | Round score (0–10): 10 / (1 + (|answer − target| / 8)^1.6). (item 6) |
points | number | Total score (0–60). |
dl_1 | number | Signed deviation by scene (0–5): answer L* − target L*. (item 1) |
dl_2 | number | Signed deviation by scene (0–5): answer L* − target L*. (item 2) |
dl_3 | number | Signed deviation by scene (0–5): answer L* − target L*. (item 3) |
dl_4 | number | Signed deviation by scene (0–5): answer L* − target L*. (item 4) |
dl_5 | number | Signed deviation by scene (0–5): answer L* − target L*. (item 5) |
dl_6 | number | Signed deviation by scene (0–5): answer L* − target L*. (item 6) |
mag_shadow | number | Illusion magnitude: the difference in deviation between the '+' and '−' scenes (L* units); the name at the end of the column is the illusion. (shadow) |
mag_contrast | number | Illusion magnitude: the difference in deviation between the '+' and '−' scenes (L* units); the name at the end of the column is the illusion. (contrast) |
mag_white | number | Illusion magnitude: the difference in deviation between the '+' and '−' scenes (L* units); the name at the end of the column is the illusion. (white) |
ill | number | Mean of the three illusion magnitudes. |
fooled | integer | Number of illusions with a magnitude above 4 L* (0–3). |
Columns present in every file (14)
row_id | string | Row code. Regenerated at random in every release; it does not identify a person and cannot be matched across releases or experiments. |
experiment | string | Short name of the experiment (URL slug). |
experiment_version | integer | Version of the answer format. For experiments whose format changed, only the current format is published. |
date | YYYY-MM-DD | YYYY-Www | YYYY-MM | Day the answer was given (Istanbul time). If fewer than 5 answers share the same day, language and device, it is coarsened to the ISO week, and to the month if that is still too few. |
date_precision | day | week | month | Precision of the date column. |
lang | tr | en | (boş) | Interface language. Language recording started in the first week of October 2026; for earlier answers it is known only in experiments whose stimuli depend on the language, and empty otherwise. |
device | desktop | mobile | tablet | (boş) | Device class reported by the browser (class only; browser details are neither stored here nor published). |
source | site | embed | Where the answer came from: the balabs site or the experiment embedded on another site. The embedding site is not published. |
mode | free | daily | challenge | race | session | (boş) | Play mode in scored experiments: free play, daily round, challenge, race room, experiment session. Empty for unscored experiments and for older answers that did not store it. |
color_vision | normal | rg | by | contrast | (boş) | In color-based experiments, the color vision mode the participant chose: normal, red-green, blue-yellow or high contrast. Stimuli are generated along different axes per mode, so compare within a mode. Empty for other experiments. |
first_play | 1 | Every row is a participant’s first play of this experiment (always 1). Replays are stored only as leaderboard scores and are not part of the open data. |
seen_before | yes | no | unsure | (boş) | Participant’s own report of whether they had seen this experiment or its known answer before (in experiments that ask). |
duration_s | number | Time from the start of the experiment to submitting the answer, in seconds (measured in the browser, 0.1 s). |
play_score | number | Leaderboard score of the first play (scored experiments; defined on the method card). Empty for unscored experiments. |
Exclusion criteria
The server checks that each of the six scenes appears once and that values are within range.
- Only each participant's first answer to this experiment; replays are not included.
- Simulated rows, bots, banned and sample accounts are not included.
- Answers before 3 October 2026 are not included (the first day the open data notice was live).
Scoring
Leaderboard score: total score (0–60); higher is better.
Leaderboard measure: eye for gray (higher is better). The play_score column in the open data is this score for the first play.
Version notes
- October 2026
The interface language (lang) started being stored with each answer; for earlier answers it is known only in experiments whose stimuli depend on the language, and empty otherwise.