fsrs4anki-optimizer

A modern Anki custom scheduling based on Free Spaced Repetition Scheduler algorithm

https://github.com/open-spaced-repetition/fsrs4anki

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: acm.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary

Keywords

anki anki-addon deep-learning fsrs intelligent-tutoring-system machine-learning memory optimal-control reinforcement-learning spaced-repetition spaced-repetition-algorithm srs

Keywords from Contributors

degoogle
Last synced: 6 months ago · JSON representation ·

Repository

A modern Anki custom scheduling based on Free Spaced Repetition Scheduler algorithm

Basic Info
Statistics
  • Stars: 3,568
  • Watchers: 31
  • Forks: 153
  • Open Issues: 10
  • Releases: 176
Topics
anki anki-addon deep-learning fsrs intelligent-tutoring-system machine-learning memory optimal-control reinforcement-learning spaced-repetition spaced-repetition-algorithm srs
Created over 3 years ago · Last pushed 6 months ago
Metadata Files
Readme Funding License Citation

README.md

FSRS4Anki

# FSRS4Anki _✨ A modern spaced-repetition scheduler for Anki based on the [Free Spaced Repetition Scheduler algorithm](https://github.com/open-spaced-repetition/fsrs4anki/wiki/The-Algorithm) ✨_

license release

Table of contents

Introduction

FSRS4Anki (Free Spaced Repetition Scheduler for Anki) consists of two main parts: the scheduler and the optimizer.

  • The scheduler replaces Anki's built-in scheduler and schedules the cards according to the FSRS algorithm.
  • The optimizer uses machine learning to learn your memory patterns and finds parameters that best fit your review history. For details about the working of the optimizer, please read the mechanism of optimization.

For details about the FSRS algorithm, please read the algorithm. If you are interested, you can also read my papers: - A Stochastic Shortest Path Algorithm for Optimizing Spaced Repetition Scheduling (free access) [中文版], and - Optimizing Spaced Repetition Schedule by Capturing the Dynamics of Memory (Google Scholar) [中文版].

FSRS Helper is an Anki add-on that complements the FSRS4Anki Scheduler. You can read about it here: https://github.com/open-spaced-repetition/fsrs4anki-helper

How to Get Started?

If you are using Anki 23.10 or newer, refer to this section of the Anki manual.

If you are using an older version of Anki, refer to this tutorial.

Note that setting up FSRS is much easier in Anki 23.10 or newer.

Add-on Compatibility

Some add-ons can cause conflicts with FSRS. As a general rule of thumb, if an add-on affects a card's intervals, it shouldn't be used with FSRS.

| Add-on | Compatible? | Comment | | ------------------------------------------------------------ |-------------------| ------- | | Review Heatmap | Yes :whitecheckmark: | Doesn't affect anything FSRS-related. | | Advanced Browser | Yes :whitecheckmark: | Please use the latest version. | | Advanced Review Bottom Bar | Yes :whitecheckmark: | Please use the latest version. | | The KING of Button Add-ons | Yes :whitecheckmark: | Please use the latest version. | | Pass/Fail | Yes :whitecheckmark: | Pass is the equivalent of Good, Fail is the equivalent of Again. | | AJT Card Management | Yes :whitecheckmark: | Compatible with Anki 23.12 and newer. | | Incremental Reading v4.11.3 (unofficial clone) | Unsure :question: | If you are using the standalone version of FSRS, it shows the interval given by Anki's built-in scheduler, not the custom scheduler. This add-on is technically compatible with built-in FSRS, but FSRS was not designed for incremental reading, and FSRS settings do not apply to IR cards because they work in a different way compared to other card types. | | Delay siblings | No :x:| Delay siblings will modify the intervals given by FSRS. However, the FSRS Helper add-on has a similar feature that works better with FSRS. Please use the FSRS Helper add-on instead. | | Auto Ease Factor | No :x: | The Ease Factor is no longer relevant when FSRS is enabled, therefore you won't benefit from using this add-on. | | autoLapseNewInterval |No :x:| The New Interval setting is no longer relevant when FSRS is enabled, therefore you won't benefit from using this add-on. | | Straight Reward | No :x: | The Ease Factor is no longer relevant when FSRS is enabled, therefore you won't benefit from using this add-on. |

