Background

I’m the creator of FSRS, and my success using Anki in high school sparked my deep interest in spaced repetition algorithms.

2022

2022-08-19

Everything began with a post I made on Reddit. After my paper was accepted by ACM SIGKDD, I posted about it on the r/Anki:

https://www.reddit.com/r/Anki/comments/wsck43/a_stochastic_shortest_path_algorithm_for/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button

But then, one commenter dismissed it as one of those 'Things that sound cool on paper and then nobody actually implements them'. That comment really rubbed me the wrong way. So, determined to prove them wrong, I decided to implement the FSRS algorithm within Anki.

2022-08-30

I quickly encountered my first obstacle: custom scheduling didn't support storing memory states directly in the cards, which is essential for implementing FSRS. I reported this issue on the Anki forum, and Anki's lead developer, Dae, implemented the necessary functionality in Anki 2.1.55.

Discussion: https://forums.ankiweb.net/t/some-problems-in-implementing-a-state-of-the-art-srs-scheduler-on-anki/22705

2022-09-08

I quickly finished implementing a simplified version of the algorithm from my paper and released the scheduler’s code as open-source on GitHub. Following this, the Redditor who had initially dismissed it actually took back his words. Funnily enough, he went on to become one of the most active contributors within the FSRS community.

https://www.reddit.com/r/Anki/comments/x9jjcx/implement_a_new_spaced_repetition_algorithm_based/

2022-09-18 (FSRS v1)

I added an optimizer via Google Colab, creating the first usable FSRS version.

https://www.reddit.com/r/Anki/comments/xhfl0p/new_progress_in_implementing_the_custom_algorithm/

2022-09-21