Inspiration

Since the start of the pandemic, the government has been creating simulations to predict the events of how the disease would progress. Although we can't create something to the degree of accuracy they were able to due to a lack of data and expertise in virology, we tried to create a logical model for diseases and how exactly methods of restoration such as vaccines and cures would work within the population.

What it does

Starting with a population of healthy people (represented in green) and an infected patient (represented in red), the simulation will take you through each step of how the disease spreads, kills, and is prevented. An infected patient will attempt to spread the disease each iteration based on distance, and each infected patient will have a chance to either die or recover from the disease. Once recovered, they'll be shown with a blue border as they've obtained phase one of "immunity" which can only be amplified to phase two by a successfully developed vaccine. This works because when your body is exposed to the virus, it develops an antibody for it, which has a similar purpose as a vaccine.

How we built it

We build this web application using HTML, JavaScript, and CSS. We used Google Cloud Compute to host this onto our Domain.com-powered website, openids.tech. After spending many minutes debating which function to use to calculate the probability of a person to be infected when at a certain distance, we finally came up with the following function: f(x) = (-x^2/d^2) + 1 where x is the distance between an infected patient and a healthy human, and d is the maximum distance at which infection can occur. This is probably not an accurate function, but we worked with what we could to try to come up with one that was as realistic as possible.

Challenges we ran into

We ran into many challenges such as even the most basic of challenges: for example, using Google cloud to host our website and using the wrong variable name. Aside from that, we struggled on making an accurate yet efficient way of determining the distance between all people that are alive and on the canvas. In the end, we settled for Manhattan distance, which is less accurate but faster than Euclidean distance.

Accomplishments that we're proud of

We are proud of being able to being able to figure out how to code a half-decent web application in a language that none of us were initially familiar with. We also managed to accomplish integrating graphs into webpages with newly-generated data.

What we learned

We have learned that virtual private servers are quite difficult to set up and deploy into a production environment. Moreover, we have learned much more about asynchronous programming languages and how order of execution is very important.

What's next for Open-IDS

In the future, we are planning to implement more realistic movement into our project, such as when a person gets infected, they move to a location where they are away from other people like self-isolation. We hope that we can continue to improve this simulator, to the point where it can be used practically in order to make wise and informed decisions.

Share this project:

Updates