by JT Mudge and Sarah Robinson
Update 4/1: The productOps team was recognized as a Spotlight Project team in the Epidemiology and Science of Disease category for the Pandemic Response Hackathon out of 230 project teams that entered.
In this moment, all of our lives are consumed with the COVID-19 pandemic in some shape or form. But life’s challenges can sometimes inspire us. We all have different experiences and understandings of what we are going through. We all have a different perception of the severity of the pandemic compared to our friends in other locations. The Pandemic Spread Simulator - PaSS was built over this last weekend as part of the Pandemic Response Hackathon Challenge to help visualize what it means to shelter in place and why it is important.
What It Does
The simulation models human behavior regarding sheltering in place during a pandemic in a simulated city. We wanted people to be able to create their own simulations. It’s not perfect—it’s not a clinically accurate tool— it is the framework that we are looking to make more usable and accurate in the future. But it does solve our core mission to get people thinking more seriously about shelter in place.
How We Built It
Very quickly. We in one weekend starting on Friday and finishing 9pm Sunday night. We were constantly on chat and video and did a lot of walkthroughs of iterations. We were iterating about every two or three hours with releases.
We started by trying to model basic human behaviour. We knew not everyone had the same tendencies to leave home, so we focused on a couple of key traits; are they ill, an essential worker, do they tend to follow rules or are they a "rebel". We also took into account how strict the lock down rules were in the community, from no rules to martial law. We used standard HTML5 stacks (all front end) served on our AWS s3 account. We used easljs for our animations and canvas library as well as canvas.js for our charts. And a shout out to font-awesome for free covid-19 icons.
We researched human behavior and current available data regarding the spread and progression of the virus and illness. While we did our best with the data, we made sure that the user was able to change the settings.
As with everyone working on the coronavirus hackathon, not having enough time was the main challenge. We are all trying to understand all of the factors in play and we had to dive deep into the science of the pandemic to try to simulate what we are all experiencing.
Interpreting the data was also a challenge. There are a lot of different values and no one single source of truth. We are all trying to figure out this stuff at the same time.
We really wanted to make this interactive AND scientifically accurate, and 72 hours was not quite enough time, but we are hopeful for the future to make refinements in the future.
We have created other simulators and models before for clients and thought we could apply what we knew to the COVID-19 crisis. While our backgrounds helped, it was sobering to start to dig into the complexities of this novel situation.
"It was hard to create the simulation and test it by killing simulated people over and over. That was a surprise feeling for me since it is just a computer program after all." - JT Mudge
But the simulation worked! That was the most exciting part, to see our idea come to light even when we thought the obstacles were too high.
Where do we want to go with this? First, we would love to get a better UX and design. We would also like to get better data for our parameters, maybe have some pre-loaded templates and be able to save and share simulations.
Further work could include:
- More variable factors and tighten up the algorithms a bit. We would like a better understanding of epidemiology and have a domain expert help us with the next version of our tool.
- How an overwhelmed hospital affects the severity of the illness and the chance of survival.
- A larger scale and learn from users what they like/dislike and what they may have learned.
- A World View. Each instance of the web simulation would report the results in real time to a centralized location. A World View would be able to show active simulations from others and maybe even allow for populations to mix. That part is actually pretty easy as we have built similar models before.
- Load presets for different parts of the world and APIs into real-time environments. It could highlight access to health care and other resources.
Contact us at productOps to let us know what you think.
Simulation Was Built With