Let me know via issues if you want me to check compatibility between FSRS and some add-on.

Contribute

You can contribute to FSRS4Anki by beta testing, submitting code, or sharing your data. If you want to share your data with me, please fill out this form: https://forms.gle/KaojsBbhMCytaA7h8

Contributors

All Contributors <!-- ALL-CONTRIBUTORS-BADGE:END -->

Expertium
Expertium

⚠️ 📖 🔣 🤔 🐛
user1823
user1823

⚠️ 📖 🔣 🤔 🐛
Christos Longros
Christos Longros

🔣 🖋

Developer Resources

If you're a developer considering using the FSRS algorithm in your own projects, we've curated some valuable resources for you. Check out the Awesome FSRS repository, where you'll find:

  • FSRS implementations in various programming languages
  • Related papers and research
  • Example applications using FSRS
  • Other algorithms and resources related to spaced repetition systems

This carefully curated list will help you better understand FSRS and choose the right implementation for your project. We encourage you to explore these resources and consider contributing to the FSRS ecosystem.

Research Resources

For those new to spaced repetition algorithms, we recommend starting with our comprehensive guide: Spaced Repetition Algorithm: A Three-Day Journey from Novice to Expert

Dive deeper into the academic foundations of FSRS and spaced repetition through our curated collection of Datasets, Code & Research Papers

Explore our extensive collection of Research Notebooks documenting detailed analyses and experiments with FSRS and spaced repetition algorithms

Stargazers Over Time

Star History Chart

Acknowledgements

A special thanks to 墨墨背单词 (MaiMemo) for their support of FSRS development by allowing its research engineer, Jarrett Ye, to dedicate part of his working hours to this open-source project. This greatly helps in the continuous improvement and maintenance of FSRS for the benefit of the entire community.

We would also like to extend our sincere gratitude to Damien Elmes of Ankitects for his invaluable technical support, and to the AnkiWeb users for the review history dataset. Without their collective contribution, FSRS would not have achieved its current level of popularity and influence.

Owner

  • Name: Open Spaced Repetition
  • Login: open-spaced-repetition
  • Kind: organization

We are developing open-source spaced repetition algorithms for any spaced repetition software/system.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Ye"
  given-names: "Junyao"
  orcid: "https://orcid.org/0000-0001-7475-0718"
title: "FSRS4Anki"
version: 1.0.0
doi: 10.5281/zenodo.8103692
date-released: 2023-07-01
url: "https://github.com/open-spaced-repetition/fsrs4anki"
preferred-citation:
  type: conference
  authors:
  - family-names: "Ye"
    given-names: "Junyao"
    orcid: "https://orcid.org/0000-0001-7475-0718"
  - family-names: "Su"
    given-names: "Jingyong"
    orcid: "https://orcid.org/0000-0003-3216-7027"
  - family-names: "Cao"
    given-names: "Yilong"
    orcid: "https://orcid.org/0009-0006-5605-0092"
  doi: "10.1145/3534678.3539081"
  booktitle: "Proceedings of the 28th ACM SIGKDD Conference on Knowledge Discovery and Data Mining"
  start: 4381 # First page number
  end: 4390 # Last page number
  title: "A Stochastic Shortest Path Algorithm for Optimizing Spaced Repetition Scheduling"
  year: 2022

GitHub Events

Total
  • Fork event: 27
  • Create event: 29
  • Commit comment event: 3
  • Release event: 10
  • Issues event: 45
  • Watch event: 856
  • Delete event: 20
  • Member event: 1
  • Issue comment event: 254
  • Push event: 25
  • Pull request review event: 8
  • Pull request event: 31
  • Gollum event: 44
