Skip to main content

Backward Masking Task

Version: v1 (current)

Overview

The Backward Masking task is a classic visual perception paradigm used to investigate the temporal dynamics of conscious awareness. A target stimulus is briefly presented, followed immediately by a masking stimulus that disrupts visual processing. By manipulating the timing between target and mask, researchers can measure perceptual thresholds and explore the conditions necessary for conscious perception.

Scientific Background

Backward masking has been extensively studied in cognitive neuroscience:

  • Breitmeyer & Ogmen (2006): Visual Masking: Time Slices Through Conscious and Unconscious Vision. Oxford University Press.
  • Macknik & Martinez-Conde (2007): The role of feedback in visual masking and visual processing. Advances in Cognitive Psychology.

The key manipulation is the Stimulus Onset Asynchrony (SOA), which is the time between the onset of the target and the onset of the mask. SOA = target duration + inter-stimulus interval (ISI).

At very short SOAs (< 50ms), the mask disrupts target processing, leading to reduced accuracy. As SOA increases, participants can more easily identify the target.

Why Researchers Use This Task

  • Perceptual thresholds: Determine the minimum presentation time needed for conscious perception
  • Visual processing dynamics: Study how quickly visual information is processed
  • Individual differences: Compare perceptual thresholds across populations
  • Attention and awareness: Investigate the relationship between attention and conscious perception
  • Clinical applications: Assess visual processing deficits in neurological or psychiatric conditions

Task Parameters

Timing Configuration

All timing parameters are specified per trial, allowing you to vary SOAs systematically:

ParameterDefaultDescription
Fixation (ms)500Duration of fixation cross before target
Target Duration (ms)50How long the target is displayed
Isi (ms)0Blank interval between target and mask
Mask Duration (ms)200How long the mask is displayed
Iti (ms)1000Response timeout (inter-trial interval)

SOA Calculation: SOA = target_duration_ms + isi_ms

Visual Configuration

ParameterDefaultDescription
Backward Masking Font Size (px)72Font size for stimuli
Backward Masking Fixation Character'+'Character for fixation cross

Practice Trials

ParameterDefaultDescription
Backward Masking Practice EnabledtrueEnable practice trials with feedback
Backward Masking Practice Trialsseeded example setArray of practice trial configurations (seeded with 4 example trials by default)

Trial Configuration

Each trial is defined by an object with the following fields:

{
target: string; // Target stimulus (e.g., 'H', 'K')
mask: string; // Masking stimulus (e.g., '#####', '&&&&&')
response_options: string[]; // Available response buttons
expected_response: string; // Correct answer
fixation_ms: number; // Fixation duration
target_duration_ms: number; // Target presentation time
mask_duration_ms: number; // Mask presentation time
isi_ms: number; // Inter-stimulus interval
iti_ms: number; // Response timeout
block?: string; // Optional block label
}

Example Configuration

To test SOA effects, create trials with varying target_duration_ms and isi_ms:

[
{
"target": "H",
"mask": "#####",
"response_options": ["H", "K", "M", "N"],
"expected_response": "H",
"fixation_ms": 500,
"target_duration_ms": 30,
"mask_duration_ms": 200,
"isi_ms": 0,
"iti_ms": 1000,
"block": "SOA_30ms"
},
{
"target": "K",
"mask": "#####",
"response_options": ["H", "K", "M", "N"],
"expected_response": "K",
"fixation_ms": 500,
"target_duration_ms": 50,
"mask_duration_ms": 200,
"isi_ms": 0,
"iti_ms": 1000,
"block": "SOA_50ms"
},
{
"target": "M",
"mask": "#####",
"response_options": ["H", "K", "M", "N"],
"expected_response": "M",
"fixation_ms": 500,
"target_duration_ms": 100,
"mask_duration_ms": 200,
"isi_ms": 0,
"iti_ms": 1000,
"block": "SOA_100ms"
}
]

Participant Experience

Trial Sequence

  1. Fixation (500ms default): A fixation cross appears at the center
  2. Target (configurable): The target stimulus appears briefly (e.g., letter 'H')
  3. ISI (configurable): Optional blank interval
  4. Mask (configurable): The masking stimulus appears (e.g., '#####')
  5. Response: Participant selects from available options

With Practice Trials

If practice is enabled:

  1. Participants see practice instructions
  2. Practice trials are presented with feedback (green checkmark for correct, red X for incorrect)
  3. After practice, participants see main trial instructions
  4. Main trials begin (no feedback)

Data Output

Markers and Responses

The task records high-resolution markers and per-trial response rows. Markers are emitted at each phase boundary. Trial-level markers are slug-prefixed with the task name (e.g. backward_masking_trial_start, and backward_masking_practice_trial_start for practice trials).

