{"id":47676971,"url":"https://github.com/jfo222/memorytasks","last_synced_at":"2026-06-13T13:01:00.375Z","repository":{"id":357958337,"uuid":"1239309807","full_name":"jfo222/MemoryTasks","owner":"jfo222","description":"Limited hold, Dual N-back and Backwards working memory tasks.","archived":false,"fork":false,"pushed_at":"2026-05-15T01:10:12.000Z","size":103,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-15T03:21:47.276Z","etag":null,"topics":["desktop-app","dual-n-back","limited-hold","linux-app","memory-game","n-back","reverse-memory-span","working-memory"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jfo222.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-15T01:09:19.000Z","updated_at":"2026-05-15T01:13:06.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jfo222/MemoryTasks","commit_stats":null,"previous_names":["jfo222/memorytasks"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/jfo222/MemoryTasks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfo222%2FMemoryTasks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfo222%2FMemoryTasks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfo222%2FMemoryTasks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfo222%2FMemoryTasks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jfo222","download_url":"https://codeload.github.com/jfo222/MemoryTasks/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfo222%2FMemoryTasks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33162446,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T22:39:12.733Z","status":"online","status_checked_at":"2026-05-18T02:00:06.436Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["desktop-app","dual-n-back","limited-hold","linux-app","memory-game","n-back","reverse-memory-span","working-memory"],"created_at":"2026-04-02T13:35:55.356Z","updated_at":"2026-06-13T13:01:00.367Z","avatar_url":"https://github.com/jfo222.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Memory Tasks\n\nA set of working memory tasks in a triad of standalone desktop applications.  \nBuilt with a Rust backend and an HTML, CSS, and JavaScript frontend.\n\n----\n\nLooking for the web apps instead?\n\n\u003chttps://github.com/jfo222/jfo222.github.io\u003e\n\n----\n\n### 1. Limited Hold\n\nBased on S. Inoue and T. Matsuzawa's 2007 documentation.\n\n|  Config                     |  Description                               |  Value                        |\n|  ------                     |  ------                                    |  ------                       |\n|  alphanumeric               |  Sets characters of stimuli                |  \"alpha\", \"numeric\"           |\n|  lang                       |  Language selector                         |  \"en\", \"zh\", `null`           |\n|  limitMax/limitMin          |  Stimuli range                             |  Integer                      |\n|  nightMode                  |  Enables night mode                        |  Boolean                      |\n|  randomize arrow            |  Randomized within the arc span            |  Boolean                      |\n|  randomize char             |  Randomized instead of sequential          |  Boolean                      |\n|  refreshRate                |  The fixed hardware refresh rate¹          |  Integer, `null`              |\n|  reverse arrow/char         |  Reverses the order                        |  Boolean, \"alternate\"         |\n|  sound                      |  Enables sound                             |  Boolean                      |\n|  time 0/1/2                 |  Hold time aim for the next frame update²  |  Milliseconds, 0 = unlimited  |\n|  timeout                    |  Tolerance for dropped frames              |  Integer                      |\n\n¹If `null`, an attempt to detect 60, 100, or 120 Hz will be made and the best match used.\n\n²The visual duration of the stimuli is the measured time.\n\n----\n\n### 2. Dual N-back\n\nBased on S. Jaeggi and M. Buschkuehl's 2008 documentation.\n\n|  Map                        |  Key        |\n|  ------                     |  :----:     |\n|  Visual target              |  A          |\n|  Aural target               |  L          |\n|  Buttons on/off             |  B          |\n|  Run block/end task         |  Space      |\n\n QWERTY keyboard layout.\n\n----\n\n|  Config                     |  Description                               |  Value                        |\n|  ------                     |  ------                                    |  ------                       |\n|  aural                      |  Set custom auditory stimuli               |  Array, `null`                |\n|  autoDown/autoUp (session)  |  Mistakes \u003e or \u003c to decrement/increment N  |  Integer                      |\n|  base                       |  Length of sequence equals base + N        |  Integer                      |\n|  blocks (session)           |  Number of blocks in a session             |  Integer                      |\n|  buttons                    |  Enables onscreen buttons                  |  Boolean                      |\n|  lang                       |  Language selector                         |  \"en\", \"zh\", `null`           |\n|  limitMax/limitMin          |  N-back range                              |  Integer                      |\n|  nightMode                  |  Enables night mode                        |  Boolean                      |\n|  overlap                    |  Number of simultaneous targets            |  Integer                      |\n|  overlapCtrl                |  Enables controlled overlap                |  Boolean                      |\n|  sound                      |  Enables sound                             |  Boolean                      |\n|  targets                    |  Number of targets (single stream)         |  Integer                      |\n|  timeRate/timeStimulus      |  Sets time                                 |  Milliseconds                 |\n|  piper\\_model               |  Path to voice model                       |  String                       |\n|  piper\\_sample\\_rate        |  Voice model sample rate                   |  String                       |\n\n----\n\n### 3. Backwards\n\nA backwards memory span task.\n\n|  Config                     |  Description                               |  Value                        |\n|  ------                     |  ------                                    |  ------                       |\n|  alphanumeric               |  Sets characters of stimuli                |  Boolean                      |\n|  autoDown/autoUp            |  Successive rounds to set level            |  Integer                      |\n|  columns                    |  Number of panel columns                   |  Integer                      |\n|  lang                       |  Language selector                         |  \"en\", \"zh\", `null`           |\n|  limitMin                   |  Minimum sequence length                   |  Integer                      |\n|  nightMode                  |  Enables night mode                        |  Boolean                      |\n|  qty char/color             |  Number of stimuli                         |  Integer                      |\n|  sound                      |  Enables sound                             |  Boolean                      |\n|  timeRate/timeStimulus      |  Sets time                                 |  Milliseconds                 |\n|  piper\\_model               |  Path to voice model                       |  String                       |\n|  piper\\_sample\\_rate        |  Voice model sample rate                   |  String                       |\n\n----\n\n### How-to\n\nDownload the binaries and launch.  \nKeep the optional `config.json` in the same folder to override default values.\n\n----\n\nDependencies, (Ubuntu 26.04 LTS+):\n\nlibwebkit2gtk-4.1-0  \nspeech-dispatcher  \nespeak-ng\n\n`sudo apt install libwebkit2gtk-4.1-0 speech-dispatcher espeak-ng`\n\nTo install [Piper](https://github.com/OHF-Voice/piper1-gpl) TTS:\n\n```\nsudo apt install pipx\npipx ensurepath\npipx install piper-tts\n```\n\nVoice models can be downloaded at: \u003chttps://huggingface.co/rhasspy/piper-voices/tree/main\u003e\n\n----\n\nBuild dependencies:\n\nlibwebkit2gtk-4.1-dev  \nlibasound2-dev\n\n`sudo apt install libwebkit2gtk-4.1-dev libasound2-dev`\n\nTo build, you need Rust installed.\n\n`cd` to directory and `cargo build --release`\n\n----\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjfo222%2Fmemorytasks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjfo222%2Fmemorytasks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjfo222%2Fmemorytasks/lists"}