Last Year
  • Fork event: 27
  • Create event: 29
  • Commit comment event: 3
  • Release event: 10
  • Issues event: 45
  • Watch event: 856
  • Delete event: 20
  • Member event: 1
  • Issue comment event: 254
  • Push event: 25
  • Pull request review event: 8
  • Pull request event: 31
  • Gollum event: 44

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 465
  • Total Committers: 15
  • Avg Commits per committer: 31.0
  • Development Distribution Score (DDS): 0.168
Past Year
  • Commits: 49
  • Committers: 6
  • Avg Commits per committer: 8.167
  • Development Distribution Score (DDS): 0.469
Top Committers
Name Email Commits
Jarrett Ye j****e@o****m 387
Expertium 8****m 46
user1823 9****3 7
Luc Mcgrady l****y@g****m 5
wlckd w****d@p****m 4
galantra 5****a 3
allcontributors[bot] 4****] 3
MNastri 8****i 2
AsukaMinato i@a****g 2
volt2054 3****4 1
loqusion l****n@g****m 1
dawrom 8****m 1
Kieran Black 4****k 1
John-George Sample J****e@g****m 1
Ikko Eltociear Ashimine e****r@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 313
  • Total pull requests: 179
  • Average time to close issues: 19 days
  • Average time to close pull requests: about 16 hours
  • Total issue authors: 149
  • Total pull request authors: 15
  • Average comments per issue: 13.07
  • Average comments per pull request: 1.0
  • Merged pull requests: 169
  • Bot issues: 0
  • Bot pull requests: 3
Past Year
  • Issues: 27
  • Pull requests: 27
  • Average time to close issues: 24 days
  • Average time to close pull requests: about 4 hours
  • Issue authors: 21
  • Pull request authors: 5
  • Average comments per issue: 12.3
  • Average comments per pull request: 0.48
  • Merged pull requests: 26
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Expertium (39)
  • user1823 (25)
  • L-M-Sherlock (11)
  • brishtibheja (8)
  • cjdduarte (8)
  • eagleftw023 (8)
  • aleksejrs (5)
  • ratman-codes (5)
  • kuroahna (4)
  • shmuelsash (4)
  • extr15 (4)
  • aedoncassiel (4)
  • galantra (4)
  • aboose-aboose-aboose (3)
  • jcznk (3)
Pull Request Authors
  • L-M-Sherlock (121)
  • Expertium (76)
  • user1823 (8)
  • patrickellis (5)
  • Luc-Mcgrady (4)
  • allcontributors[bot] (3)
  • wlckd (3)
  • galantra (2)
  • loqusion (2)
  • eltociear (2)
  • Johngeorgesample (2)
  • MNastri (2)
  • volt2054 (1)
  • kieranlblack (1)
  • Luc-mcgrady (1)
Top Labels
Issue Labels
question (126) enhancement (85) bug (66) invalid (4) duplicate (3) help wanted (3) documentation (3) community (1) data (1) research (1)
Pull Request Labels
ecosystem (36) enhancement (27) documentation (26) invalid (24) bug (23) compatibility (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 41 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 236
  • Total maintainers: 1
proxy.golang.org: github.com/open-spaced-repetition/fsrs4anki
  • Versions: 198
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 2.1%
Forks count: 3.3%
Average: 5.4%
Dependent packages count: 7.0%
Dependent repos count: 9.3%
Last synced: 6 months ago
pypi.org: fsrs4anki-optimizer
  • Versions: 38
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 41 Last month
Rankings
Stargazers count: 2.1%
Forks count: 4.6%
Downloads: 5.8%
Dependent packages count: 7.3%
Average: 12.2%
Dependent repos count: 41.3%
Maintainers (1)
Last synced: 6 months ago