Method card · Lightness perception

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?

Go to experiment3 min long0 real first answers

Original study

  1. 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
  2. Adelson, E. H. (1993). Perceptual organization and the judgment of brightness. Science, 262(5142), 2042–2044. Source
  3. 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
  4. White, M. (1979). A new effect of pattern on perceived lightness. Perception, 8(4), 413–416. Source
  5. 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
  6. Kingdom, F., & Moulden, B. (1991). White's effect and assimilation. Vision Research, 31(1), 151–159. Source
  7. 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
  8. 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.

ColumnTypeDescription
rJSONRounds: [[scene (0 shadow+, 1 contrast+, 2 White+, 3 shadow−, 4 contrast−, 5 White−), target L*, answer L*, time in ms] × 6].
pts_1numberRound score (0–10): 10 / (1 + (|answer − target| / 8)^1.6). (item 1)
pts_2numberRound score (0–10): 10 / (1 + (|answer − target| / 8)^1.6). (item 2)
pts_3numberRound score (0–10): 10 / (1 + (|answer − target| / 8)^1.6). (item 3)
pts_4numberRound score (0–10): 10 / (1 + (|answer − target| / 8)^1.6). (item 4)
pts_5numberRound score (0–10): 10 / (1 + (|answer − target| / 8)^1.6). (item 5)
pts_6numberRound score (0–10): 10 / (1 + (|answer − target| / 8)^1.6). (item 6)
pointsnumberTotal score (0–60).
dl_1numberSigned deviation by scene (0–5): answer L* − target L*. (item 1)
dl_2numberSigned deviation by scene (0–5): answer L* − target L*. (item 2)
dl_3numberSigned deviation by scene (0–5): answer L* − target L*. (item 3)
dl_4numberSigned deviation by scene (0–5): answer L* − target L*. (item 4)
dl_5numberSigned deviation by scene (0–5): answer L* − target L*. (item 5)
dl_6numberSigned deviation by scene (0–5): answer L* − target L*. (item 6)
mag_shadownumberIllusion magnitude: the difference in deviation between the '+' and '−' scenes (L* units); the name at the end of the column is the illusion. (shadow)
mag_contrastnumberIllusion magnitude: the difference in deviation between the '+' and '−' scenes (L* units); the name at the end of the column is the illusion. (contrast)
mag_whitenumberIllusion magnitude: the difference in deviation between the '+' and '−' scenes (L* units); the name at the end of the column is the illusion. (white)
illnumberMean of the three illusion magnitudes.
fooledintegerNumber of illusions with a magnitude above 4 L* (0–3).
Columns present in every file (14)
row_idstringRow code. Regenerated at random in every release; it does not identify a person and cannot be matched across releases or experiments.
experimentstringShort name of the experiment (URL slug).
experiment_versionintegerVersion of the answer format. For experiments whose format changed, only the current format is published.
dateYYYY-MM-DD | YYYY-Www | YYYY-MMDay 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_precisionday | week | monthPrecision of the date column.
langtr | 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.
devicedesktop | mobile | tablet | (boş)Device class reported by the browser (class only; browser details are neither stored here nor published).
sourcesite | embedWhere the answer came from: the balabs site or the experiment embedded on another site. The embedding site is not published.
modefree | 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_visionnormal | 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_play1Every 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_beforeyes | no | unsure | (boş)Participant’s own report of whether they had seen this experiment or its known answer before (in experiments that ask).
duration_snumberTime from the start of the experiment to submitting the answer, in seconds (measured in the browser, 0.1 s).
play_scorenumberLeaderboard 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.