MarkerKey data fieldsDescription
backward_masking_trial_start (backward_masking_practice_trial_start in practice)trial_index, stimulus_id, target, mask, expected_response, response_options, block, fixation_ms, target_duration_ms, mask_duration_ms, isi_ms, soa_ms, iti_ms, is_practiceTrial onset
fixation_onset / fixation_offsettrial_index, planned_fixation_ms (onset), is_practiceFixation cross shown / removed
target_onsettrial_index, stimulus_id, target, expected_response, block, target_duration_ms, soa_ms, is_practiceTarget displayed
target_offsettrial_index, stimulus_id, target, is_practiceTarget removed
isi_starttrial_index, stimulus_id, isi_ms, is_practiceBlank ISI begins (only when isi_ms > 0)
mask_onsettrial_index, stimulus_id, mask, mask_duration_ms, soa_ms, is_practiceMask displayed
mask_offsettrial_index, stimulus_id, mask, is_practiceMask removed
response_phase_starttrial_index, stimulus_id, response_options, iti_ms, is_practiceResponse phase opens
feedback_shownpractice_trial_index, feedback_correct, is_practicePractice feedback shown (practice only)
response_recordedtrial_index, is_practiceResponse captured

Target onset marker (target_onset):

{
"type": "target_onset",
"ts": "2024-01-01T00:00:01.000Z",
"hr": 1234.56,
"data": {
"trial_index": 1,
"stimulus_id": "backward_masking_0_1",
"target": "H",
"expected_response": "H",
"block": "SOA_50ms",
"target_duration_ms": 50,
"soa_ms": 50,
"is_practice": false
}
}

Mask onset marker (mask_onset):

{
"type": "mask_onset",
"ts": "2024-01-01T00:00:01.050Z",
"hr": 1284.56,
"data": {
"trial_index": 1,
"stimulus_id": "backward_masking_0_1",
"mask": "#####",
"mask_duration_ms": 200,
"soa_ms": 50,
"is_practice": false
}
}

Response Data:

{
"trial_index": 1,
"stimulus_id": "backward_masking_0_1",
"source": "button",
"target": "H",
"mask": "#####",
"expected_response": "H",
"response_value": "H",
"response_correct": true,
"responded": true,
"target_duration_ms": 50,
"mask_duration_ms": 200,
"isi_ms": 0,
"soa_ms": 50,
"latency_ms": 1234,
"block": "SOA_50ms",
"is_practice": false
}

Summary Artifact

A JSON file (backward_masking_summary_<taskIndex>.json) with aggregated statistics:

{
"task_kind": "backward_masking",
"task_index": 0,
"total_trials": 20,
"overall": {
"total": 20,
"valid_responses": 18,
"correct": 15,
"accuracy": 0.833,
"mean_rt_ms": 1234,
"mean_correct_rt_ms": 1123,
"timeouts": 2
},
"breakdowns": {
"soa": {
"50ms": { "total": 10, "correct": 5, "accuracy": 0.5, "mean_rt_ms": 1456 },
"100ms": { "total": 10, "correct": 10, "accuracy": 1.0, "mean_rt_ms": 1012 }
}
},
"trials": [ /* per-trial data */ ]
}

When practice is enabled and practice trials ran, an additional top-level practice object is included with the same { total_trials, overall, breakdowns, trials } shape.

Key metrics:

  • accuracy: Proportion of correct target identifications
  • breakdowns.soa: Performance grouped by stimulus onset asynchrony (target_duration_ms + isi_ms)
  • mean_rt_ms: Average reaction time (latency is measured from mask offset / response-phase start)

Design Recommendations

SOA Selection

For threshold detection:

  • Start with very short SOAs (20-30ms) where accuracy should be near chance
  • Include intermediate SOAs (50-80ms) to capture the transition zone
  • Add longer SOAs (100-150ms) where accuracy should approach ceiling
  • Use at least 10 trials per SOA condition for reliable estimates

Stimulus Selection

  • Use simple, high-contrast stimuli (letters, shapes)
  • Ensure target and mask are similar in size and visual complexity
  • Balance target stimuli across response options
  • Use pattern masks (e.g., '#####') rather than blanks for strongest masking

Trial Timing

  • Keep fixation duration consistent (500ms is standard)
  • Vary only target_duration_ms and isi_ms to manipulate SOA
  • Use response timeout (iti_ms) appropriate for your population (1000-2000ms)
  • Consider adding brief feedback delays in practice trials

Practice Trials

  • Include 5-10 practice trials
  • Use easy SOAs (100ms+) for practice
  • Enable feedback to help participants understand the task
  • Ensure all target stimuli appear in practice

Typical Use Cases

  1. Threshold measurement: Estimate the minimum SOA for 75% accuracy
  2. Group comparisons: Compare masking sensitivity across populations
  3. Attention effects: Test whether attention affects masking threshold
  4. Individual differences: Correlate masking sensitivity with other measures

References

  • Breitmeyer, B.G., & Ogmen, H. (2006). Visual Masking: Time Slices Through Conscious and Unconscious Vision. Oxford University Press.
  • Enns, J.T., & Di Lollo, V. (2000). What's new in visual masking? Trends in Cognitive Sciences, 4(9), 345-352.