Mirror Tracing Test

Technical Manual

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

Created: January 27, 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 a computerized Mirror Tracing Task (e.g. Starch, 1910), a measure of hand eye coordination and novel motor learning. In general, mirror tracing tasks ask participants to trace various shapes while only being able to see its mirror image.

Researchers can select to run the task with an absolute screen size to ensure that distances stay the same across devices. The default setting is to use proportional sizing. Go to section Defaults for more information.

The setup of this script was inspired by the Mirror Tracing Task described by the Pittsburgh Stress Battery. It uses a square and a circle to trace. A five-pointed star can also be run by this script; however, pixel errors are not computed for this shape.

References

Pittsburgh Stress Battery:
https://measures.scienceofbehaviorchange.org/measuredetails/4deff805-0b33-4b0d-b1b8-5611ea8534e5 Author: Eric Loucks

General References For Mirror Tracing:
Starch, D. (1910). A demonstration of the trial and error method of learning. Psychological Bulletin, 7, 20-23.

Borresen, C. R. (1973). Reward, Punishment and Reversal on a Mirror-Tracing Task. Perceptual and Motor Skills, 37(1), 199–202. https://doi.org/10.2466/pms.1973.37.1.199

Julius, M. S., & Adi-Japha, E. (2016). A Developmental Perspective in Learning the Mirror-Drawing Task. Frontiers in Human Neuroscience, 10, 83–83. https://doi.org/10.3389/fnhum.2016.00083

Duration

11 minutes

Description

The screen is divided into a mirror part (on top) and a drawing canvas (on the bottom). Participants will be asked to trace a shape (square and/or circle) on the drawing canvas (bottom) but can only see their tracing trail on the mirror image of the shape (on the top). By default, each tracing trial lasts at most 45s (editable parameter) before it is timed out.

Procedure

By default, this script runs 3 tracing stimuli (square, circle, 5-pointed star) in a blocked design
with 5 trials each. By default, the order of the stims is randomized but can be fixed via list.blockOrder.
Each trial lasts at most 45s (Editable Parameter) before it is timed out.
After the first block, participants get the chance to take a break (self-paced).
By default, participants receive optional performance feedback at script conclusion.

Check section 'Editable Parameters' for parameters that control
- tracing stimuli (circle/square/star) conditions to run
- trial numbers
- trial timeouts
- performance feedback settings
etc.

Note that currently the script does not provide errorPx for the 5-pointed star condition.

Instructions

provided by Millisecond - can be edited under section 'Editable Instructions'.

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
Parameter Settings
tracingMechanism "finger" vs."mouse"
tracingHand "dominant" vs. "nondominant" vs. "left" vs. "right"
runTracingCircle, True (1) or false (0)
runTracingSquare True (1) or false (0)
runTracingStar True (1) or false (0)
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')
trialCounterCircle The number of trials run in the circle conditions
countSuccessCircle The number of successful trials run in the circle condition
success = participant reached the goal area (was not timed out)
trialCounterSquare The number of trials run in the square conditions
countSuccessSquare The number of successful trials run in the square condition
success = participant reached the goal area (was not timed out)
Latency Data (For Successful Attempts Only)
meanRT Mean tracing RT (in ms) across stim conditions
meanRTCircle Mean tracing RT (in ms) for circle condition trial
meanRTSquare Mean RT (in ms) for square condition trials
Pixel Error Data (For Successful Attempts Only)
meanPixelError Mean pixel errors across stim conditions
meanPixelErrorCircle Mean pixel errors in circle condition
meanPctErrorCircle Converted pixel errors into canvas height percentages
meanPixelErrorSquare Mean pixel errors in square condition
meanPctErrorSquare Converted pixel errors into canvas height percentages
meanPixelErrorStar Mean pixel errors in star condition
meanPctErrorStar Converted pixel errors back into canvas height percentages
( 11% is the max error pct reported for Star shapes)

Raw Data

