Nasa Tracing Task

Technical Manual

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond

Created: January 06, 2022

Last Modified: January 09, 2025 by K. Borchert (katjab@millisecond.com), Millisecond

Script Copyright © Millisecond Software, LLC

Background

This script implements Millisecond's version of the NASA developed 'Tracing Task', a measure of manual dexterity.

The NASA developed tasks can be downloaded as a free app from the Apple App Store.

Note the script runs with proportional sizing by default. Researchers can select to run the task with an absolute screen size to ensure that distances stay the same across devices. See section Defaults for more info.

Disclaimer: the NASA ipad App data/implementation may differ from the one collected by the Inquisit script.

References

Bettina L. Beard (2020). The Cognition and Fine Motor Skills Test Batteries: Normative Data and Interdependencies Technical Memorandum (TM) 20205008023. https://ntrs.nasa.gov/citations/20205008023 Public Access

Duration

7 - 8 minutes

Description

Participants are asked to trace the outlines of circle and squares, starting from a dedicated 'start' position. They trace along the outline in the direction indicated by an arrow.

Procedure

By default, this script runs 4 different conditions with 1 repetition per condition:
2 tracing stimuli (circle, square) x 2 directions (clockwise vs. counterClockwise) x 1 reps
The order of the resulting 4 conditions is selected at random.
Each condition runs 3 blocks of 5 trials each (12 blocks total), followed by a self-paced break.
By default, participants receive optional performance feedback at script conclusion.

Check section 'Editable Parameters' for parameters that control
- tracing stimuli (circle/square) conditions to run
- rotation (clockwise, counterClockwise) conditions to run
- block/trial/repetition numbers
- performance feedback settings
- automated task demo

Stimuli

provided by Millisecond - can be edited under section 'Editable Stimuli'

Instructions

provided by Millisecond - can be edited under section 'Editable Instructions'.
The instructions are based on Beard (2020, p.58 - Appendix D)

Scoring

Pxpermm
To convert pixel distances into absolute 'mm' units, use 'pxPerMM':
=> distance_inMM = distance_inPX / pxPerMM

Norms For Errors
See 'errorPX' - under raw data- for explanation of how each pixel error was computed in this script.
Because this computation might be different from Beard (2022), the published norming data was not
used in this script

Summary Data

File Name: tracingtaskSummary*.iqdat

Data Fields

NameDescription
inquisit.version Inquisit version number
computer.platform Device platform: win | mac |ios | android
computer.touch 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities
computer.hasKeyboard 0 = no external keyboard detected; 1 = external keyboard detected
startDate Date the session was run
startTime Time the session was run
subjectId Participant ID
groupId Group number
sessionId Session number
elapsedTime Session duration in ms
completed 0 = Test was not completed
1 = Test was completed
Parameters
tracingMechanism "finger" vs. "stylus"
tracingHand "dominant" vs. "nondominant" vs. "left" vs. "right"
runTracingCircle, True (1) or false (0)
runTracingSquare True (1) or false (0)
runClockwise True (1) of false (0)
runCounterClockwise True (1) of false (0)
repetitionsPerCondition Number of repetitions per condition
Display Information
display.canvasHeight The height of the active canvas ('canvas') in pixels
display.canvasWidth The width of the active canvas ('canvas') in pixels
pxPerMM The conversion factor to convert pixel data into mm-results for the current monitor
( the higher resolution of the current monitor
the more pixels cover the same absolute screen distance)
This factor is needed if you want to convert pixel data into absolute mm data
Latency Data
medianRTCircle Median tracing RT (in ms) for circle condition trials (across clockwise and counterClockwise direction)
zRTCircle Z-score of medianRTCircle using norming data from Beard (2020, p.22) for finger/stylus (depends on parameters.TracingMechanism)
see Beard (2020, Appendix F, p.67/68) for a complete overview of their results
Norming sample described in Beard (2020, p.8)
Keep in mind: The norming sample may not be the appropriate comparison group for your participants
and/or study design
pRTCircle Percentile of zRTCircle
!The norming sample may not be the appropriate comparison group for your participants
and/or study design!
medianRTSquare Median RT (in ms) for square condition trials (across clockwise and counterClockwise direction)
zRTSquare Z-score of medianRTSquare using norming data from Beard (2020, p.22) for finger/stylus (depends on parameters.TracingMechanism)
see Beard (2020, Appendix F, p.67/68) for a complete overview of their results
Norming sample described in Beard (2020, p.8)
Keep in mind: The norming sample may not be the appropriate comparison group for your participants
and/or study design
pRTSquare Percentile of zRTSquare
!The norming sample may not be the appropriate comparison group for your participants and/or study design!
By Direction
medianRTCircleC Median RT (in ms) in clockwise, circle condition
median tracing RT = median time (in ms) it took for participant to successfully complete a trial
medianRTCircleCc Median RT (in ms) in counterClockwise, circle condition
medianRTSquareC Median RT (in ms) in clockwise, square condition
medianRTSquareCc Median RT (in ms) in counterClockwise, square condition
Pixel Error Data
medianPixelErrorCircle Median pixel errors in circle condition (across clockwise and counterClockwise direction)
medianPixelErrorSquare Median pixel errors in square condition (across clockwise and counterClockwise direction)
By Direction
medianPixelErrorCircleC Median pixel errors in clockwise, circle condition
medianPixelErrorCircleCc Median pixel errors in counterClockwise, circle condition
medianPixelErrorSquareC Median pixel errors in clockwise, square condition
medianPixelErrorSquareCc Median pixel errors in counterClockwise, square condition

