Native implementation of the simulator

Relevant issue: [WIP] Feat/FSRS Simulator by L-M-Sherlock · Pull Request #3257 · ankitects/anki · GitHub

This is a topic about integrating an FSRS-based simulator into Anki.


@L.M.Sherlock so about this

There are three kinds of cards: reviewed cards, new cards which have been created and cards which will be created in the future. Should we ignore the third kind?

I say “yes” because I cannot think of a reasonable way to account for cards that don’t even exist yet.

So how would you like to name it?

1 Like

Just “Deck size”. And I don’t think it’s necessary in the first place, you can just sum up sizes of all decks within a preset.

Also, reivew order should be a setting as well, since we found that it has a noticeable effect on workload if the user can’t do all reviews and is constantly having a backlog. And “Reviews per day” should be renamed to “Maximum reviews per day”.

There are three kinds of cards: reviewed cards, new cards which have been created and cards which will be created in the future. Should we ignore the third kind?

I think that the Anki Simulator addon can be a good source of inspiration for designing the native simulator. For the third kind of cards, the add-on has an option called Simulate (additional) new cards.

Like the add-on, I think that we should add the options to set the Learning steps and the Relearning steps so that the user can check the effect of different steps (for e.g. multiple steps will increase the daily load when the user is doing new cards daily).


I agree. This will be possible with FSRS-5.
EDIT: for LMSherlock - yes, adding review sort order and (re)learning steps is going to increase the level of complexity, but if we want to make the simulator as accurate as possible, it is necessary. Releasing a half-baked feature is not a good idea.

Not suggesting that we shouldn’t include Learning steps but I want to emphasize that releasing something that works is better than continuing to try to develop a perfect feature. Improvements can always be there in future releases.

See Perfect is the enemy of good - Wikipedia

We already have “something”, it’s called “Compute minimum recommended retention”. The simulator should be a step above and beyond that.

Another suggestion:
Because this is FSRS simulator, there should be options to enter the FSRS parameters and the desired retention too.

Why if it can take it from the preset.


That argument goes for other settings like New cards per day, Maximum reviews per day and Maximum interval too.

When using a simulator, the user wants to know how different settings affect their review load. It is better to tinker with the settings within the simulator window rather than changing the actual settings and then forgetting to change them back.

Like the add-on, we can have a button to load the settings from the deck options so that the user has to adjust only the settings they want to change during the simulation.

1 Like

That’s a good idea. @L.M.Sherlock how about adding a button to read all relevant settings from the preset?

It’s not trivial. It’s easy to implement in Python with pandas, but hard in Rust with ndarray.



Is the simulator to be included in the deck options or a different place? Deck options would be a weird place for it to be, IF, it supports having simulator specific settings as vaibhav says. Then the simulator would be in a completely different category of features and deck options would be bit off for it to be placed in.

1 Like

In the PR, L.M.Sherlock says:

TODO: move the simulator to a single page

So, the simulator will have a page of its own. However, I am not sure what is the best place to add the option for launching the simulator.

The add-on places it under the cog wheel icon. However, the native simulator doesn’t need to be a clone of the add-on.


Emmm. Bar chart seems not appropriate to the simulator. But I haven’t seen any line chart in Anki’s current stats.

By the way, any suggestion to the charts of the simulator?

1 Like

I suggest adding these two charts, but make them go to 0.99 instead of 0.95


In the screenshot, the Reviews per day is set to 200 but the graph shows >200 reviews in the initial few days.

To plot these chart, it requires ten simulations at least. And it’s not what the simulator aims at.

The simulator will display the process of learning, like Anki Simulator - AnkiWeb.