Skip to content

serial-reaction-time-mouse

Current version: 1.1.3. See version history.

The serial reaction time mouse plugin implements a generalized version of the SRT task (Nissen & Bullmer, 1987). Squares are displayed in a grid-based system on the screen, and one square changes color. The participant must click on the square that changes color.

Parameters

In addition to the parameters available in all plugins, this plugin accepts the following parameters. Parameters with a default value of undefined must be specified. Other parameters can be left unspecified if the default value is acceptable.

Parameter Type Default Value Description
target array undefined The location of the target. The array should be the [row, column] of the target.
grid array [[1,1,1,1]] This array represents the grid of boxes shown on the screen. Each inner array represents a single row. The entries in the inner arrays represent the columns. If an entry is 1 then a square will be drawn at that location on the grid. If an entry is 0 then the corresponding location on the grid will be empty. Thus, by mixing 1s and 0s it is possible to create many different grid-based arrangements.
grid_square_size numeric 100 The width and height in pixels of each square in the grid.
target_color hex color code #999 The color of the target square.
response_ends_trial boolean true If true, the trial ends after a mouse click. Feedback is displayed if show_response_feedback is true.
pre_target_duration numeric 0 The number of milliseconds to display the grid before the target changes color.
trial_duration numeric null The maximum length of time of the trial, not including feedback.
fade_duration numeric null If a positive number, the target will progressively change color at the start of the trial, with the transition lasting this many milliseconds.
allow_nontarget_responses boolean false If true, the user can make nontarget response.
prompt string null This string can contain HTML markup. Any content here will be displayed below the stimulus. The intention is that it can be used to provide a reminder about the action the participant is supposed to take (e.g., which keys to press).

Data Generated

In addition to the default data collected by all plugins, this plugin collects the following data for each trial.

Name Type Value
grid array The grid representation. Each inner array represents a single row. The entries in the inner arrays represent the columns. This will be encoded as a JSON string when data is saved using the .json() or .csv() functions.
target array The [row, column] target location on the grid. This will be encoded as a JSON string when data is saved using the .json() or .csv() functions.
rt numeric The response time in milliseconds for the participant to make a response. The time is measured from when the second stimulus first appears on the screen until the participant's response.
response array The [row, column] response location on the grid. This will be encoded as a JSON string when data is saved using the .json() or .csv() functions.
correct boolean Whether the response location matches the target location (true) or not (false).

Install

Using the CDN-hosted JavaScript file:

<script src="https://unpkg.com/@jspsych/plugin-serial-reaction-time-mouse@1.1.3"></script>

Using the JavaScript file downloaded from a GitHub release dist archive:

<script src="jspsych/plugin-serial-reaction-time-mouse.js"></script>

Using NPM:

npm install @jspsych/plugin-serial-reaction-time-mouse
import serialReactionTimeMouse from '@jspsych/plugin-serial-reaction-time-mouse';

Examples

A classic version of the SRT
var grid = [
  [1,1,1,1]
]

var trial_1 = {
  type: jsPsychSerialReactionTimeMouse,
  grid: grid,
  target: [0,0]
}
var trial_2 = {
  type: jsPsychSerialReactionTimeMouse,
  grid: grid,
  target: [0,1]
}
var trial_3 = {
  type: jsPsychSerialReactionTimeMouse,
  grid: grid,
  target: [0,2]
}
var trial_4 = {
  type: jsPsychSerialReactionTimeMouse,
  grid: grid,
  target: [0,3]
}

Open demo in new tab

A 2x2 grid with extra space and different colors
var grid = [
  [1,0,1],
  [0,0,0],
  [1,0,1]
]

var trial_1 = {
  type: jsPsychSerialReactionTimeMouse,
  grid: grid,
  target: [0,0],
  target_color: '#006738'
}
var trial_2 = {
  type: jsPsychSerialReactionTimeMouse,
  grid: grid,
  target: [0,2],
  target_color: '#F78F1E'
}
var trial_3 = {
  type: jsPsychSerialReactionTimeMouse,
  grid: grid,
  target: [2,2],
  target_color: '#13B24B'
}
var trial_4 = {
  type: jsPsychSerialReactionTimeMouse,
  grid: grid,
  target: [2,0],
  target_color: '#E74921'
}

Open demo in new tab