R0 basic reproduction number
Number of secondary cases produced by a single infected individual, assuming the population is not vaccinated.
latent period
days Period between exposure and the onset of infection, not necessary the same as the incubation period.
infection duration
days Period during which infection may be transferred to another individual, does not always coincide with clinical symptoms.
case fatality rate
% Percent of deaths from the infection to the total number of diagnosed cases.
vaccination rate
% Percent of population vaccinated, naturally immune or protected against disease in any other way.
population density
% Percent of surface populated. 100% means a typical densitiy in a large city. To simulate disease spreading in a less populated area, pull density down.
interaction radius
Size of social circle. It is not the number of individuals one is in contact with (that's included in R0), but rather physical distance, how far the contacts are. Pull down to simulate social isolation.
initially infected
Number of infected people at the begining of simulation.
population size
Model dimensions, total size of simulated population.
update frequency
fps Execution speed, number of simulation cycles per second.


Outbreak simulator


This is a simple disease spreading simulation. The intent is to be an educative and learning tool, to present in a graphical way how disease spreading is related to various medical and social parameters. As the result may not be numerically precise, it is not suitable for scientific research or numeric forecast. However, it correctly displays dependencies between parameters and outbreak rate. It works best on PC and tablet, mobile screen is generally too small. It should work with any modern browser.


Set parameters, start simulation and watch the progress. Then change something and start again. You may also choose one of the available presets. Most parameters can be changed while the simulation is running. To adjust parameter precisely, first press the mouse button, then use the arrow keys. Here are a few ideas to explore:

Case 1: herd immunity

Set default parameters, set vaccination rate to the herd immunity level (1-1/R0), then check what happens when rate is slightly higher or slightly lower.

Case 2: social isolation

Set default parameters and play with the interaction radius. Note how more contacts gives exponential growth, while less contacts gives lower, flatten curve.

Case 3: latency and duration

Set default parameters and play with latency and disease time, check how it affects the spread rate.

Case 4: mortality

Set high mortality rate, check how it slows down the epidemic. High mortality is equally bad for the virus, as it is bad for the host.


Simulator is executed locally, inside the browser. Everybody has it's own copy, no data is shared. As it is obvious from the design, it uses the cellular automata concept. Implemented disease model is EVSLIRD: unpopulated, vaccinated, susceptible → latent → infectious → recovered or deceased. For more details, check the source code.


This software is free to use, copy, modify and improve in any way you like. If you find it interesting, I'll be glad to hear from you.

xamxr.skxjxnex@gmail.com (replace x's with dirac letters)