Raw Data

File Name: tracingtask_raw*.iqdat

Data Fields

NameDescription
build Inquisit version number
computer.platform Device platform: win | mac |ios | android
computer.touch 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities
computer.hasKeyboard 0 = no external keyboard detected; 1 = external keyboard detected
date Date the session was run
time Time the session was run
subject Participant ID
group Group number
session Session number
Parameters
tracingMechanism "finger" vs. "stylus"
tracingHand "dominant" vs. "nondominant" vs. "left" vs. "right"
runTracingCircle, True (1) or false (0)
runTracingSquare True (1) or false (0)
runClockwise True (1) of false (0)
runCounterClockwise True (1) of false (0)
repetitionsPerCondition Number of repetitions per condition
Display Information
display.canvasHeight The height of the active canvas ('canvas') in pixels
display.canvasWidth The width of the active canvas ('canvas') in pixels
pxPerMM The conversion factor to convert pixel data into mm-results for the current monitor
( the higher resolution of the current monitor
the more pixels cover the same absolute screen distance)
This factor is needed if you want to convert pixel data into absolute mm data
canvasHeightMM The width of the active canvas in mm
canvasWidthMM The height of the active canvas in mm
tracingCircleDiameterMM The diameter of the tracing circle in mm
tracingSquareHeightMM The diameter of the tracing square in mm
trackWidthMM The width of the tracks around the stimulus in mm (the area that is considered 'on track')
Raw Data: Trial By Trial
blockcode The name the current block (built-in Inquisit variable)
blocknum The number of the current block (built-in Inquisit variable)
trialcode The name of the currently recorded trial (built-in Inquisit variable)
trialnum The number of the currently recorded trial (built-in Inquisit variable)
trialnum is a built-in Inquisit variable; it counts all trials run
even those that do not store data to the data file.
conditionCounter Counts the number of conditions run
blockCounter Counts the number of blocks run per condition
currentCondition 1 = diameter1, clockwise; 2 = diameter1, counterClockwise
3 = diameter2, clockwise; 4 = diameter2, counterClockwise
conditionRepetition Number of times the current condition has been presented
direction 1 = clockwise; 2 = counterClockwise
tracingStimCondition 1 = circle; 2 = square
trialCounter Trial counter per block
respStatus "down": the finger/stylus touched the target/start circle
"move": finger/stylus is moving on screen
"up-miss": finger/stylus was lifted off screen but has not reached the target circle
"up-good": finger/stylus was correctly lifted of the target circle
onTrack 1 = the current mouse coordinates are on the track around the circle/square
errorPX For coordinates 'onTrack' -> 0
if not on track: the number of pixels that finger/stylus is currently away from track
negative values: the finger/stylus went inside the tracing stimulus ('inside error')
positive values: the finger/stylus went outside the tracing stimulus ('outside error')
CIRCLE condition
'inside error': the (negative) pixel difference btw. inner track radius (in px) and distance from mouse coordinates to circle center
'outside error': the (positive) pixel difference btw. outer track radius (in px) and distance from mouse coordinates to circle center
=> see expressions.TracingCircleErrorPX
SQUARE condition
'inside error': script returns the minimum of 4 possible distances to the inner track ( 'benefit of a doubt' coding)
1. vertical distance to top inner track
2. vertical distance to bottom inner track
3. horizontal distance to left inner track
4. horizontal distance to right inner track
'outside error': script determines in which of 8 possible locations (relative to the tracing square) the coordinates fall into
1. directly above: returns the difference in y coordinates of the outer track and the mouse coordinates
2. directly below: returns the difference in y coordinates of the outer track and the mouse coordinates
3. directly left: returns the difference in x coordinates of the outer track and the mouse coordinates
4. directly left: returns the difference in x coordinates of the outer track and the mouse coordinates
the remaining locations return the distance of the mouse coordinates to the nearest corner of the outer track
=> see expressions.TracingSquareErrorPX
errorXPX The horizontal x mouse/finger coordinate at time of error
errorYPX The vertical y mouse/finger coordinate at time of error
meanTrialErrorPX The mean of all 'errorPX' values across the trial (measure only is based on absolute values => of interest is the absolute distance) in the current trial
calculated at the end of each trial
onTargetZone 1 = mouse/finger coordinates are currently on the Target Zone; 0 = otherwise
leftTargetZone 1 = mouse/finger coordinates have moved on from initial touchdown on Target Zone; 0 = otherwise
reachedTargetZone 1 = mouse/finger coordinates have reached Target Zone again after once leaving it; 0 = otherwise
success 1 = the mouse/finger coordinates have left Target Zone and have reached Target Zone during the trial
at time of finger lift-off
0 = otherwise
Latency
tracingRT The time (in ms) it took from down response to up response (successful or not)
Coordinate Measures
mouse.x The x coordinate of the finger at the time of the currently measured response
mouse.y The y coordinate of the finger at the time of the currently measured response
targetZoneCenterXPX The horizontal x-pixel position of the target/start circle
targetZoneCenterYPX The vertical y-pixel position of the target/start circle
targetZoneDiameterPX The pixel diameter of the target/start circle
Inquisit Built-In Variables
response The response of participant
Example
'mousemove' => mouse coordinate change was noted
'lButtonUp' => lift-up response
or the name of the stimulus that was touched
correct Correctness of response
Example: trial.tracingCircleTracingEnd
1 = participant lifts finger off the screen when values.success = 1
0 = any other response
latency Continuous trial latency (in ms); measured from: onset trial until lift-off response

