About
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.
Mission
Our mission is to develop efficient, effective, and accessible spaced repetition algorithms that can be readily integrated into any educational software or system.、
Origin
FSRS originates in the DHP model from MaiMemo which is a variant of the DSR (Difficulty, Stability, Retrievability) model used to predict memory states. Here are the papers:
- Maimemo: A Stochastic Shortest Path Algorithm for Optimizing Spaced Repetition Scheduling - Proceedings of the 28th ACM SIGKDD Conference on Knowledge Discovery and Data Mining
- Maimemo: Optimizing Spaced Repetition Schedule by Capturing the Dynamics of Memory - IEEE Journals & Magazine - IEEE Xplore
Features
-
Multiple Language Support:
- w/o optimization: ts-fsrs, go-fsrs, rs-fsrs, c/cpp binding, java binding, cljc-fsrs, swift-fsrs, ex_fsrs, dart-fsrs, rb-fsrs
- w/ optimization: fsrs-rs, fsrs-rs-c, fsrs-rs-python, fsrs-browser, fsrs-rs-nodejs, fsrs-rs-dart, fsrs-rs-php, py-fsrs
-
Algorithm Benchmark
-
Plugin & Add-on: fsrs4anki-helper, fsrs4tw, obsidian-spaced-repetition-recall, fsrs4remnote and so on.
Acknowledgements
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.
Pinned Loading
Repositories
Showing 10 of 94 repositories
-
awesome-fsrs Public
A curated list of awesome FSRS implementations, papers and resources
-
fsrs-rs-python Public
Python bindings for fsrs-rs, hand-coded gradient, instead of pytorch. 2GB -> 1MB, save your disk!
-
srs-benchmark Public
A benchmark for spaced repetition schedulers/algorithms