Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 15, 2025
Last Modified: January 02, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements a simple approximation of the compensatory tracking task COMPTRACK by Makeig & Jolley (Naval Research) to study vigilance.
The Inquisit implementation works with touch input (finger or stylus (recommended)) on touchscreens and mouse input on non-touchscreens. By default the task is run on a proportional screen, but can be easily modified to use an absolute screen canvas. Go to 'Defaults' section of this script and check instructions.
Original Compensatory Tracking Task 'CompTrack' by Makeig & Jolley (1995,Naval Research):
The basic task: keep a target on the center of a bull's eye The target sits on an 'imaginary' hill and three forces move it around: 1) a buffeting force 2) a slipping force (The slipping force always works outwards) 3) Participant forcing the target
Objectives of COMPTRACK: The task required must satisfy four criteria: 1. To distinguish it from an auditory detection task used in previous research, the task should not involve auditory stimuli. 2. To allow study of vigilance decrements, the task should be monotonous enough to produce deficits associated with underarousal and loss of vigilance. 3. To allow study of rapid (20 sec) fluctuations in vigilance, the task should require continuous user input at near-one second intervals 4. The task program should allow msec-scale synchronization with external psychophysiological or other data collection processes.
Makeig, S. & Jolley, K. (1995). COMPTRACK: A Compensatory Tracking Task for Monitoring Alertness.
12 minutes
This compensatory tracking tasks places a red circle (target) onto a yellow circle (bull's eye) which represents the "top of the hill". After a random time period (500-1000ms), the target begins to move in a random direction away from hill's center and possibly 'downhill' (though this is not made explicit to participants).
If the finger/mouse moves over the moving red circle, its position can be corrected and can be dragged back to the center. However, for a short distance away from the center, the target moves regardless of a participant's action => this forces participants to stay vigilant as the target can 'escape'.
Once back close to the center of the bull's eye, the target is automatically moved to the center and the process begins anew.
If the target is not moved back to the bull's eye, the target eventually proceeds to travel 'downhill' away from the bull's eye.
(1) Practice: 1 minute (editable parameter)
Participants get to practice the tracking task for 1 minute
(2) Test: 12 minutes (editable parameters), under the cover divided into 3 phases (4 minutes each)
provided by Millisecond
provided by Millisecond - see script "compensatorytrackingtask_instructions_inc.iqjs"
File Name: xxxx_summary*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 1 = the current screen has touchscreen capabilities; 0 = otherwise |
| startdate | Date script was run |
| starttime | Time script was started |
| subjectid | Assigned subject id number |
| groupid | Assigned group id number |
| sessionid | Assigned session id number |
| elapsedtime | Time it took to run script (in ms); measured from onset to offset of script |
| completed | 0 = Test was not completed 1 = Test was completed |
| display.height | The height of the current screen in pixels |
| display.canvasHeight | The height of the current active canvas in pixels (active canvas = part of the screen used to run the script) |
| display.refreshInterval | The refreshinterval (in ms) of the current display |
| expressions.pxPerMM | Px/mm conversion number for the current display |
Summary Performance Metrics For The First 3 Test Periods |
|
| dur1 | Duration of testing period1 |
| m1 | Mean target-center distance in MM during testing period1 |
| sd1 | Standard deviation of the target-center distances in MM during testing period1 (same for testing periods 2-3) |
File Name: xxxx_raw*.iqdat
| Name | Description |
|---|---|
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 1 = the current screen has touchscreen capabilities; 0 = otherwise |
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
| display.height | The height of the current screen in pixels |
| display.canvasHeight | The height of the current active canvas in pixels (active canvas = part of the screen used to run the script) |
| display.refreshInterval | The refreshinterval (in ms) of the current display |
| expressions.pxPerMM | Px/mm conversion number for the current display |
| blockCode | Name of the current block |
| blockNum | Number of the current block |
| trialCode | Name of the current trial |
| trialNum | Number of the current trial |
Built-In Dv |
|
| response | The participant's response |
| correct | Accuracy of response: 1 = correct response; 0 = otherwise |
| latency | The response latency (in ms); measured from: onset of trials |
Custom Variable |
|
| testPhase | "practice" vs. "test" |
| testPeriod | 0 = beginning period of the test that still counts as 'practice' (if any) the remaining test time is divided in test periods (number is determined by parameter setting) |
| targetPhase | 0 = target inactive on bull's eye (no force acting on it) 1 = target active on bull's eye but cannot be controlled by participant yet ('wind' acts on it) 2 = target active on bull's eye but can be controlled by participant ('wind' acts on it) 3 = target actively going downhill ('wind' and downhill force act on it) 4 = target under participant's control |
| distanceTargetPX | The pixel distance from target to center (center of bull's eye) |
| distanceTargetMM | The mm distance from target to center (center of bull's eye) - absolute measurement |
File Name: xxxx_stream*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 1 = the current screen has touchscreen capabilities; 0 = otherwise |
| startdate | Date script was run |
| starttime | Time script was started |
| subjectid | Assigned subject id number |
| groupid | Assigned group id number |
| sessionid | Assigned session id number |
| display.height | The height of the current screen in pixels |
| display.canvasHeight | The height of the current active canvas in pixels (active canvas = part of the screen used to run the script) |
| display.refreshInterval | The refreshinterval (in ms) of the current display |
| expressions.pxPerMM | Px/mm conversion number for the current display |
| blockcode | The current blockcode |
| trialCode | Name of the current trial |
| script.elapsedTime | Elapsed time at recording |
| testPhase | "practice" vs. "test" |
| testPeriod | 0 = beginning period of the test that still counts as 'practice' (if any) the remaining test time is divided in test periods (number is determined by parameter setting) |
| targetPhase | 0 = target inactive on bull's eye (no force acting on it) 1 = target active on bull's eye but cannot be controlled by participant yet ('wind' acts on it) 2 = target active on bull's eye but can be controlled by participant ('wind' acts on it) 3 = target actively going downhill ('wind' and downhill force act on it) 4 = target under participant's control 5 = 'penalty': target was attempted to be moved off screen. 1s penalty => target reappears randomly in one of the four corners of the canvas (largest distance to bull's eye) Angle Examples * 180 degrees => moving left (E->W), * 0/360 degrees => moving right (W->E), * 270 moving to the top of the screen (S->N), * 90 degrees moving to the bottom of the screen (N->S)) (and everything in between) |
| downHillAngle | The downhill 'direction' (always away from center); depends on location of target |
| windAngle | The wind 'direction' |
| finalAngle | The final 'direction' angle |
| downHillSpeed | The downhill speed (in pct) |
| windSpeed | The wind speed (in pct) |
| windStrength | The wind strength: 5 distinct categories |
| finalSpeedPct | The final speed (in pct) |
| radiusBullsEyePX | The radius of the bull's eye in pixel |
| radiushillPX | The radius of the hill in pixel |
| targetXPX | The horizontal pixel coordinate of the target |
| targetYPX | The vertical pixel coordinate of the target |
| mouse.x:mouse.y | The current mouse/cursor coordinates |
| distanceTargetPX | The pixel distance from target to center (center of bull's eye) |
| distanceTargetMM | The mm distance from target to center (center of bull's eye) - absolute measurement |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Color Parameter |
||
| canvasColor | Display color of the actively used portion of the screen (the 'canvas') if set to a color other than the screenColor, you can distinguish the active canvas from the inactive portion of the screen | black |
| screenColor | Color of the screen not used by the canvas ('inactive screen') | gray |
| defaultTextColor | Default color of text items | white |
Canvassize To Absolute Measurements |
||
| hillSize | 80% | |
| bullsEyeInnerHeightPct | 6% | |
| bullsEyeHeightPct | 10% | |
| targetHeightPct | 5% | |
Timing Parameters |
||
| minRestingTimeMS | The minimum time (in ms) the target rests on the top of the hill once it's returned | 500 |
| maxRestingTimeMS | The maximum time (in ms) the target rests on the top of the hill once it's returned | 1000 |
| practiceDurationMS | The duration (in ms) of the practice session | 60000 |
| testDurationMS | The duration (in ms) of the test | 720000 |
Performance Metrics |
||
| crucialTestDurationMS | The crucial (summary data collecting) phase of the test phase default: complete test phase | 720000 |
| numberOfTestPeriods | The crucial Test Duration is divided into 3 test periods: start, middle, end hard coded summary variables only provided for 3 test periods | 3 |