Parameters

The procedure can be adjusted by setting the following parameters.

NameDescriptionDefault
Design
runTracingSquare True = run Square Condition; false = skip Square Conditiontrue
runTracingCircle True = run Circle Condition; false = skip Circle Conditiontrue
runClockwise True = run the task with clockwise rotations
false = skip the clockwise rotation trials
true
runCounterClockwise True = run the task with counter-clockwise rotations
false = skip the clockwise counter-rotation trials
true
numberOfBlocksPerCondition Number of blocks per condition; Example for a condition: 'tracingCircle, clockwise'3
trialsPerBlock Number of trials per block5
repetitionsPerCondition The number of repetitions for each condition
in this script: conditions repeat once they have all run
Example for a condition: 'tracingCircle, clockwise'
1
tracingMechanism Choose from: "finger" vs. "stylus"
if "finger", the index finger is assumed
"finger"
tracingHand Choose from: "dominant", "non-dominant", "left", "right""dominant"
skipPerformanceFeedback True: participants won't receive any performance feedback at the end
false: participants will receive performance feedback at the end
false
runDemo True: the script runs an demonstration of the task
false: the script skips the demonstration (e.g. if task administrator wants to demonstrate themselves)
true
Color Parameters
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
lightGray
screenColor Color of the screen not used by the canvas ('inactive screen')lightGray
defaultTextColor Default color of text itemsblack
Sizing Parameters
tracingCircleDiameterPct The diameter of the circle in canvas height percentage65%
tracingSquareHeightPct The height of the TracingSquare in canvas height percentage65%
trackWidthPct The width of the tracing track in canvas height percentage1%
tracingLineWidthPct The width of the tracing line (drawn by participant) in canvas height percentage0.5%
targetZoneDiameterPct The diameter of the target (also start) zone in canvas height percentage15%