Pandemic simulation for beginners

Frank U. Kugelmeier - St. Ursula Grammar School, Attendorn

User manual

0. Preliminary note
1. User interface
1.1 Start screen
1.2 Simulation
1.3 Data monitor
1.4 Display panels
1.4.1 History graph
1.4.2 Agent status bar
1.4.3 Run display
2. Controls
2.1 Control types
2.2 Main controls
2.3 Simulation settings
2.4 Random number navigation
2.5 General program features
2.5.1 Language selection
2.5.2 External pages
2.5.3 Program settings
2.5.4 Audio functions
3. Useful lifehacks
3.1 System requirements
3.2 Known problems
3.3 Frequently asked questions
4. Bibliography
5. Acknowledgements
6. User licence and contact

Preliminary note

When the first corona wave hit western industrialized nations with full force in early 2020, many of those affected wondered how the virus was able to spread so quickly. In response, on March 14, 2020, the Washington Post published a highly regarded article in its online edition entitled "Why outbreaks like coronavirus spread exponentially". Its author Harry Stevens tutored the readership in matters of exponential functions.

To this end, he embedded several small computer simulations into the website. In each one, he placed two hundred digital "agents", symbolised by coloured dots, on a defined virtual field and let them come into contact with each other at random. In the simulations, the readers could now observe how the originally all healthy agents moving across the field were infected by a single sick person and then infected others, how these agents in turn infected others and how, after a certain time, the entire crowd of agents became sick before finally, happily, recovering.

The present MiniLab program is modelled on these simulations - except that it offers considerably more possibilities than the original: The wandering agents can now be restricted in their radius of movement by means of boundaries; the frequency of their contacts can also be determined. In addition, it is possible to set them to become less mobile or to distance themselves socially if they become ill. Finally, there is the option of (partially) immunising them through vaccination. Unfortunately, however, in this simulation they are also exposed to the risk of dying after an infection.

All the above-mentioned parameters of the simulation - and some more - can be manipulated in many ways. In this way, the program provides insights into the complicated, sometimes surprising spread of a pandemic.

Due to a differentiated system of "defined random events" individual simulation runs can be reproduced exactly at any time; however, this option can also be switched off and real, non-repeatable random events are generated instead. Both options can be used to check the probability of certain pandemic courses occurring or not.

In this context, an important note: The MiniLab reduces pandemic events to some very simple social interactions. Epidemiological and medical correlations, such as incubation periods or age-dependent susceptibilities to infections, are not taken into account. Therefore, the program does not provide any concrete medical prognoses. But it strengthens the understanding of complex interrelationships.

1. User interface

The user interface of the MiniLab shows a large main field on which either a brief information, the simulation itself or a so-called data monitor with the simulation results can be called up. These processes are controlled via three wide buttons below the field.

Above the main field there are two display fields that provide information about the pandemic development in the course of the simulation. Grouped around these three fields at the top, right and bottom there are various sliders, buttons and switches that can be used to influence the course of the simulation and the appearance of the program.

1.1 Start screen

At the beginning of the program, a brief information is displayed in the main field (which can be closed and also reopened with the main button located below it on the left).

The upper display field is initially covered by the MiniLab logo. The data monitor does not yet contain any data.

All settings that are to influence the course of the simulation must be made before the start of the respective simulation run.

1.2 Simulation

A (new) simulation run can be activated by pressing the "Start simulation" button. The main field now shows a white surface on which a previously defined number of coloured circles, so-called agents, move. The scenario is reminiscent of a pool table on which balls roll and, when they meet, "kick" each other in all possible directions. These encounters symbolise human contact. In each of the encounters, the agents run the risk of being infected by a sick person. In order to be able to monitor the course of the infections, different colours are assigned to the agents.

green:   healthy,
turquoise:   vaccinated,
red: infected,
violet: recovered,
blue: deceased.

Depending on the program settings, the agents move either at a constant speed, at random or - in the case of infection - at a reduced speed. Deceased agents are shown as blue squares (as tombstones, so to speak) and no longer play any role in the further course of the simulation; they are literally "passed over" by those who are still alive.

In order to simulate lockdowns or the spread of infections in batches, borders can be closed or opened - using the two outer main buttons, among other things. The limits can be changed completely or only partially or with a time delay.

The simulation can be interrupted via the "Pause" key and then continued via "Continue" until the simulation run has reached its defined end (100 per cent). The simulation can be interrupted prematurely by a mouse click in the simulation field. The program then returns to the start mode, just as it did at the defined end, and is ready for further simulation runs.

At the top left of the simulation field, different traffic sign symbols appear, depending on the program settings and sequence:

Attention: The sign indicates that the utilisation of the medical facilities is over 100 per cent.
Lifting of all bans: The simulation has come to a natural end (there are no more sick people), but continues to run.
Stop: If the option "Automatic stop" is set, this sign shows the natural end of the simulation (no more sick people). At the same time, the simulation run stops automatically.

All settings made during the simulation are only valid for the following simulation run. The only exceptions are the three main buttons (stop/continue, border opening or closing), the language and colour selection as well as the options "Agent size", "Automatic stop" and the audio settings.

1.3 Data monitor

After the end of the simulation, the program jumps back to the start mode, as already mentioned. However, the history graph, the final agent status display and the last constellation of agents on the simulation field remain.

In addition, it is now possible to retrace the course of the simulation using periodically collected intermediate data. For this purpose, a data monitor can be called up (and also closed again) via the right main button.

The monitor integrated into the main window shows, apart from the data of the program start, the pandemic development in a maximum of 25 samples. In addition to the sequential numbers 0 (start) to 25 (end, i.e. 100 per cent), the disease data of the agents collected after each 4 per cent progression as well as the respective degree of utilisation of the medical system can be seen.

Additionally, if the option "Data export" is set, an even more detailed documentation of the simulation process can be called up in a separate, external window by a mouse click in the monitor field. It includes (besides the position 0 of the program start) up to 100 samples, i.e. one per percent of the run. This "large" monitor also contains an overview of the parameters set during the simulation at the bottom of the generated data table.

If you call up the MiniLab in the Firefox browser, you can copy and paste the data table into an external program, such as MS Word (TM), and process it there. To do this, right-click on the table and select "Select all" in the box that opens. Then, again with the right mouse button, click on the now marked table and select "Copy" in the box that opens. You can then pass the copied table on to another program. In MS Word (TM), for example, a table exported in 9 pt fits exactly on two pages formatted with 1 cm top and bottom margins. The following document shows an example of a successful data transfer via Firefox.

Unfortunately, this procedure only works in Firefox. If you use another browser, you will have to make do with screenshots or compromise on the formatting of the copied data.

Data export file example

As you can see, the program settings are noted in the lower part of the table. This also includes the parameters "Modification left border" and "Modification right border". Please note that the data monitor only registers here whether the main buttons for opening or closing the border were pressed during the simulation, but not how long this opening or closing actually lasted. For an exact evaluation of the simulation runs, it is therefore recommended not to modify the limits manually during the simulation, but via the (precisely adjustable and reproducible) automatic opening.

1.4 Display panels

Above the simulation field there are two display panels that document the course of the simulation. Above the simulation field on the right there is another panel that shows, among other things, the current run number (random selection).

1.4.1 History graph

The graph shows the ratio of non-infected, infected, recovered, deceased and vaccinated persons in the course of the simulation - analogous to the colour coding of the agents mentioned above. The maximum value of the y-axis thus corresponds to the total number of agents (100 per cent). In addition, the graph has a horizontal line; this indicates in per cent for how many agents of the total population medical care is assured (cf. the option "Hospital capacity"). Within the limit, sick agents are coloured light red; if the limit is exceeded, they are marked dark red.

Of course, no society provides intensive care beds for 20, 30 or even 100 percent of the population; in fact, the value is not even in the per thousand range. However, since this would not be graphically representable, the display raises the capacity here to an ideal value.

The choice of colours (green for healthy, red for ill, etc.) corresponds to that of the program Pandemic Laboratory, which also simulates pandemic processes - albeit in a considerably more differentiated way - and can be used as a more complex "continuation" of MiniLab.

1.4.2 Agent status bar

The bar is largely self-explanatory: During the simulation, the numbers of healthy, vaccinated, sick, recovered and deceased agents are continuously shown here. In addition, it shows how busy the medical system is. For example, with a population of 100 and a hospital capacity of 20 per cent, the system is at its limit (= 100 per cent utilisation) with 20 sick people (= 20 per cent of the population). Each additional sick person potentially brings the medical care system to collapse.

1.4.3 Run display

The run display provides information about the following values:

  • to the left: the number of the run currently performed (or still to be performed),
  • half-right: the progress of the current run (in per cent),
  • to the right: the random number mode (cf. below).

The program distinguishes between "real" new runs (with new random numbers) and run repetitions (with the same random numbers). Runs with new random numbers are displayed to the left of the dot, run repetitions are displayed in a slightly smaller font to the right of the dot. For example, the display "5.3" means that the 5th run (i.e. the 5th random number selection) has been called up a total of three times.

In the "blackbox" setting (see below), no runs are counted. Instead, "Run 0" is noted here.

The current random number mode is displayed on the far right:

Each time a simulation is started, a new defined chain of random numbers (each with a new run number) is called.
Each time the "Start simulation" key is activated, the same defined random number chain is used. If you do not change any parameters compared to previous calls, the simulation run will therefore bring exactly the same result as its predecessors with the same run number.
The "black box" ("run 0") means that the program does not use any defined random number chains. Instead, each simulation run uses "random random numbers" and is therefore not reproducible.

