As an interactive simulation of a contagious disease's spread throughout a real-life area (modelled after downtown Toronto) with user-adjustable variables, Contagion Simulator allows the user to investigate and compare the effects of different human factors on the spread of the disease throughout the population, such as the total number of infected, the maximum number of infected at one time, and the death count. This can give the user a basic understanding of how each factor affects the spread and social effect of the disease; for example, even a small percentage of social distancing noncompliance could significantly extend the epidemic, infecting more people and causing more deaths, highlighting the importance of adhering to social distancing.
As a result, Contagion Simulator addresses the challenge of identifying human factors by constructing a framework for the user to experiment around in and find them, and helps act as a rudimentary way to develop hypotheses about what approaches should be taken to combat epidemics like COVID-19, and to limit their spread in densely populated cities.
We were inspired to make this simulator by 3blue1brown's video Simulating an Epidemic, which demonstrated simple simulations of the SIR epidemic model and its spread throughout a population. We wanted to extend this idea beyond entities in a vacuum, apply it to a real-life area, and allow for user control over different variables in the simulation, and so the idea behind Contagion Simulator was born.
We first approached the task of creating such a simulation by discussing and writing down, as a group, what we wanted out of the simulation before writing any code. After establishing what we wanted the simulation to look like and what factors we wanted to target in the simulation, we got to work deciding on a city whose scale fit the one we were looking at and had adequate COVID-19-relevant data, only after which we began discussing and coming up with more specific mechanics and began coding.
NASA's SEDAC data on the distribution of COVID-19 cases worldwide and on population density in/around the simulated area (downtown Toronto) was used to estimate constants such as the mortality rate of COVID-19 and to appropriately distribute population within the simulated area.
Our simulation was coded entirely in Unity, with C# used for the scripts. To coordinate efforts on coding the simulation, a GitHub repository was set up between all team members.