File Name: mirrortracingtask_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
Parameter Settings
tracingMechanism "finger" vs. "mouse"
tracingHand "dominant" vs. "nondominant" vs. "left" vs. "right"
runTracingCircle, True (1) or false (0)
runTracingSquare True (1) or false (0)
runTracingStar True (1) or false (0)
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')
Trial Performance Metrics
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.
blockCounter Counts the number of blocks run per condition
tracingStimCondition 1 = square; 2 = circle; 3 = 5-pointed star
trialCounter Trial counter per block
success In trial.tracingCircle_tracing_end/trial.tracingSquare_tracing_end
1 = participant reached goal area
0 = trial was timed out (or ended prematurely)
countSuccess Counts the number of successfule trials per block
ontrack 1 = the current mouse coordinates are on the track around the circle/square (includes the target zone)
0 = outside the track
errorPX For coordinates 'ontrack' -> 0
if not on track: the number of pixels that finger/mouse is currently away from track
negative values: the finger/mouse went inside the tracing stimulus ('inside error')
positive values: the finger/mouse 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.TracingCircle_errorPX
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.TracingSquare_errorPX
STAR condition
error pixels reported are the converted canvas height percentage errors (see below)
errorXPX The horizontal x mouse/finger coordinate at time of error (not computed for Star)
errorYPX The vertical y mouse/finger coordinate at time of error (not computed for Star)
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
errorPct Square/Circle: converts 'errorPX' into canvas height percentages
Star
The script uses several helper Stars to locate the movement coordinates relative to the track.
Error distance percentages are reported in pct canvas height percentages in increments of 1%.
There are 10 outer helper stars and 10 inner helper stars.
Distance
positive errors: outer errors
1%-10% => the coordinates were found on one of the outer helper stars
11% = the coordinates were an outer error outside of the 10 helper stars (max outer distance reported)
negative errors: inner errors
-10% to -1% => the coordinates were found on one of the inner helper stars
-11% = the coordinates were an inner error outside of the 10 helper stars (max inner distance reported)
meanTrialErrorPct Converts 'meanTrialErrorPX' into canvas height percentages
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
propOnTrack Proportion onTrack responses for the current trial
looks at the proportion of onTrackMovements relative to all Movements
(excludes movements on target zone)
Latency
tracingRT The cumulative tracing Response Time (in ms)
Coordinate Measures
mouse.x The x coordinate of the finger at the time of the currently measured response (in pixel)
mouse.y The y coordinate of the finger at the time of the currently measured response (in pixel)
mirrorX The mirrored x-coordinate (in pixel)
mirrorY The mirrored y-coordinate (in pixel)
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
or the name of the stimulus that was touched
correct Correctness of response
latency Measured from: onset trial until recorded response

Parameters

The procedure can be adjusted by setting the following parameters.

NameDescriptionDefault
Color Parameter
canvasColor Display color of the actively used portion of the screen (the 'canvas')
if set to a color other than the screenColor, the active canvas
appears 'anchored' on the screen regardless of monitor size
white
screenColor Color of the screen not used by the canvas ('inactive screen')black
defaultTextColor Default color of text items presented on active canvasblack
Sizing Parameter
tracingCircleDiameterPct The diameter of the circle in canvas height percentage35%
tracingSquareHeightPct The height of the TracingSquare in canvas height percentage35%
tracingStarHeightPct The height of the TracingStar in canvas height percentage40%
trackWidthPct The width of the tracing track in canvas height percentage1%
tracingLineWidthPct The width of the tracing line (drawn by participant) in canvas height percentage1%
targetZoneDiameterPct The diameter of the target (also start) zone in canvas height percentage5%
Design
runTracingSquare True: the square condition is run; false = the square condition is skippedtrue
runTracingCircle True: the circle condition is run; false = the circle condition is skippedtrue
runTracingStar True: the star condition is run; false = the star condition is skippedtrue
trialsPerTracingStim Number of trials per Tracing Stim block
By default, participants run 5 trials per square/circle/star stim
5
tracingMechanism "finger" vs. "mouse"
if set to 'finger' => trials will repeat if
fingers is lifted prematurely off the screen during the tracing trials
"mouse"
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
Timing Parameter
trialTimeoutMS The maximum time (in ms) that each tracing trial lasts45000