For more details on the various random number options, see the section "Random number navigation".

2. Controls

2.1 Control types

The MiniLab uses four types of control elements as adjusting screws or switches for controlling the program functions.

Switch buttons: Depending on the function, these have the effect of (toggle) switches or push buttons. They trigger a program event. Depending on the switching status, their symbol image may vary. Some buttons also have multiple functions.
Sliders (range controls): They can be used to set a value (usually a numerical value) within a certain range. The current value is displayed above the slider.

Single switches (checkboxes): These allow a function to be switched on (with a tick) or off (without a tick) in a simple way.
Switchable fields: Actions can also be triggered by clicking the mouse directly in the simulation or monitor field.

2.2 Main Controls

The functions of the three main keys are self-explanatory in view of the respective labels. Nevertheless, they are listed here for the sake of completeness.

Left key
In the start mode of the program, the left main key can be used to activate the display of the short info...
... and also switch it off again.
During the simulation run, you can use the key to release the left border ...
... and close it.
Centre key
With the centre key, a new simulation run can be started.
The running simulation can then be stopped ...
... and continued.
Right key
When a simulation is finished, the right main key is used to display the data in the monitor, ...
... which can also be switched off in the same way.
During the simulation run, the right key can be used to open the right border ...
... and close it again.

The following two functions are worth mentioning because they are not immediately recognisable.

Mouse click in the main field
With a mouse click in the simulation field you can prematurely end (i.e. cancel) the simulation at any time during its run.
If the "small" data monitor is displayed, the "large", external data monitor can be activated with a mouse click in the monitor field. However, this requires "Data export" to be switched on.

2.3 Simulation settings

To the right of the simulation field there are all the controls and switches that are relevant to the course of a simulation. Please note: All parameters must be set before a simulation run is started. The parameter changes made during a run will only apply in the following simulation.

Simulation settings Initial value
The number of agents can be set in increments of five between 50 and 300.
This refers to the proportion of diseased persons at the start of the simulation (as a percentage of the population). The value can be set between 0 and 100 percent. Attention: If the number of agents is less than 100, the value must be at least 2%, otherwise the program will not generate any diseased persons.
Infection rate:
This determines the probability (0 to 100 per cent) that agents will become infected upon contact.
Mortality rate:
This option determines what percentage of those who are infected will die (0 to 100 per cent).
This sets the proportion of those vaccinated as (0 to 100) percent of the total population.
Vaccination effect:
This parameter determines the probability of successful vaccination in relation to the total number of vaccinated. If the probability is less than 100 per cent, the difference from 100 describes the percentage of those agents who remain vulnerable despite vaccination.
Hospital capacity:
Here, the proportion (0 to 100 percent) of the population for which assured medical care is available can be determined. The value is also displayed as a horizontal line in the history graph.
Social distancing:
"Social distance" is understood here to mean that a certain percentage (0 to 100) of agents significantly reduce social contact. This is implemented in the simulation by the fact that the "distanced" agents do not move and thus limit their contacts. However, they may very well be contacted and thus infected by other moving agents, which in turn puts other contacting agents at risk.
Four choices are available for agent movement patterns:
  • diffuse: all agents move at different, random speeds, which they change every now and then, depending on the contact.
  • constant: All agents move at the same constant speed.
  • situational: healthy, vaccinated, and recovered agents move at the same constant speed; diseased, "weak" agents reduce their speed to one-fifth.
  • restrictive: healthy, vaccinated, and recovered agents move at the same constant speed; diseased agents are not allowed to leave their location (more precisely, they move at one hundredth of their original speed).
In the latter two settings, diseased agents do not reduce their movements immediately after infection, but only after the next agent contact. Thus, even in an infectious state, they may well still travel a (which means: one) longer distance.
Frequency of contacts:
The spread of an epidemic or pandemic depends on the number of contacts. In the MiniLab, the frequency of these contacts is simulated by the fact that the agents move with lower or higher speed, but with constant infectivity. The higher the speed, the higher the probability of infection. This speed can be controlled here using indicator values from 1 to 10.
Open border at start - left:
When the switch is closed, the left border remains open at simulation start.
Open border at start - right:
When the switch is closed, the right border remains open at simulation start. It should be noted that the settings of the two switches have no effect when the automatic border opening function is activated (see below).
Border opening:
Here you can specify the percentage by which the borders should be opened. Values between 0 and 90 per cent are possible. At 0 per cent, the border remains completely closed, at 90 per cent it is almost completely opened. - The setting applies both to the main keys for closing the borders and to the auto opening option.
Auto opening:
A border opening can be done not only manually via the left and right main keys, but also via an automatic, which can be switched on here. When the automatic is activated, the borders are always completely closed at the beginning; other program settings in this respect are ignored.
Auto opening after ... of run:
The slider can be used to adjust after how many per cent of the simulation run the opening is to be started. Values between 0 and 50 per cent are possible. The opening takes place smoothly, so it may take a moment before the barriers are completely removed.
Please note that the time of border opening depends on the simulation duration. If this is extended via the corresponding option, the border opening is also shifted backwards, since this is not oriented to the real time, but to the progress of the simulation run (in per cent).

2.4 Random number navigation

The movements of the agents on the simulation field are based on random numbers. These are generated by MiniLab in different ways:

  • on the one hand via an algorithm, which delivers defined chains of random numbers,
  • on the other hand via a generator, which continuously provides "random random numbers".

The advantage of the former method is that the random numbers generated in this way can be reproduced at any time. Each defined chain of random numbers is assigned to a specific run number. For example, each "run 5" will produce the same results on any computer at any time, provided the other program settings have not been changed; each "run 6" will produce new (different) but also specific and reproducible results; each "run 7" will again produce new (different) but specific results, and so on. In this way, one can repeat certain simulation runs at any time and analyze them specifically.

The second method is always useful if - for example in teaching situations or in seminars - one wants to achieve random results on several computers which are not identical (i.e. which are really "differently random"). Since the simulation runs are never completely identical, comparing the results on different computers can quickly clarify, for example, the range in which the consequences of certain simulation settings move. In the run display of the program, this procedure is marked as "run 0" or "black box" mode (you cannot look into a black box). "Black box" runs are not counted. Numbering them consecutively would be meaningless, since each run is unique and thus not repeatable.

The various random number selections can be controlled via four navigation buttons located to the right of the main keys.

Navigation buttons Symbol
The first button (left) calls the numerically following run (i.e. the following chain of random numbers). If the program is in "black box" mode, the button switches the MiniLab back to the algorithm of defined random number chains and there to the "new defined random numbers" mode; in this case it has the same function as the reset button (see below).

The second button (half-left) recalls the numerically previous run (i.e. the previous chain of random numbers). If the program is in run 1, the button switches the MiniLab to free random number mode ("black box" mode, "run 0"). In the "black box" mode itself, the button has no function.

The third button (half-right) switches, if the program is not in "black box" mode, between new run (run with new defined random numbers) and run repetition (run with the same defined random numbers). The current mode is noted in the run display. The "new" mode appears there as a dark red "New" circle, the "repeat" mode as an arrow circle.
If the program is in the "black box" mode (recognisable by a black box in the run display), the key switches to the "new" mode, i.e. to the "new defined random numbers" mode, and there back to run 1.1. This corresponds to the "reset" function (see below).

The fourth button (right) performs a reset (restart): Any simulation run still in progress is aborted and reset to run number 1.1 and to "new" mode; the data monitor is cleared, and the program logo appears in the history graph field. The other program settings are not reset, so that you can continue working with them immediately.

If you tap the forward or backward button step by step, the run number in the run display is adjusted. However, the changed run number is only valid with the next simulation run.

New runs (with new defined random numbers) are shown in the run display to the left of the dot, and repeated runs (with the same defined random numbers) are shown in slightly smaller letters to the right of the dot.

2.5 General program features

At the very top and at the very bottom of the user interface there are various buttons, switches and sliders that do not determine the simulation itself but the layout of the program or activate external pages.

2.5.1 Language selection

Language selection

The MiniLab can be accessed in the following languages:
  • German,
  • English,
  • French,
  • Spanish,
  • Portuguese,
  • Italian,
  • Dutch,
  • Polish,
  • Turkish,
  • Esperanto.

However, this manual is currently only available in German and in English.

2.5.2 External pages

External pages
This button leads back to the index page.
This button can be used to open the present manual in a separate window.

2.5.3 Program settings

Program settings Initial value
Agent size:
Here you can set the size of the agents on the screen in a grid from 1 to 7. The picture on the right shows agents in the sizes 1, 4 and 7. - Attention: The size has no effect on the simulation process! It only serves for a better visualization on small computer displays. Thus, larger agents do not get stuck more often than smaller ones, despite their "denser" movements.
Simulation duration:
This slider can be used to specify the simulation duration in grid values from 1 to 10. In most browsers, a value of 1 corresponds to about 10 seconds, so the duration can be varied from 10 to 100 seconds. Note, however, that Firefox, for example, runs the simulation noticeably slower.
Data export:
This switch can be used to activate the data export, i.e. the option to call up the "large" data monitor.
Font size for data export:
The table generated by the "large" data monitor can be called up in different font sizes. The size can be set from 8pt to 12pt.
Automatic stop:
An automatic stop can be activated here, which terminates the simulation process prematurely when it reaches its "natural" end (no further infections).
This option activates various audio signals (see below: Audio functions).
The volume of the audio signals can be adjusted from 5 to 100 per cent.
Colour selection:
By (repeatedly) pressing this key, the colour design of the user interface can be changed. Ten colour variations are available. Please note that the actual design shown depends on the browser.

