Open Spaced Repetition (OSR) is an open-source community dedicated to the advancement of spaced repetition algorithms. We are the creators of the Free Spaced Repetition Scheduler (FSRS), which is backed by academic literatures and experiments. FSRS has been implemented in various programming languages, including Javascript, Golang, Rust, Python, and so on.
Our mission is to develop efficient, effective, and accessible spaced repetition algorithms that can be readily integrated into any educational software or system.
-
Multiple Language Support:
- w/o optimization: ts-fsrs, go-fsrs, rs-fsrs, c/cpp binding, java binding, py-fsrs, cljc-fsrs, swift-fsrs, ex_fsrs, dart-fsrs, rb-fsrs
- w/ optimization: fsrs-rs, fsrs-rs-python, fsrs-rs-nodejs, fsrs-rs-dart, fsrs-rs-php
-
Scientifically-Backed:
- A Stochastic Shortest Path Algorithm for Optimizing Spaced Repetition Scheduling | Proceedings of the 28th ACM SIGKDD Conference on Knowledge Discovery and Data Mining
- Optimizing Spaced Repetition Schedule by Capturing the Dynamics of Memory | IEEE Journals & Magazine | IEEE Xplore
- open-spaced-repetition/srs-benchmark: A benchmark for spaced repetition schedulers/algorithms (github.com)
-
Plugin & Add-on: fsrs4anki-helper, fsrs4tw, obsidian-spaced-repetition-recall, fsrs4remnote and so on.
A special thanks to 墨墨背单词 (MaiMemo Inc.) 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.