PDF versionPDF version

Here, we discuss some of the principles behind the Mnemosyne project:

  • Spaced repetition
  • The nature of our memory research
  • The Mnemosyne algorithm
  • How we collect anonymous data

For an overview of using the software, see the Getting Started guide.

Spaced repetition

When you have memorised something, you need to review that material, otherwise you will forget it. However, as you probably know from experience, it is much more effective to space out these revisions over the course over several days, rather than cramming all the revisions in a single session. This is what is called the spacing effect.

During the past 120 years, there has been considerable research into these aspects of human memory (by e.g. Ebbinghaus, Mace, Leitner and Wozniak). Based on the work of these people, it was shown that in order to get the best results, the intervals between revisions of the same card should gradually increase. This allows you to focus on things you still haven't mastered, while not wasting time on cards you remember very well.

It is clear that a computer program can be very valuable in assisting you in this process, by keeping track of how difficult you find an card and by doing the scheduling of the revisions. Let's see how this works in practice in the Mnemosyne program.

Memory research

The first thing we will investigate is how well our scheduling algorithm performs, how robust it is with respect to late revisions, etc.

There are several similar programs out there, implementing different spaced repetition algorithms with various levels of sophistication. However, most of these programs are commercial, and therefore there is no real independently verifiable data that e.g. algorithm A outperforms algorithm B. In order to get such data in a statistically relevant way, one needs two things:

  • A large number of participants.
  • A study which has no commercial bias.

These two needs are best served with open source software. As Mnemosyne is completely free and will always remain so in the future, there is no barrier for new users to participate. Also, thanks to the internet, we can easily gather the anonymous data, without requiring any user intervention (after they gave their initial permission, of course). Secondly, since we have no commercial interest, there is no need for us to claim that the algorithm in a next (expensive!) version is really better than the one in the version you already bought.

The Mnemosyne Project has been collecting data since 2006. Looking to the future, we would like to continue to collect data over a very long time span (years and hopefully decades). This could potentially give us very valuable insight into the nature of long-term memory and the ultimate performance of spaced repetition.

The data collected by the Mnemosyne Project will made available to everyone. Since the data was contributed by people on a voluntary basis, it would be unethical to restrict access to it or charge money for it.

Anyone interested can contact us to help analyse the data. We only ask that, should that analysis ever result in a scientific journal paper, we become coauthors of that paper.

The Mnemosyne algorithm

The Mnemosyne algorithm is very similar to SM2 used in one of the early versions of SuperMemo. There are some modifications that deal with early and late repetitions, and also to add a small, healthy dose of randomness to the intervals.


p>Supermemo now uses SM11. However, we are a bit skeptical that the huge complexity of the newer SM algorithms provides for a statistically relevant benefit. But, that is one of the facts we hope to find out with our data collection.



We will only make modifications to our algorithms based on common sense or if the data tells us that there is a statistically relevant reason to do so.

How we collect anonymous data

Contributing data to the Mnemosyne project is your choice; you may use Mnemosyne without ever transmitting any data back to our servers. If you select to share your anonymous data with us, we will certainly appreciate your contribution to our research.

What it means concretely

When you select to send us anonymous data, the Mnemosyne software assigns you a random number as identification, which cannot be traced back to you.

Also, your question/answer pairs are identified only as numerical IDs, and contain no information about the text of the cards.

So, you can safely use Mnemosyne to help you remember to the number of your safe! If you want to see for yourself the data that is uploaded, take a look at the file log.txt in the .mnemosyne directory.

Online access requirements

Even if you select to share your anonymous data with the project, you do not need to be online to use the program. The Mnemosyne software will only upload data when there is enough log data to send to the server (64K uncompressed).

If you are offline at that time, Mnemosyne will simply try again to upload the next time you start the program.