FSRS: Free Spaced Repetition Scheduler - Modern Algorithm Implementation
learning-sciencespaced-repetitionalgorithmsimplementation
Abstract
Open-source implementation of modern spaced repetition scheduling backed by academic research, available in multiple programming languages.
Summary
The Free Spaced Repetition Scheduler (FSRS) represents the current state-of-the-art in spaced repetition algorithms for digital learning systems.
Key Features:
- Backed by academic literature on memory modeling
- Implementations in JavaScript, Golang, Rust, and Python
- Adopted by Anki as an alternative to the legacy SM-2 algorithm
- Uses machine learning to optimize scheduling parameters
Technical Approach:
- Models memory stability and retrievability separately
- Adjusts intervals based on actual learner performance data
- Considers both item difficulty and learner ability
- Open-source with active development community
Improvement Over Traditional Systems: Traditional algorithms like SM-2 use fixed multipliers (e.g., multiply interval by 2.5 on correct recall). FSRS uses probabilistic models that predict the optimal time to review based on desired retention rate.
Implementation Considerations:
- Requires collecting user response data (correct/incorrect, response time)
- Can be tuned to target specific retention rates (e.g., 90% vs 80%)
- Higher target retention = more frequent reviews = more time investment