A set of working memory tasks in a triad of standalone desktop applications.
Built with a Rust backend and an HTML, CSS, and JavaScript frontend.
Looking for the web apps instead?
https://github.com/jfo222/jfo222.github.io
Based on S. Inoue and T. Matsuzawa's 2007 documentation.
| Config | Description | Value |
|---|---|---|
| alphanumeric | Sets characters of stimuli | "alpha", "numeric" |
| limitMax/limitMin | Stimuli range | Integer |
| nightMode | Enables night mode | Boolean |
| randomize arrow | Randomized within the arc span | Boolean |
| randomize char | Randomized instead of sequential | Boolean |
| reverse arrow/char | Reverses the order | Boolean, "alternate" |
| sound | Enables sound | Boolean |
| time 0/1/2 | Stimuli hold time | Milliseconds, 0 = unlimited |
Based on S. Jaeggi and M. Buschkuehl's 2008 documentation.
| Map | Key |
|---|---|
| Visual target | A |
| Aural target | L |
| Buttons on/off | B |
| Run block/end task | Space |
QWERTY keyboard layout.
| Config | Description | Value |
|---|---|---|
| aural | Auditory stimuli | Array (8 unique consonants) |
| autoDown/autoUp (session) | Mistakes > or < to decrement/increment N | Integer |
| base | Length of sequence equals base + N | Integer |
| blocks (session) | Number of blocks in a session | Integer |
| buttons | Enables onscreen buttons | Boolean |
| limitMax/limitMin | N-back range | Integer |
| nightMode | Enables night mode | Boolean |
| overlap | Number of simultaneous targets | Integer |
| overlapCtrl | Enables controlled overlap | Boolean |
| sound | Enables sound | Boolean |
| targets | Number of targets (single stream) | Integer |
| timeRate/timeStimulus | Sets time | Milliseconds |
| piper_model | Path to voice model | String |
| piper_sample_rate | Voice model sample rate | String |
A backwards memory span task.
| Config | Description | Value |
|---|---|---|
| alphanumeric | Sets characters of stimuli | Boolean |
| autoDown/autoUp | Successive rounds to set level | Integer |
| columns | Number of panel columns | Integer |
| limitMin | Minimum sequence length | Integer |
| nightMode | Enables night mode | Boolean |
| qty char/color | Number of stimuli | Integer |
| sound | Enables sound | Boolean |
| timeRate/timeStimulus | Sets time | Milliseconds |
| piper_model | Path to voice model | String |
| piper_sample_rate | Voice model sample rate | String |
Download the binaries and launch.
Keep the optional config.json in the same folder to override default values.
Dependencies, (Ubuntu 26.04 LTS+):
libwebkit2gtk-4.1-0
speech-dispatcher
espeak-ng
sudo apt install libwebkit2gtk-4.1-0 speech-dispatcher espeak-ng
To install Piper TTS:
sudo apt install pipx
pipx ensurepath
pipx install piper-tts
Voice models can be downloaded at: https://huggingface.co/rhasspy/piper-voices/tree/main
Build dependencies:
libwebkit2gtk-4.1-dev
libasound2-dev
sudo apt install libwebkit2gtk-4.1-dev libasound2-dev
To build, you need Rust installed.
cd to directory and cargo build --release