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
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.
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
3 minutes
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.
(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.
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
provided by Millisecond - can be edited in script 'mazes_instructions_inc.iqjs'
File Name: mazetask_summary*.iqdat
| Name | Description |
|---|---|
| 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' |
File Name: mazetask_raw*.iqdat
| Name | Description |
|---|---|
| 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 |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
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 items | black |
Timing Parameters |
||
| maxMazeDurationMS | The max time (in ms) allotted to each test maze | 180000 |