Attention: The general program settings normally have no influence on the course of a simulation. However, the change of the simulation duration is an exception. If the automatic opening of the borders is switched on, the start of the automatic opening is also delayed when the simulation time is extended, since this is not clocked according to seconds, but according to a percentage of the running time. For a runtime of "1" (i.e., about 10 seconds), the borders open after 2 seconds with a delay of 20 per cent, but for a runtime of "10" (about 100 seconds), the borders open after 20 seconds. Since the speed of the agents does not slow down proportionally and their infectivity does not expand to the same extent, this results in completely different infection courses. If necessary, therefore, the delay time of the border opening must be adjusted in order to achieve comparable results (in the present example from 20 to 2 percent).

2.5.4 Audio functions

If the option "Audio" is switched on, the program outputs some audio signals.

Audio signals
Each agent contact that leads to an infection is accompanied by a short clicking sound.
This sound denotes the death of an agent.
This warning signal indicates the overload of medical capacities. It supports the corresponding visual warning.
This signal gives the all-clear regarding hospital capacities.
Simulation end:
The closing gong indicates the "natural" end of the simulation (no more sick people). It supports the corresponding visual warning.

Please note: If a large number of audio signals are triggered in quick succession in a simulation, the browser may "swallow" some of them.

3. Useful lifehacks

In the following section you will find some technical information that may be helpful for the optimal use of the MiniLab.

3.1 System requirements

