Does someone have a link to some example code that implements this idea? I am working on my own memory-assistance software, I would like to use the algorithm.
Is one of the SuperMemo algorithms, particularly SM-2, described in pseudocode form. Again, should be enough to implement it yourself.
Other algorithms can be seen as variations on these themes. Like with Anki's implementation (and I believe also SuperMemo's) there is jitter added to the schedule so that too many cards don't show up together over and over. This is to avoid the issue of remembering something because of what it's with and not on its own. With language learning, say you enter a dozen cards on colors and review them all in one day, strictly speaking they could all end up recurring at the same time in the future. By adding jitter they get spread out so you can avoid accidental "topic" days and end up with a proper mix of cards for study.
I put together a page that lets you try out different spaced repetition algorithms (with javascript code included), and you can try out your own algorithms as well: https://www.ussherpress.com/freshcards/srs/
There's a link on the page to some info on how to use it as well, since it may not be obvious!
This is a plugin for Roam Research that allows you to do spaced repetition inline with your Roam graph. It keeps its state alongside your notes, and if you want to change your notes while doing a review session that's seamless.
Just look at an image search for "spaced repetition" and you can create it from the graphs you see.
Essentially you're creating a set of reminders/events with linear or exponential spacing between. A common pattern appears to be 1, 3, and 6 days after first learning, which is also 1, 2, and 3 days apart from each other.