I’m the creator of FSRS, and my success using Anki in high school sparked my deep interest in spaced repetition algorithms.
It all began with a post I made on Reddit. At the time, a paper I published from my work at MaiMemo (墨墨背单词) had been accepted by the ACM SIGKDD conference, and I shared this news on the r/Anki subreddit:
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.
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
I quickly implemented a simplified version of the DHP algorithm from the MaiMemo paper and released the scheduler’s code as open-source on GitHub. Following this, the Redditor who had initially dismissed my idea took back his words. Funnily enough, he went on to become one of the most active contributors to the FSRS community.
https://www.reddit.com/r/Anki/comments/x9jjcx/implement_a_new_spaced_repetition_algorithm_based/
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/