Moment of contact.
When a ball slides behind a screen and disappears, can you tell exactly when it touches the yellow line?
Original study
- Lee, D. N. (1976). A theory of visual control of braking based on information about time-to-collision. Perception, 5(4), 437–459. Source
- Peterken, C., Brown, B., & Bowman, K. (1991). Predicting the future position of a moving target. Perception, 20(1), 5–16. Source
- Makin, A. D. J. (2018). The common rate control account of prediction motion. Psychonomic Bulletin & Review, 25(5), 1784–1797. Source
Our adaptation
An adaptation of the prediction motion task (Peterken et al., 1991). In each trial a ball moves at constant speed along a horizontal track toward a yellow line on the right, disappears behind an occluder for the last part of the path, and the participant taps at the moment it would reach the line. Each of five rounds has three balls: short (0.4–0.65 s), medium (0.75–1.15 s) and long (1.25–1.8 s) occlusion. Speed and order come from the game seed.
Differences from the original study
- Display and touch latency can shift all errors by the same amount; the change with occlusion length is more reliable.
- Speeds are relative to the field width; screen size is unknown.
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 |
|---|---|---|
t | JSON | Trials: [[round, occlusion ms, speed (track/s × 1000), error ms (tap − contact; negative = early), missed 1/0, visible time ms] × 15]. |
pts_1 | number | Round score: mean of three balls, ball score 10 / (1 + (|error| / (occlusion + 300 ms) / 0.1)^1.6); a missed ball scores 0. (item 1) |
pts_2 | number | Round score: mean of three balls, ball score 10 / (1 + (|error| / (occlusion + 300 ms) / 0.1)^1.6); a missed ball scores 0. (item 2) |
pts_3 | number | Round score: mean of three balls, ball score 10 / (1 + (|error| / (occlusion + 300 ms) / 0.1)^1.6); a missed ball scores 0. (item 3) |
pts_4 | number | Round score: mean of three balls, ball score 10 / (1 + (|error| / (occlusion + 300 ms) / 0.1)^1.6); a missed ball scores 0. (item 4) |
pts_5 | number | Round score: mean of three balls, ball score 10 / (1 + (|error| / (occlusion + 300 ms) / 0.1)^1.6); a missed ball scores 0. (item 5) |
points | number | Total score (0–50). |
bias_short | number | Mean signed error by occlusion bin (ms); column suffixes short, mid, long. (short) |
bias_mid | number | Mean signed error by occlusion bin (ms); column suffixes short, mid, long. (mid) |
bias_long | number | Mean signed error by occlusion bin (ms); column suffixes short, mid, long. (long) |
slope | number | Slope of signed error against occlusion time in seconds (ms/s; at least 5 valid trials). |
abs | number | Mean absolute error (ms). |
early | number | Percentage of early taps. |
fast | number | Mean error for balls faster than the median speed (ms). |
slow | number | Mean error for balls slower than the median speed (ms). |
miss | integer | Number of missed balls. |
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 round has one short, one medium and one long occlusion and that values are within range; inconsistent submissions are rejected. Missed balls are left out of the error summaries.
- 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–50); higher is better.
Leaderboard measure: timing (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.