Maze Task

Technical Manual

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

Created: January 27, 2025

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

Script Copyright © Millisecond Software, LLC

Background

This script implements a Maze Task to investigate spatial navigation, visuoconstructional ability, and executive functions of planning and foresight. The current script is inspired by the Snell Grove Mazetask (SMT) and Computerized Mazetask published by Ott et al (2008) which were designed as a screening test for road (in)competence in older adults. A more child-friendly design was selected for this script to make it more flexible for a larger audience.

The current script runs one practice maze (5x5) and one test maze (10x10) but can be easily edited to run more/different mazes. Check out helper script 'mazetask_stims1_inc.igjs'.

It is recommended to run the task on ipad sized touchscreens with a stylus pen to imitate a pencil and paper administration. However, the task can also be run with a computer mouse on non-touchscreens. The default settings will run the script with proportional stimuli sizing but can be easily changed to use absolute sizing instead. Check section Defaults for additional instructions.

References

Snellgrove, C. (2005). Cognitive screening for the safe driving competence of older people with mild cognitive impairment or early dementia. ATSB Report. https://www.atsb.gov.au/ publications/2005/pdf/cog_screen_old.pdf.

Snellgrove, C. (2006). Older drivers with mild cognitive impairment or early dementia. University of Adelaide. [Unpublished PhD Thesis].

Ott, B. R., Festa, E. K., Amick, M. M., Grace, J., Davis, J. D., & Heindel, W. C. (2008). Computerized Maze Navigation and On-Road Performance by Drivers With Dementia. Journal of Geriatric Psychiatry and Neurology, 21(1), 18–25. https://doi.org/10.1177/0891988707311031

Duration

3 minutes

Description

After practising on a 5x5 maze, participants are asked to help a hungry mouse find its way quickly through a 10x10 maze to get to the cheese at the exit. Participants are explicitly asked to avoid hitting deadends.

Procedure

(1) Practice: 1 5x5 Maze; with verbal instructions (instructions can be repeated)
(2) Test: 1 Mazes; TimeLimit: 3 minutes


- participants cannot move through walls. If a wall-violation is detected, a red circle
appears in the middle of the currentBox and participants have to return to it before they can
move on.
- on touchscreens: when participants lift their finger/stylus, a red circle
appears in the middle of the currentBox and participants have to return to it before they can
move on.

Errors
Detours: the script counts the number of times participants starts to go off in the wrong direction for each maze
DeadEnds: the script counts the number of times participants hit a deadend for each maze


Planning Rt
- time spent until start box is pressed
- time spent NOT drawing: not drawing operationalized as spending more than 1s on the same response box (no movement)
=> time that is spent in excess of 1s on the same response box is added to the planningRT

Stimuli

Mazes provided by Millisecond. The following maze generator was used
to generate them: https://codebox.net/pages/maze-generator/online

The provided mazes were selected to be somewhat comparable to the mazes used by the Snellgrove Maze Task (SMT)
in number of deadends and length of solution path (though the mazes in the SMT task have slightly more
deadends and a longer solution path). The currently provided mazes have not been validated/tested in research.

Practice: 5x5 matrix maze
Test: 10x10 matrix maze

Mazes can be edited and new mazes can be added in script: 'mazetask_stims1_inc.igjs'.
The procedure will automatically adapt to the specified maze sizes (max. size: 10x10)

Other images were downloaded from: pixabay.com

Instructions

provided by Millisecond - can be edited in script 'mazes_instructions_inc.iqjs'

Summary Data

File Name: mazetask_summary*.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
numberPracticeMazes The number of practice mazes run
numberTestMazes The number of test mazes run
Test Mazes: Up To 5 Test Mazes
id1 The identification index of the first test maze
path1 The chosen path towards the exit
success1 1 = successfully navigated the maze to the exit; 0 = otherwise
liftOffs1 Number of time a finger/stylus was lifted off the screen (not possible if mouse is used)
violations1 Number of violations (e.g. wall crossings)
detourCount1 Number of detours taken (number of times path is going off into the wrong direction)
deadEndsCounter1 Number of times actual deadends are visited
planningRT1 Planning time in ms (see raw data for operationalization of planning RT is used in this script)
duration1 The total duration of the first test maze
(3) Streaming data file: 'mazetask_stream*.iqdat'
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
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
script.elapsedTime Current script.elapsedTime in ms (0 = start of script)
mazeID The current maze
trialcode The current trial
Updated At The End Of Evaluating The Current Response
prevBox Store the previous box (for the upcoming response)
currentBox Stores the current box (for the upcoming response)
newBox Stores the new box (for the current response; if valid will become the currentBox)
expressions.planning Expressions that updates whether participant is likely in 'planning mode' (spends more than 1s on the same box)
0 = not in planning mode
1 = likely in planning mode
planningRT Stores the current time (in ms) participant spent in 'planning mode'

Raw Data

File Name: mazetask_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
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.
practiceMazesCounter Tracks the number of practice mazes run
testMazesCounter Tracks the number of test mzaes run
mazeID Default: 0 (practice), 1 (test)
maxMazeDuration The maximum time allotted to the maze
solutionPath The solution path of the current maze (stores the matrix 'boxes' that need to be travelled)
solutionPathLength The length of the solution path (in number of boxes)
mazeTimestamp The script.elapsedtime of the onset of the maze
Updated At The End Of Evaluating The Current Response
prevBox Store the previous box (for the upcoming response)
currentBox Stores the current box (for the upcoming response)
newBox Stores the new box (for the current response; if valid will become the currentBox)
violation 0 = currently no violation (e.g. lifting stylus or trying to cross a wall)
1 = current violation
path Stores the matrix path taken (stores the matrix 'boxes' that participant travelled through)
pathLength Length of path travelled (in number of boxes)
invalidMovesCounter Counts the number of invalid moves attemped (e.g. trying to cross a wall)
duration The time it took to work on the current maze
planningRT The duration (in ms) coded as planning time
PlanningRT
- time spent until start box is pressed
- time spent NOT drawing: 'not drawing' is operationalized as spending more than 1s on the same response box (no movement)
=> time that is spent in excess of 1s on the same response box is added to the planningRT
success 0 = maze was not solved
1 = maze was solved
to 0 = maze was not timed out
1 = maze was timed out
pathDiffLength = pathLength-solutionPathLength (for successful navigation, this measure shows how many boxes in excess of the minimum number was travelled)
detour 0 = participant is currently not a detour (currently on solutionPath going in the right direction)
1 = participant is currently on a detour (going away from solutionPath)
detourCounter Counts the number of times participant started to move in the wrong direction
deadEndsCounter Counts the number of times participant actually reached a deadEnd
maze JSON string variable that stores the current maze settings

Parameters

The procedure can be adjusted by setting the following parameters.

NameDescriptionDefault
Color Parameter
canvasColor DDisplay 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
white
screenColor Color of the screen not used by the canvas ('inactive screen')gray
defaultTextColor Default color of text itemsblack
Timing Parameters
maxMazeDurationMS The max time (in ms) allotted to each test maze180000