MiniLab is programmed in JavaScript and can therefore be run on many platforms. The program was successfully tested on MS Windows (TM), macOS (TM) and Android (TM) on the following browsers:

  • Firefox (97.0),
  • Google Chrome (98.0),
  • Microsoft Edge (98.0),
  • Opera (84.0),
  • Safari (13.1),
  • Samsung Internet (

Known limitations:

  • The program does not run in MS Internet Explorer.
  • The colour designs that can be selected in the program are browser-dependent. For example, the Opera browser (until now) does not allow colour changes in switches and sliders. Therefore, changes in the colour design are incomplete here.

3.2 Known problems

(1) The duration of a simulation depends on the browser and is therefore not specified in seconds in the program settings. It can be roughly calculated that a simulation run with the length "1" takes about 10 seconds in most browsers (Edge, Chrome, Opera); in Firefox, however, it takes a little more than 15 seconds in the same setting. - With the start value "4", a simulation is therefore normally over after 40 seconds, but in Firefox only after about one minute.

(2) A "real" transfer of data via data export that goes beyond pure display is currently only possible with Firefox. In the other browsers, the formatted export table is opened properly in an external window, but it cannot be copied and pasted into external software such as MS Word (TM) in its original format.

(3) If the simulation does not run smoothly but jerkily on an older computer or in certain network environments, you can switch off the data export option if you do not need it. This deactivates the program routine for determining the data of the "large" monitor, which in turn saves computing capacity and thus perhaps improves the run.

3.3 Frequently asked questions

In some program runs, no pandemic is simulated at all because no one falls ill at the start of the program. How can this be explained?

Set a sufficiently large percentage for the option "Infected". If you have selected a total population below 100, for example 95, and at the same time an "infected" percentage of only one per cent, the program will calculate 0.95 sick people at the start of the simulation. Since this number is rounded down, zero ill people remain. So increase the number of initially infected to at least two per cent and you are on the safe side even with the minimum population of 50 agents.
For test purposes, you can of course also deliberately set the number of ill people to zero. The program then runs through without pandemic development.

If I switch on the option "Automatic stop", sometimes the simulation cannot be started at all. Is this a programming error?

Probably not. Possibly - see previous question - you have set the number of initially infected people to too low a percentage, so that the simulation starts without any ill people and then shuts down immediately because of the auto-stop.

I have set the audio switch. Nevertheless, no sound is played. What should I do?

First check the settings of your computer. It is possible that the sound is muted there. If the computer displays full volume and still remains mute, the reason may be that your browser generally suppresses the playback of sound files. In this case, you must enable the playback function manually in your browser settings.

Most of the sounds are played correctly on my computer, only the closing gong is not. How can this be explained?

The sound of the closing gong contains very low frequencies. If your computer has a very small speaker, it may not be able to output low sounds adequately.

Even if I keep the settings of the program, the individual simulation runs show completely different results. How can this be explained?

The results prove that reality is not completely calculable. The program only provides probabilities that the results are within a certain spectrum.

I am puzzled by the fact that the simulation results are repeatable. Are they not "random" results at all, but "programmed", possibly manipulated results?

All simulation results follow chance. The mode in which defined random number chains are used should not be imagined as having ready-made numbers; rather, these are generated in a very complex way and diverge even with minimally changed simulation settings. The term "random number chains" therefore describes a multi-dimensional network of random numbers. Nothing is manipulated here. The calculation of the random numbers follows an algorithm by Makoto Matsumoto, Takuji Nishimura and Sean McCullough. The source code for the MiniLab is open; the programming can therefore be checked in detail. - Incidentally, the results generated in "random random number" mode do not differ from those in "defined random number" mode.

Isn't the MiniLab's underlying model overly simplistic? The randomly scurrying agents do not correspond to reality after all. In reality, infections do not spread at random, but within certain reference groups.

In a way, that is correct. The MiniLab is based on a very simple model (in which you can, however, intervene by drawing some boundaries between certain groups of people). A more complex simulation that takes your objections into account can be found, for example, in the pandemic program Pandemic Laboratory.
Furthermore, you should consider that the - seemingly arbitrary - contact of all agents with each other is perhaps not so far removed from reality. As early as 1967, the American social psychologist Stanley Milgram stated that in this world all people are six or fewer social connections away from each other. His research findings at the time, the so-called small-world phenomenon, have since been confirmed by the study of user behaviour in social media (according to which there are 6.6 connections, cf. Jure Leskovec, Eric Horvitz 2008). In view of the fact that humanity is apparently as well networked as was assumed at the time, even the MiniLab with its simply modelled infection paths seems quite plausible in its own way. A virus comes to everyone via six social connections.

What additional functions are planned for the MiniLab in the future?

The MiniLab concept is pretty much exhausted. Besides, a constant expansion of the program functions would contradict the claim "for beginners". If you are interested in more complex pandemic simulations, please use the Pandemic Laboratory. This offers very sophisticated setting options and even more extensive options for data analysis.

4. Bibliography

Kugelmeier, Frank U. (2022): Pandemic Laboratory - A simulation of COVID-19 containment strategies. Version 3.61 (09/12/2022). St. Ursula Grammar School, Attendorn 2020-2022. Available online at

Leskovec, Jure; Horvitz, Eric (2008): Planetary-Scale Views on an Instant-Messaging Network. Cornel University, 03/06/2008, arXiv:0803.0939 [physics.soc-ph]. Available online at

Milgram, Stanley (1967): The Small World Problem. In: Psychology Today, vol.1, no.1 (May 1967), pp 60-67. Available online at

Stevens, Harry (2020): Why outbreaks like coronavirus spread exponentially, and how to "flatten the curve". Washington Post, 03/14/2020. Available online at, checked on 03/21/2022.

Trajkovski, Meto (2020): Virus Spreading Simulation, 03/15/2020, update: 02/07/2021. Available online at (source code) and (program).

5. Acknowledgements

Sincere thanks for help with the translations of the program go to Cağla Dural (TR), Elif Dural (TR), Sabina Hennen (ES, PL), Francesco Monfoletto (IT), Melanie Müller (FR), Aileen Salamon (PL), and Miriam Sander (ES).

The random number routine goes back to Makoto Matsumoto, Takuji Nishimura, and Sean McCullough. Many thanks for this as well!

6. User licence and contact

This program is inspired by the online article "Why outbreaks like coronavirus spread exponentially" by Harry Stevens, published in the Washington Post on 03/14/2020.

In terms of programming, it goes back to the "Virus Spreading Simulation" by Meto Trajkovski (Skopje, North Macedonia), which he developed primarily for mobile devices immediately after the publication of the Washington Post article (cf.

The MiniLab program offers a comprehensive revision of the original program routines (for example, in the random generator and in the changeable parameters) as well as some essential extensions (type of mobility, automatic border opening, data export, language selection, sound effects).

Both the original program and the MiniLab are licensed under the terms of the MIT licence. In detail, this means, among other things:

  • The program may be passed on, the program code may be changed.
  • The program may also be used commercially.
  • The names of the original authors of the program must be mentioned.
  • The copyright notice below and the accompanying permission notice must be included in all copies or substantial portions of the software.

A notification of the original authors in case of non-trivial modification of the program is explicitly desired.

Changes to the text of the manual please only after consultation with the author.

If you have any questions, please contact the e-mail address ([at] stands for @) mentioned in the licence file.

English text created by automatic translator
Version 3


Pandemie-Simulation für Einsteiger

Frank U. Kugelmeier - St.-Ursula-Gymnasium Attendorn


0. Vorbemerkung
1. Die Benutzeroberfläche
1.1 Der Startbildschirm
1.2 Die Simulation
1.3 Der Datenmonitor
1.4 Die Anzeigefelder
1.4.1 Der Verlaufsgraph
1.4.2 Die Agentenstatus-Leiste
1.4.3 Die Laufanzeige
2. Die Steuerelemente
2.1 Bedienelemente
2.2 Die Hauptsteuerung
2.3 Simulationseinstellungen
2.4 Die Zufallszahlen-Navigation
2.5 Allgemeine Programmfunktionen
2.5.1 Die Sprachauswahl
2.5.2 Externe Seiten
2.5.3 Programmeinstellungen
2.5.4 Audio-Funktionen
3. Tipps & Tricks
3.1 Systemvoraussetzungen
3.2 Bekannte Probleme
3.3 Häufig gestellte Fragen
4. Literaturverzeichnis
5. Danksagungen
6. Nutzungsrechte und Kontakt


Als die erste Coronawelle Anfang 2020 mit voller Wucht die westlichen Industrienationen erreichte, fragten sich dort viele Betroffene, wie sich das Virus so schnell hatte ausbreiten können. Als Antwort veröffentlichte die Washington Post am 14. März 2020 in ihrer Online-Ausgabe einen viel beachteten Artikel mit dem Titel "Why outbreaks like coronavirus spread exponentially". Dessen Autor Harry Stevens gab der Leserschaft Nachhilfe in Sachen Exponentialfunktionen.

Zu diesem Zweck bettete er mehrere kleine Computersimulationen in die Website ein. In jeder stellte er zweihundert digitale "Agenten", symbolisiert durch farbige Pünktchen, auf ein definiertes virtuelles Feld und ließ sie zufällig miteinander in Kontakt treten. In den Simulationen konnten die Leserinnen und Leser nun beobachten, wie die sich über das Feld bewegenden, ursprünglich allesamt gesunden Agenten von einem einzelnen Kranken angesteckt wurden und daraufhin andere ansteckten, wie diese Agenten wiederum weitere infizierten und wie nach einer gewissen Zeit die gesamte Agentenschar erkrankt war, bevor sie schließlich erfreulicherweise wieder genas.

Das vorliegende Programm MiniLab ist diesen Simulationen nachempfunden - nur dass es wesentlich mehr Möglichkeiten bietet als das Original: Die umherirrenden Agenten können nun durch Abgrenzungen in ihrem Bewegungsradius eingeschränkt werden; auch die Häufigkeit ihrer Kontakte lässt sich bestimmen. Darüber hinaus kann man einstellen, dass sie im Falle ihrer Erkrankung weniger mobil werden oder sich sozial distanzieren. Schließlich besteht die Möglichkeit, sie durch Impfung (teilweise) zu immunisieren. Leider sind sie in dieser Simulation aber auch der Gefahr ausgesetzt, nach einer Infektion zu versterben.

Alle genannten Parameter der Simulation - und noch einige mehr - lassen sich auf vielfältige Weise manipulieren. Hierdurch ermöglicht das Programm Einblicke in die komplizierten, teilweise überraschenden Ausbreitungswege einer Pandemie.

Aufgrund eines differenzierten Systems von "definierten Zufallsereignissen" können einzelne Simulationsläufe jederzeit exakt reproduziert werden; allerdings lässt sich diese Option auch abschalten und es werden stattdessen stets echte, nicht wiederholbare Zufallsereignisse erzeugt. Über beide Optionen lässt sich prüfen, mit welcher Wahrscheinlichkeit bestimmte Pandemieverläufe eintreten oder nicht.

In diesem Kontext ein wichtiger Hinweis: Das MiniLab reduziert das pandemische Geschehen auf einige sehr einfache soziale Interaktionen. Epidemiologische und medizinische Zusammenhänge, etwa Inkubationszeiten oder altersabhängige Anfälligkeiten für Infektionen, sind dabei nicht berücksichtigt. Daher liefert das Programm auch keine konkreten medizinischen Prognosen. Doch es stärkt das Verständnis für komplexe Zusammenhänge.

1. Die Benutzeroberfläche

Die Benutzeroberfläche des MiniLab weist ein großes Hauptfeld auf, auf dem wahlweise eine Kurzinformation, die Simulation selbst oder ein sogenannter Datenmonitor mit den Simulationsergebnissen aufgerufen werden kann. Die Steuerung dieser Prozesse erfolgt über drei breite Tasten unterhalb des Felds.

Über dem Hauptfeld befinden sich zwei Anzeigefelder, die Auskunft über die pandemische Entwicklung im Simulationsverlauf geben.

Um diese drei Felder herum gruppieren sich oben, rechts und unten diverse Regler, Tasten und Schalter, mit deren Hilfe der Simulationsverlauf und das Aussehen des Programms beeinflusst werden können.

1.1 Der Startbildschirm

Zu Beginn des Programms wird im Hauptfeld zunächst eine Kurzinformation angezeigt (die mit der links darunter befindlichen Haupttaste geschlossen und auch wieder geöffnet werden kann).

Das obere Anzeigefeld wird anfangs durch das MiniLab-Logo verdeckt. Der Datenmonitor enthält noch keine Daten.

Alle Einstellungen, die den Verlauf der Simulation beeinflussen sollen, müssen vor dem Start des jeweiligen Simulationslaufs vorgenommen werden.

1.2 Die Simulation

Mithilfe der Taste "Simulation starten" lässt sich ein (neuer) Simulationslauf aktivieren. Auf dem Hauptfeld wird nun eine weiße Fläche angezeigt, auf der sich eine zuvor definierte Zahl farbiger Kreise, sogenannter Agenten, bewegt. Das Szenario erinnert an einen Billardtisch, auf dem Kugeln rollen und sich, wenn sie aufeinandertreffen, gegenseitig in alle möglichen Richtungen "kicken". Diese Begegnungen symbolisieren menschliche Kontakte. Bei jeder der Begegnungen laufen die Agenten Gefahr, sich bei einem Infizierten anzustecken. Um den Verlauf der Infektionen beobachten zu können, sind den Agenten unterschiedliche Farben zugeordnet.

Grün:   Gesunde,
Türkis:   Geimpfte,
Rot: Erkrankte,
Violett: Genesene,
Blau: Verstorbene.

Je nach Programmeinstellungen bewegen sich die Agenten entweder mit konstanter, mit zufälliger oder - bei Infektion - mit reduzierter Geschwindigkeit. Verstorbene Agenten werden als blaue Quadrate (sozusagen als Grabsteine) dargestellt und spielen für den weiteren Simulationsverlauf keine Rolle mehr; sie werden von den noch Lebenden im wahrsten Sinne des Wortes "übergangen".

Um Lockdowns oder aber die schubweise Verbreitung von Infektionen zu simulieren, lassen sich - unter anderem über die beiden äußeren Haupttasten - Grenzen schließen oder öffnen. Die Grenzen können ganz oder auch nur teilweise bzw. zeitverzögert verändert werden.

Über die Taste "Anhalten" lässt sich die Simulation unterbrechen und anschließend über "Fortfahren" weiterführen, bis der Simulationslauf sein definiertes Ende (100 Prozent) erreicht hat. Vorzeitig abbrechen lässt sich die Simulation durch einen Mausklick in das Simulationsfeld. Das Programm kehrt dann, genau wie beim definierten Ende, in den Startmodus zurück und steht für weitere Simulationsläufe bereit.

Links oben im Simulationsfeld erscheinen, abhängig von Programmeinstellungen und -ablauf, unterschiedliche Verkehrszeichen-Symbole:

Achtung: Das Zeichen zeigt an, dass die Auslastung der medizinischen Einrichtungen über 100 Prozent liegt.
Aufhebung aller Verbote: Die Simulation ist zu einem natürlichen Ende gekommen (es gibt keine Erkrankten mehr), läuft aber weiter.
Stopp: Ist die Option "Automatischer Stopp" gesetzt, zeigt dieses Schild das natürliche Ende der Simulation (keine Erkrankten mehr); zugleich hält der Simulationslauf automatisch an.

Alle Einstellungen, die während der Simulation vorgenommen werden, gelten erst im folgenden Simulationslauf. Ausgenommen hiervon sind lediglich die drei Haupttasten (Anhalten/Fortfahren, Grenzöffnung bzw. -schließung), die Sprach- und Farbwahl sowie die Optionen "Agentengröße", "Automatischer Stopp" und die Audio-Einstellungen.

1.3 Der Datenmonitor

Nach dem Ende der Simulation springt das Programm, wie schon erwähnt, wieder in den Startmodus. Allerdings bleiben der Verlaufsgraph, die finale Agentenstatus-Anzeige sowie die letzte Konstellation der Agenten auf dem Simulationsfeld erhalten.

Darüber hinaus besteht nun die Möglichkeit, den Verlauf der Simulation anhand periodisch erhobener Zwischendaten noch einmal nachzuvollziehen. Hierzu lässt sich über die rechte Haupttaste ein Datenmonitor aufrufen (und auch wieder schließen).

Der in das Hauptfenster integrierte Monitor zeigt, abgesehen von den Daten des Programmstarts, die pandemische Entwicklung in - maximal - 25 Stichproben an. Neben den laufenden Nummern 0 (Start) bis 25 (Ende, d. h. 100 Prozent) sind die nach jeweils 4 Prozent Verlauf erhobenen Krankendaten der Agenten sowie der jeweilige Auslastungsgrad des medizinischen Systems zu sehen.

Außerdem kann, sofern die Option "Datenexport" gesetzt ist, durch einen Mausklick in das Monitorfeld in einem gesonderten, externen Fenster auch eine noch detailliertere Dokumentation des Simulationsverlaufs abgerufen werden. Sie umfasst (neben der Position 0 des Programmstarts) bis zu 100 Stichproben, also eine pro Prozent des Laufs. Dieser "große" Monitor enthält zudem am unteren Ende der generierten Datentabelle eine Übersicht über die während der Simulation gesetzten Parameter.

Wenn Sie das MiniLab im Firefox-Browser aufrufen, können Sie die Datentabelle per Copy & Paste in ein externes Programm, etwa MS Word (TM), übertragen und dort weiterverarbeiten. Klicken Sie dazu mit der rechten Maustaste auf die Tabelle und wählen Sie in der aufklappenden Box "Alles auswählen". Klicken Sie dann, wieder mit der rechten Maustaste, auf die nunmehr markierte Tabelle und wählen Sie in der aufklappenden Box "Kopieren". Anschließend können Sie die kopierte Tabelle in ein anderes Programm weiterreichen. In MS Word (TM) passt eine in 9 pt exportierte Tabelle beispielsweise genau auf zwei mit 1 cm oberem und unterem Rand formatierte Seiten. Ein Beispiel für einen gelungenen Datentransfer per Firefox zeigt das folgende Dokument.

Leider funktioniert dieses Verfahren nur im Firefox. Verwenden Sie einen anderen Browser, müssen Sie sich beim Export mit Screenshots behelfen oder Abstriche bei der Formatierung der kopierten Daten machen.

Beispiel einer Datenexport-Datei

Wie Sie sehen können, sind im unteren Teil der Tabelle die Programmeinstellungen notiert. Dazu gehören auch die Parameter "Änderung linke Grenze" und "Änderung rechte Grenze". Beachten Sie bitte, dass der Datenmonitor hier lediglich registriert, ob während der Simulation die Haupttasten zur Grenzöffnung bzw. -schließung betätigt wurden, nicht aber, wie lange diese Öffnung bzw. Schließung de facto anhielt. Für eine exakte Auswertung der Simulationsläufe empfiehlt es sich daher, die Grenzen während der Simulation nicht per Hand zu modifizieren, sondern über die (genau justierbare und reproduzierbare) Öffnungs-Automatik.

1.4 Die Anzeigefelder

Über dem Simulationsfeld befinden sich zwei Anzeigefelder, die den Verlauf der Simulation dokumentieren. Rechts darüber ist ein weiteres Feld platziert, das unter anderem die aktuelle Laufnummer (Zufallsauswahl) ausweist.

1.4.1 Der Verlaufsgraph

Der Verlaufsgraph stellt - analog zu den weiter oben genannten farblichen Kennzeichnungen der Agenten - das Verhältnis von Nicht-Infizierten, Erkrankten, Genesenen, Verstorbenen und Geimpften im Simulationsverlauf dar. Der Maximalwert der y-Achse entspricht also der Gesamtzahl der Agenten (100 Prozent). Darüber hinaus weist der Graph eine horizontale Linie auf; diese gibt in Prozent an, für wie viele Agenten der Gesamtpopulation eine medizinische Versorgung gesichert ist (vgl. die Option "Krankenhauskapazität"). Innerhalb des Limits werden erkrankte Agenten hellrot eingefärbt; wird das Limit überschritten, sind sie dunkelrot gekennzeichnet.

Natürlich hält keine Gesellschaft Intensivbetten für 20, 30 oder gar 100 Prozent der Bevölkerung bereit; tatsächlich liegt der Wert noch nicht einmal im Promillebereich. Da dies grafisch jedoch nicht darstellbar wäre, hebt die Anzeige die Kapazität hier auf einen Idealwert an.

Die Farbwahl (Grün für gesund, Rot für erkrankt usw.) korrespondiert mit der des Programms Pandemielabor, das ebenfalls - allerdings erheblich differenzierter - Pandemieverläufe simuliert und als komplexere "Fortsetzung" des MiniLab genutzt werden kann.

1.4.2 Die Agentenstatus-Leiste

Die Leiste ist weitgehend selbsterklärend: Während der Simulation werden hier laufend die Zahlen der gesunden, geimpften, erkrankten, genesenen und verstorbenen Agenten ausgewiesen. Zusätzlich wird angezeigt, wie stark das medizinische System ausgelastet ist. So ist zum Beispiel bei einer Population von 100 und einer Krankenhauskapazität von 20 Prozent das System bei 20 Erkrankten (= 20 Prozent der Population) am Limit (= 100 Prozent Auslastung). Jeder weitere Erkrankte bringt die medizinische Versorgung potenziell zum Kollaps.

1.4.3 Die Laufanzeige

Die Laufanzeige gibt Auskunft über folgende Werte:

  • links: die Nummer des aktuell durchgeführten (oder noch durchzuführenden) Laufs,
  • halbrechts: den Fortschritt des aktuell durchgeführten Laufs (in Prozent),
  • rechts: den Zufallszahlen-Modus (vgl. unten).

Das Programm unterscheidet zwischen "echten" neuen Läufen (mit neuen Zufallszahlen) und Laufwiederholungen (mit denselben Zufallszahlen). Läufe mit neuen Zufallszahlen werden links vom Punkt, Laufwiederholungen in etwas kleinerer Schrift rechts vom Punkt dargestellt. Die Anzeige "5.3" bedeutet also zum Beispiel, dass der 5. Lauf (d. h. die 5. Zufallszahlenauswahl) insgesamt dreimal aufgerufen worden ist.

In der Einstellung "Blackbox" (siehe unten) werden keine Läufe gezählt. Notiert wird hier stattdessen "Lauf 0".

Rechts außen wird der aktuelle Zufallszahlenmodus angezeigt:

Bei jedem Start einer Simulation wird eine neue definierte Kette von Zufallszahlen (mit jeweils neuer Laufnummer) aufgerufen.
Bei jeder Aktivierung der Taste "Simulation starten" wird dieselbe definierte Zufallszahlenkette verwendet. Ändert man gegenüber früheren Aufrufen keine Parameter, bringt der Simulationslauf also exakt dasselbe Ergebnis wie seine Vorgänger mit derselben Laufnummer.
Die "Blackbox" ("Lauf 0") bedeutet, dass das Programm keine definierten Zufallszahlenketten verwendet. Jeder Simulationslauf benutzt stattdessen "zufällige", stets neue Zufallszahlen und ist damit nicht reproduzierbar.

Näheres zu den verschiedenen Zufallszahlen-Optionen bietet der Abschnitt "Zufallszahlen-Navigation".

2. Die Steuerelemente

2.1 Bedienelemente

Als Stellschrauben bzw. Schalter zur Steuerung der Programmfunktionen verwendet das MiniLab vier Typen von Bedienelementen.

Schaltknöpfe: Diese haben, je nach Funktion, die Wirkung von (Wechsel-)Schaltern oder Tastern. Sie lösen ein Programmereignis aus. Je nach Schaltzustand kann ihr Symbolbild variieren. Auch sind manche Knöpfe mit Mehrfachfunktionen belegt.
Schieberegler (Bereichsregler): Mit ihnen lässt sich ein Wert (meist ein Zahlenwert) innerhalb eines bestimmten Bereichs einstellen. Der aktuelle Wert wird über dem Regler angezeigt.

Einfach-Schalter (Checkboxes): Hiermit lässt sich auf einfache Weise eine Funktion zu- (mit Häkchen) oder abschalten (ohne Häkchen).
Schaltflächen: Auch durch Mausklick direkt in das Simulations- bzw. in das Monitorfeld lassen sich Aktionen auslösen.

2.2 Die Hauptsteuerung

Die Funktionen der drei breiten Haupttasten erklären sich angesichts der jeweiligen Aufschriften eigentlich von selbst. Gleichwohl sind sie hier der Vollständigkeit halber aufgeführt.

Linke Taste
Im Startmodus des Programms lässt sich mit der linken Haupttaste die Anzeige der Kurzinformationen aktivieren...
... und auch wieder abschalten.
Während des Simulationslaufs kann man mit der Taste die linke Grenze wechselweise freigeben...
... und schließen.
Mittlere Taste
Mit der mittleren Taste lässt sich ein neuer Simulationslauf aufrufen.
Die laufende Simulation kann dann angehalten...
... und anschließend fortgesetzt werden.
Rechte Taste
Nach Beendigung einer Simulation dient die rechte Haupttaste zur Anzeige der Daten im Monitor, ...
... der über sie auch wieder abgeschaltet werden kann.
Während des Simulationslaufs kann man mit der Taste die rechte Grenze öffnen...
... und auch wieder schließen.

Erwähnenswert, weil nicht unmittelbar erkennbar, sind die beiden folgenden Funktionen.

Mausklick ins Hauptfeld
Mit einem Mausklick ins Simulationsfeld können Sie die Simulation während ihres Laufs jederzeit vorzeitig beenden (d. h. abbrechen).
Wird der "kleine" Datenmonitor angezeigt, lässt sich mit einem Mausklick ins Monitorfeld der "große", externe Datenmonitor aktivieren. Dies setzt allerdings voraus, dass die Option "Datenexport" eingeschaltet ist.

2.3 Simulationseinstellungen

Rechts neben dem Simulationsfeld befinden sich alle Regler und Schalter, die für den Verlauf einer Simulation relevant sind. Beachten Sie bitte: Sämtliche Parameter müssen vor einem Simulationslauf festgelegt werden. Die während eines Laufs vorgenommenen Parameteränderungen gelten erst in der folgenden Simulation.

Simulationseinstellungen Startwert
Die Zahl der Agenten lässt sich in Fünferschritten zwischen 50 und 300 einstellen.
Gemeint ist der Anteil der Erkrankten bei Simulationsbeginn (in Prozent der Population). Der Wert kann zwischen 0 und 100 Prozent angesetzt werden. Achtung! Liegt die Agentenzahl unter 100, muss der Wert mindestens 2 Prozent aufweisen, da vom Programm sonst keine Erkrankten generiert werden.
Hier wird bestimmt, mit welcher Wahrscheinlichkeit (0 bis 100 Prozent) sich die Agenten bei einem Kontakt infizieren.
Diese Option legt fest, wie hoch der Anteil der Versterbenden unter den Erkrankten ist (0 bis 100 Prozent).
Hier wird der Anteil der Geimpften in (0 bis 100) Prozent der Gesamtpopulation festgelegt.
Dieser Parameter bestimmt die Wahrscheinlichkeit einer erfolgreichen Impfung in Relation zur Gesamtzahl der Geimpften. Liegt die Wahrscheinlichkeit unter 100 Prozent, beschreibt die Differenz zu 100 den Prozentanteil derjenigen Agenten, die trotz Impfung vulnerabel bleiben.
Hier lässt sich der Anteil (0 bis 100 Prozent) der Bevölkerung bestimmen, für den eine gesicherte medizinische Versorgung zur Verfügung steht. Der Wert wird auch als horizontale Linie im Verlaufsgraphen angezeigt.
Soziale Distanz:
Unter "sozialer Distanz" wird hier verstanden, dass ein bestimmter Prozentsatz (0 bis 100) der Agenten soziale Kontakte deutlich reduziert. Umgesetzt wird dies in der Simulation dadurch, dass die "distanzierten" Agenten sich nicht bewegen und so ihre Kontakte einschränken. Sehr wohl können sie allerdings von anderen, sich bewegenden Agenten kontaktiert und damit auch infiziert werden, wodurch sie wiederum weitere Kontakt aufnehmende Agenten gefährden.
Für die Bewegungsabläufe der Agenten stehen vier Wahlmöglichkeiten zur Verfügung:
  • diffus: Alle Agenten bewegen sich in unterschiedlichen, zufälligen Geschwindigkeiten, die sie, je nach Kontakt, hin und wieder wechseln.
  • konstant: Alle Agenten bewegen sich mit derselben konstanten Geschwindigkeit.
  • situativ: Gesunde, geimpfte und genesene Agenten bewegen sich mit derselben konstanten Geschwindigkeit; erkrankte, "schwache" Agenten reduzieren ihre Geschwindigkeit auf ein Fünftel.
  • restriktiv: Gesunde, geimpfte und genesene Agenten bewegen sich mit derselben konstanten Geschwindigkeit; erkrankte Agenten dürfen ihren Standort nicht mehr verlassen (genauer: sie bewegen sich mit einem Hundertstel ihrer ursprünglichen Geschwindigkeit).
In den beiden letztgenannten Einstellungen reduzieren die erkrankten Agenten ihre Bewegungen nicht sofort nach der Infektion, sondern erst nach dem nächsten Agentenkontakt. Sie können also auch in infektiösem Zustand durchaus noch eine (!) längere Strecke zurücklegen.
Häufigkeit der Kontakte:
Die Ausbreitung einer Epidemie bzw. Pandemie hängt von der Zahl der Kontakte ab. Im MiniLab wird die Häufigkeit dieser Kontakte dadurch simuliert, dass sich die Agenten - bei gleichbleibender Infektiosität - mit geringerer oder höherer Geschwindigkeit bewegen. Je höher die Geschwindigkeit, desto höher ist auch die Wahrscheinlichkeit einer Infektion. Diese Geschwindigkeit lässt sich hier über Indikatorwerte von 1 bis 10 regeln.
Offene Grenze beim Start - links:
Bei geschlossenem Schalter bleibt die linke Grenze bei Simulationsstart geöffnet.
Offene Grenze beim Start - rechts:
Bei geschlossenem Schalter bleibt die rechte Grenze bei Simulationsstart geöffnet. Zu beachten ist, dass die Einstellungen der beiden Schalter bei aktivierter Grenzöffnungs-Automatik (siehe unten) keine Wirkung zeigen.
Hier lässt sich angeben, zu wie vielen Prozent die Grenzen geöffnet werden sollen. Möglich sind Werte zwischen 0 und 90 Prozent. Bei 0 Prozent bleibt die Grenze vollständig geschlossen, bei 90 Prozent wird sie fast komplett geöffnet. - Die Einstellung gilt sowohl für die Haupttasten zur Grenzschließung als auch für die Grenzöffnungs-Automatik.
Automatische Öffnung:
Eine Grenzöffnung kann nicht nur manuell über die linke und rechte Haupttaste, sondern auch über eine Automatik vorgenommen werden, die sich hier zuschalten lässt. Bei aktivierter Automatik sind die Grenzen zu Anfang grundsätzlich vollständig geschlossen; andere diesbezügliche Programmeinstellungen werden ignoriert.
Automatische Öffnung nach ... Lauf:
Mit dem Regler lässt sich justieren, nach wie vielen Prozenten des Simulationslaufs die Öffnung begonnen werden soll. Möglich sind Werte zwischen 0 und 50 Prozent. Die Öffnung erfolgt fließend; bis zur vollständigen Aufhebung der Barrieren kann es also einen Augenblick dauern.
Beachten Sie bitte, dass der Zeitpunkt der Grenzöffnung von der Simulationsdauer abhängt. Wird diese über die entsprechende Option verlängert, verschiebt sich auch die Grenzöffnung nach hinten, da diese sich nicht an der Realzeit, sondern an dem Fortschritt des Simulationslaufs (in Prozent) orientiert.

2.4 Die Zufallszahlen-Navigation

Die Bewegungen der Agenten auf dem Simulationsfeld basieren auf Zufallszahlen. Diese werden vom MiniLab auf unterschiedliche Weise generiert:

  • zum einen über einen Algorithmus, der definierte Ketten von Zufallszahlen liefert,
  • zum anderen über einen Generator, der fortlaufend willkürliche, sozusagen "zufällige Zufallszahlen" bereitstellt.

Der Vorteil der erstgenannten Methode besteht darin, dass die so erzeugten Zufallszahlen jederzeit reproduzierbar sind. Jeder definierten Zufallszahlenkette ist eine bestimmte Laufnummer zugeordnet. So liefert beispielsweise jeder "Lauf 5" auf jedem beliebigen Rechner zu jeder beliebigen Zeit dieselben Ergebnisse, sofern die sonstigen Programmeinstellungen nicht verändert wurden; jeder "Lauf 6" führt zu neuen (anderen), aber ebenfalls spezifischen und reproduzierbaren Resultaten, jeder "Lauf 7" wieder zu neuen (anderen), aber spezifischen Resultaten und so fort. Auf diese Weise kann man bestimmte Simulationsverläufe jederzeit wiederholen und gezielt analysieren.

Die zweite Methode bietet sich immer dann an, wenn man - etwa in Unterrichtssituationen oder in Seminaren - auf mehreren Rechnern zufällige Ergebnisse erzielen möchte, die sich nicht gleichen (die also wirklich "verschieden zufällig" sind). Da die Simulationsläufe niemals vollkommen identisch sind, lässt sich im Vergleich der Ergebnisse auf verschiedenen Rechnern zum Beispiel schnell klären, in welcher Bandbreite sich die Folgen bestimmter Simulationseinstellungen bewegen. In der Laufanzeige des Programms ist dieses Verfahren als "Lauf 0" bzw. als "Blackbox"-Modus gekennzeichnet (in eine Blackbox kann man nicht hineinschauen). "Blackbox"-Läufe werden nicht gezählt. Eine Durchnummerierung wäre sinnlos, da jeder Lauf einmalig und damit nicht wiederholbar ist.

Die verschiedenen Zufallszahlen-Auswahlen lassen sich über vier Navigationsknöpfe steuern, die sich rechts neben den Haupttasten befinden.

Navigations-Knöpfe Symbol
Der erste Knopf (links) ruft den numerisch folgenden Lauf (d. h. die folgende Zufallszahlenkette) auf. Befindet sich das Programm im "Blackbox"-Modus, schaltet die Taste das MiniLab zurück in den Algorithmus definierter Zufallszahlenketten und dort in den Modus "neue definierte Zufallszahlen"; sie hat in diesem Fall die gleiche Funktion wie die Reset-Taste (siehe unten).

Der zweite Knopf (halblinks) ruft den numerisch vorangegangenen Lauf (d. h. die vorherige Zufallszahlenkette) auf. Befindet sich das Programm im Lauf 1, schaltet die Taste das MiniLab in den Modus freier Zufallszahlen ("Blackbox"-Modus, "Lauf 0"). Im "Blackbox"-Modus selbst hat die Taste keine Funktion.

Der dritte Knopf (halbrechts) schaltet, sofern sich das Programm nicht im "Blackbox"-Modus befindet, zwischen neuem Lauf (Lauf mit neuen definierten Zufallszahlen) und Laufwiederholung (Lauf mit denselben definierten Zufallszahlen) um. Der jeweils aktuelle Modus wird in der Laufanzeige vermerkt. Der Modus "Neu" erscheint dort als dunkelroter "New"-Kreis, der Modus "Wiederholung" als Pfeilkreis.
Steht das Programm im Modus "Blackbox" (erkennbar an einer schwarzen Box in der Laufanzeige), schaltet die Taste in den Modus "Neu", also in den Modus "neue definierte Zufallszahlen", und dort zu Lauf 1.1 zurück. Dies entspricht der Funktion "Reset" (siehe unten).

Der vierte Knopf (rechts) führt einen Neustart (Reset) durch: Ein eventuell noch ausgeführter Simulationslauf wird abgebrochen und auf die Laufnummer 1.1 sowie in den Modus "Neu" zurückgesetzt; der Datenmonitor wird geleert, und im Feld des Verlaufsgraphen erscheint das Programm-Logo. Nicht zurückgesetzt werden die übrigen Programmeinstellungen, so dass mit diesen sofort weitergearbeitet werden kann.

Tippt man die Vorwärts- bzw. die Rückwärtstaste schrittweise durch, wird die Laufnummer in der Laufanzeige angepasst. Gültig ist die geänderte Laufnummer allerdings erst mit dem nächsten Simulationslauf.

Neue Läufe (mit neuen definierten Zufallszahlen) weist die Laufanzeige links vom Trennpunkt, Laufwiederholungen (mit denselben definierten Zahlen) in etwas kleinerer Schrift rechts vom Trennpunkt aus.

2.5 Allgemeine Programmfunktionen

Ganz oben und ganz unten auf der Benutzeroberfläche befinden sich diverse Tasten, Schalter und Regler, die nicht die Simulation selbst, sondern das Layout des Programms bestimmen bzw. externe Seiten aktivieren.

2.5.1 Die Sprachauswahl


Das MiniLab kann in folgenden Sprachen aufgerufen werden:
  • Deutsch,
  • Englisch,
  • Französisch,
  • Spanisch,
  • Portugiesisch,
  • Italienisch,
  • Niederländisch,
  • Polnisch,
  • Türkisch,
  • Esperanto.

Das vorliegende Handbuch ist zurzeit nur auf Deutsch und auf Englisch verfügbar.

2.5.2 Externe Seiten

Externe Seiten
Dieser Knopf führt zurück zur Startseite.
Über diesen Schaltknopf kann in einem separaten Fenster das vorliegende Handbuch geöffnet werden.

2.5.3 Programmeinstellungen

Programmeinstellungen Startwert
Hier lässt sich in einem Raster von 1 bis 7 die Größe der Agenten auf dem Bildschirm einstellen. Das Bild rechts zeigt Agenten in den Größen 1, 4 und 7. - Achtung: Die Größe hat keine Auswirkungen auf den Simulationsverlauf! Sie dient lediglich der besseren Visualisierung auf kleinen Computerdisplays. Größere Agenten stecken sich also trotz ihrer "dichteren" Bewegungen nicht häufiger an als kleinere.
Über diesen Regler lässt sich in Rasterwerten von 1 bis 10 die Simulationsdauer festlegen. In den meisten Browsern entspricht ein Wert von 1 ungefähr 10 Sekunden, so dass die Ablaufdauer von 10 bis zu 100 Sekunden variiert werden kann. Beachten Sie jedoch, dass beispielsweise der Firefox die Simulation erkennbar langsamer ausführt.
Über diesen Schalter lässt sich der Datenexport, d. h. die Möglichkeit zum Aufruf des "großen" Datenmonitors, aktivieren.
Schriftgröße beim Datenexport:
Die vom "großen" Datenmonitor generierte Tabelle kann in verschiedenen Schriftgrößen aufgerufen werden. Die Größe lässt sich hier von 8pt bis 12pt einstellen.
Automatischer Stopp:
Zugeschaltet werden kann hier eine Automatik, die den Simulationsverlauf bei Erreichen seines "natürlichen" Endes (keine weiteren Infektionen) vorzeitig beendet.
Diese Option schaltet diverse Audiosignale zu (siehe unten: Audio-Funktionen).
Die Lautstärke der Audiosignale ist von 5 bis 100 Prozent regelbar.
Durch (wiederholtes) Drücken dieser Taste kann das farbliche Design der Benutzeroberfläche variiert werden. Es stehen zehn Farbvarianten zur Verfügung. Beachten Sie bitte, dass das tatsächlich gezeigte Design browserabhängig ist.

Achtung! Die allgemeinen Programmeinstellungen haben im Normalfall keinen Einfluss auf den Verlauf einer Simulation. Eine Ausnahme bildet hierbei jedoch die Veränderung der Simulationsdauer. Wenn die Grenzöffnungs-Automatik eingeschaltet ist, verzögert sich bei einer Verlängerung der Simulationszeit auch der Start der automatischen Öffnung, da diese nicht nach Sekunden, sondern nach Prozent der Laufzeit getaktet ist. Bei einer Laufzeit von "1" (also etwa 10 Sekunden) öffnen die Grenzen bei einer Verzögerung von 20 Prozent nach 2 Sekunden, bei einer Laufzeit von "10" (ca. 100 Sekunden) jedoch erst nach 20 Sekunden. Da sich die Geschwindigkeit der Agenten nicht proportional verlangsamt und ihre Infektiosität nicht in gleichem Maße verlängert, ergeben sich hier also völlig unterschiedliche Infektionsverläufe. Gegebenenfalls muss daher die Verzögerungszeit der Grenzöffnung, um vergleichbare Resultate zu erzielen, angepasst werden (im vorliegenden Beispiel von 20 auf 2 Prozent).

2.5.4 Audio-Funktionen

Ist die Option "Audio" eingeschaltet, gibt das Programm einige Audiosignale aus.

Jeder Agentenkontakt, der zu einer Infektion führt, wird von einem kurzen Klickgeräusch begleitet.
Dieses Geräusch bezeichnet den Tod eines Agenten.
Dieses Warnsignal zeigt die Überlastung der medizinischen Kapazitäten an. Es unterstützt die entsprechende optische Warnung.
Dieses Signal gibt Entwarnung in Sachen Krankenhauskapazitäten.
Der Schlussgong zeigt das "natürliche" Ende der Simulation an (keine Erkrankten mehr). Er unterstützt die entsprechende optische Warnung.

Zur Beachtung: Werden in einer Simulation sehr viele Audiosignale schnell hintereinander ausgelöst, kann es vorkommen, dass der Browser einige hiervon "verschluckt".

3. Tipps & Tricks

Im folgenden Abschnitt finden Sie einige technische Hinweise, die für die optimale Nutzung des MiniLab hilfreich sein können.

3.1 Systemvoraussetzungen

Das MiniLab ist in JavaScript programmiert und daher auf vielen Plattformen lauffähig. Erfolgreich getestet wurde das Programm unter MS Windows (TM), macOS (TM) und Android (TM) auf folgenden Browsern:

  • Firefox (97.0),
  • Google Chrome (98.0),
  • Microsoft Edge (98.0),
  • Opera (84.0),
  • Safari (13.1),
  • Samsung Internet (

Bekannte Einschränkungen:

  • Im MS Internet Explorer 11 ist das Programm nicht lauffähig.
  • Die im Programm wählbaren Farbdesigns sind browserabhängig. So lässt zum Beispiel der Opera-Browser (bis jetzt) keine Farbwechsel in Schaltern und Schiebereglern zu. Änderungen im Farbdesign erfolgen dort also unvollständig.

3.2 Bekannte Probleme

(1) Die Dauer einer Simulation ist browserabhängig und wird in den Programmeinstellungen deshalb auch nicht in Sekunden angegeben. Überschlägig kann man zwar rechnen, dass ein Simulationslauf mit der Länge "1" in den meisten Browsern (Edge, Chrome, Opera) etwa 10 Sekunden dauert; im Firefox zum Beispiel benötigt er in derselben Einstellung aber etwas mehr als 15 Sekunden. - Mit dem Startwert "4" ist eine Simulation also normalerweise nach 40 Sekunden, im Firefox jedoch erst nach gut einer Minute zu Ende.

(2) Eine über die reine Anzeige hinausgehende, "echte" Übertragung der Daten per Datenexport ist derzeit nur mit dem Firefox möglich. In den übrigen Browsern wird die formatierte Export-Tabelle zwar ordnungsgemäß in einem externen Fenster geöffnet, jedoch lässt sie sich hieraus nicht in ihrer ursprünglichen Formatierung per Copy & Paste in externe Programme wie MS Word (TM) übernehmen.

(3) Sollte die Simulation auf einem älteren Rechner oder in bestimmten Netzwerkumgebungen nicht fließend, sondern ruckelnd laufen, können Sie, falls Sie sie nicht benötigen, die Datenexport-Option abschalten. Dadurch wird programmintern die Routine zur Ermittlung der Daten des "großen" Monitors deaktiviert, was wiederum Rechenkapazität einspart und so den Lauf vielleicht verbessert. - Hilfreich kann es in diesem Zusammenhang ebenfalls sein, auf die Ausgabe der Audiosignale zu verzichten. Auch sie belasten die Kapazität des Computers.

3.3 Häufig gestellte Fragen

In manchen Programmläufen wird überhaupt keine Pandemie simuliert, da zu Programmbeginn niemand erkrankt. Wie ist das zu erklären?

Legen Sie für die Option "Erkrankte" einen hinreichend großen Prozentsatz fest. Haben Sie eine Gesamtpopulation unter 100, also zum Beispiel 95, und zugleich einen Erkrankten-Prozentsatz von nur einem Prozent gewählt, berechnet das Programm 0,95 Erkrankte bei Simulationsstart. Da diese Zahl abgerundet wird, verbleiben null Erkrankte. Erhöhen Sie also die Zahl der anfänglich Erkrankten auf mindestens zwei Prozent, und Sie sind selbst bei der Mindest-Population von 50 Agenten auf der sicheren Seite.
Zu Testzwecken können Sie die Erkrankten-Zahl natürlich auch ganz bewusst auf null setzen. Das Programm läuft dann ohne pandemische Entwicklung durch.

Wenn ich die Option "Automatischer Stopp" einschalte, lässt sich die Simulation manchmal überhaupt nicht starten. Ist das ein Programmierfehler?

Vermutlich nicht. Wahrscheinlich haben Sie - siehe vorherige Frage - die Zahl der anfänglich Erkrankten auf einen zu niedrigen Prozentsatz gesetzt, so dass die Simulation ohne Erkrankte startet und sich dann wegen des Auto-Stopps sofort abschaltet.

Ich habe den Audio-Schalter gesetzt. Trotzdem wird kein Ton abgespielt. Was ist zu tun?

Prüfen Sie zunächst die Einstellungen Ihres Computers. Möglicherweise ist dort der Ton stummgeschaltet. Zeigt der Rechner volle Lautstärke an und bleibt trotzdem stumm, kann es daran liegen, dass Ihr Browser das Abspielen von Klangdateien grundsätzlich unterdrückt. In diesem Fall müssen Sie die Abspielfunktion "von Hand" in Ihren Browser-Einstellungen freigeben.

Die meisten Klänge werden auf meinem Rechner korrekt abgespielt, nur der Schlussgong nicht. Wie ist das zu erklären?

Der Klang des Schlussgongs enthält sehr tiefe Frequenzen. Hat Ihr Rechner einen sehr kleinen Lautsprecher, kann dieser tiefe Klänge möglicherweise nicht adäquat ausgeben.

Auch wenn ich die Einstellungen des Programms beibehalte, zeigen die einzelnen Simulationsläufe völlig unterschiedliche Ergebnisse. Wie ist das zu erklären?

Die Ergebnisse belegen, dass die Wirklichkeit nicht komplett berechenbar ist. Das Programm liefert lediglich Wahrscheinlichkeiten, dass sich die Resultate innerhalb eines bestimmten Spektrums bewegen.

Mich irritiert, dass die Simulationsergebnisse wiederholbar sind. Handelt es sich also gar nicht um "zufällige", sondern um "programmierte", womöglich manipulierte Resultate?

Alle Simulationsergebnisse folgen dem Zufall. Den Modus, in dem definierte Zufallszahlenketten verwendet werden, sollte man sich nicht so vorstellen, dass dort fertig konzipierte Zahlen vorliegen; vielmehr werden diese sehr komplex erzeugt und divergieren bereits bei minimal veränderten Simulationseinstellungen. Der Terminus "Zufallszahlenketten" beschreibt also eher ein vieldimensionales Geflecht von Zufallszahlen. Manipuliert wird hier nichts. Die Berechnung der Zufallszahlen folgt einem Algorithmus von Makoto Matsumoto, Takuji Nishimura und Sean McCullough. Der Quellcode zum MiniLab liegt offen; die Programmierung ist also im Detail überprüfbar. - Die Ergebnisse, die im Modus "zufällige Zufallszahlen" erzeugt werden, weichen im Übrigen nicht von denen im Modus der definierten Zufallszahlen ab.

Ist das dem MiniLab zugrunde liegende Modell nicht allzu simpel? Die zufällig herumwuselnden Agenten entsprechen doch nicht der Wirklichkeit. In der Realität verbreiten sich Infektionen eben nicht beliebig, sondern innerhalb bestimmter Bezugsgruppen.

Da ist was dran. Das MiniLab basiert auf einem sehr einfachen Modell (in das Sie allerdings durch einige Grenzziehungen zwischen bestimmten Personengruppen eingreifen können). Eine komplexere Simulation, die Ihre Einwände berücksichtigt, finden Sie zum Beispiel in dem Pandemie-Programm Pandemielabor.
Darüber hinaus sollten Sie bedenken, dass der - beliebig erscheinende - Kontakt aller Agenten untereinander vielleicht gar nicht so realitätsfern ist. Schon im Jahr 1967 konstatierte der amerikanische Sozialpsychologe Stanley Milgram, auf dieser Welt kenne jeder Mensch jeden anderen durchschnittlich über sechs Ecken. Seine damaligen Forschungsergebnisse, das sogenannte Kleine-Welt-Phänomen, werden inzwischen durch Untersuchungen zum Nutzerverhalten in sozialen Medien bestätigt (demnach sind es 6,6 Ecken, vgl. Jure Leskovec, Eric Horvitz 2008). Angesichts der Tatsache, dass die Menschheit offenbar so gut vernetzt ist wie seinerzeit angenommen, erscheint selbst das MiniLab mit seinen simpel modellierten Infektionswegen auf seine Weise durchaus plausibel. Über sechs Ecken kommt ein Virus zu jedem.

Welche zusätzlichen Funktionen sind in Zukunft für das MiniLab geplant?

Das Konzept des MiniLab ist ziemlich ausgereizt. Außerdem würde eine stetige Erweiterung der Programmfunktionen dem Anspruch "für Einsteiger" widersprechen. Falls Sie sich für komplexere Pandemie-Simulationen interessieren, nutzen Sie bitte das Pandemielabor. Dieses bietet sehr ausgefeilte Einstellmöglichkeiten und noch erheblich umfangreichere Optionen zur Datenanalyse.

4. Literaturverzeichnis

Kugelmeier, Frank U. (2022): Pandemielabor - Simulation von Strategien zur Eindämmung von COVID-19. Version 3.61 (12.09.2022). St.-Ursula-Gymnasium Attendorn 2020-2022. URL:

Leskovec, Jure; Horvitz, Eric (2008): Planetary-Scale Views on an Instant-Messaging Network. Cornel University, 06.03.2008, arXiv:0803.0939 [physics.soc-ph]. URL:

Milgram, Stanley (1967): The Small World Problem. In: Psychology Today, Vol.1, Nr.1 (Mai 1967), S.60-67. URL:

Stevens, Harry (2020a): Why outbreaks like coronavirus spread exponentially, and how to "flatten the curve". Washington Post, 14.03.2020. URL:, zuletzt abgerufen am 21.03.2022. Auch in deutscher Fassung:

Stevens, Harry (2020b): Warum Ausbrüche wie das Coronavirus sich exponentiell ausbreiten und wie man "die Kurvenlinie glätten" kann. Washington Post, 18.03.2020. URL:, zuletzt abgerufen am 21.03.2022.

Trajkovski, Meto (2020): Virus Spreading Simulation, 15.03.2020, Update: 07.02.2021. URL: (Quellcode) bzw. (Programm).

5. Danksagungen

Ein herzlicher Dank für die Hilfe bei den Übersetzungen des Programms geht an Cağla Dural (TR), Elif Dural (TR), Sabina Hennen (ES, PL), Francesco Monfoletto (IT), Melanie Müller (FR), Aileen Salamon (PL) und Miriam Sander (ES).

Die Zufallszahlen-Routine geht zurück auf Makoto Matsumoto, Takuji Nishimura und Sean McCullough. Vielen Dank auch hierfür!

6. Nutzungsrechte und Kontakt

Das vorliegende Programm ist inspiriert durch den am 14.03.2020 in der Washington Post erschienenen Online-Artikel "Why outbreaks like coronavirus spread exponentially" von Harry Stevens.

Programmiertechnisch geht es zurück auf die "Virus Spreading Simulation" von Meto Trajkovski (Skopje, Nord-Mazedonien), die dieser unmittelbar nach dem Erscheinen des Washington-Post-Artikels vorrangig für Mobilgeräte entwickelt hat (vgl.

Das Programm MiniLab bietet eine umfassende Überarbeitung der ursprünglichen Programmroutinen (etwa beim Zufallsgenerator und bei den veränderbaren Parametern) sowie einige wesentliche Erweiterungen (Art der Mobilität, Grenzöffnungs-Automatik, Datenexport, Sprachauswahl, Klangeffekte).

Sowohl das ursprüngliche Programm als auch das MiniLab sind unter den Bedingungen der MIT-Lizenz lizenziert. Im Einzelnen bedeutet dies unter anderem:

  • Das Programm darf weitergegeben, der Programmcode verändert werden.
  • Auch darf das Programm kommerziell genutzt werden.
  • Die Namen der ursprünglichen Programmautoren müssen genannt werden.
  • Der untenstehende Copyright-Hinweis und der zugehörige Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.

Eine Benachrichtigung der ursprünglichen Autoren bei nicht-trivialer Modifizierung des Programms ist ausdrücklich erwünscht.

Änderungen an dem Text des Handbuchs bitte nur nach Rücksprache mit dem Autor.

Bei Rückfragen wenden Sie sich bitte an die in der Lizenzdatei genannte E-Mail-Adresse ([at] steht für @).

Deutscher Text: Frank U. Kugelmeier, Attendorn
Version 3


Zum Anfang der deutschen Dokumentation.
To the beginning of the English documentation.
Cette documentation n'est actuellement disponible qu'en allemand et en anglais.
Esta documentación sólo está disponible actualmente en alemán e inglés.
Esta documentação está actualmente disponível apenas em alemão e inglês.
Questa documentazione è attualmente disponibile solo in tedesco e in inglese.
Deze documentatie is momenteel alleen beschikbaar in het Duits en Engels.
Dokumentacja ta jest obecnie dostępna tylko w języku niemieckim i angielskim.
Bu belge şu anda yalnızca Almanca ve İngilizce olarak mevcuttur.
Ĉi tiu dokumentaro nuntempe disponeblas nur en la germana kaj la angla.