A-maze

Code
jspsych-maze (plugin)
maze-distractor-generator
maze-demos
Maze (older)

Current tools
Distractor generation (Hugging Face models)
Running A-maze in jsPsych
A-maze for kids
A-maze in other languages

Demos
All demos
Kid-friendly reading
Sentences with RT graph
Sentences without redo
Short vignettes
Natural Stories story

Background
What is A-maze?
Papers using A-maze
An argument for 'redo' mode
Adding a delay to 'redo' mode
Experiment design
Parameter considerations

Older tools
Original distractor generation (Boyce et al. 2020; Boyce & Levy 2023)
Install instructions
Basic use
Parameters
Advanced options
Ibex
Using Ibex for Maze
Hosting an Ibex-Maze server

A-maze

What is Maze / A-maze?

The Maze task is an incremental reading task. Participants read a sentence one word at a time, choosing at each step between two words: the correct next word, and a distractor that doesn’t fit. The time to choose shows how hard each word was to process. Traditionally the distractors were written by hand (Forster, Guerrera, & Elliot, 2009).

diagram of Maze task

A-maze is the Maze task with automatically generated distractors. A language model picks, for each word, a real word that is a poor continuation of the sentence so far. It is described in:

If you use A-maze, please cite these, along with the language model you used. There’s more on the method in What is A-maze?, and a list of papers using A-maze. You can try the task in the demos.

Current tools

A typical pipeline: write your materials, then generate distractors with distract.py --format json. Review them and regenerate any bad ones. Then load the resulting JavaScript module into a jsPsych experiment that uses the Maze plugin.

Older tools

These are kept for existing projects but aren’t maintained:

If you run into bugs or issues, feel free to raise issues on GitHub or email me.