BharatSim is a collaborative project between Ashoka University and ThoughtWorks, funded by the Bill & Melinda Gates Foundation.

The vision for BharatSim is to build a distributed, multi-scale agent-based model simulation framework for the scientific community, to help envision the disease spread of COVID -19 in India. It would enable modellers from various fields such as epidemiology provide useful analysis, predictions and input to policy makers in their mitigation efforts to control the COVID-19 pandemic.

BharatSim is an open source, large-scale, agent based simulation framework built to help the scientific community. Most of the real world systems are complex in nature and agent based modeling allows researchers to create models with required complexity and perform various what-if, if-what kind of scenarios to understand the behavior of the system. These models are helpful in understanding emergent phenomena and help to devise policy interventions.

The framework has two parts:

  1. Simulation engine
  2. Visualization engine

Simulation engine: Simulation engine acts as a kernel that modelers can use to specify the model and synthetic population that will act as as an approximation for real world data. This data is used as the input for the simulation engine. The engine framework exposes certain abstractions to the modelers to simplify the model specification while hiding implementation details from them. As the name suggests, the engine is supposed to support India-wide simulations with multi-million agents and their behaviours. The simulation engine uses network concepts such as nodes and relations to represent agents and their interactions. After running the simulation, the modelers would be typically interested in analyzing how the simulation progressed. The simulation engine will help modelers log the simulation progress in the desired file format.

Tech stack: Scala

Visualization engine:  The simulation engine output is difficult to be analyzed programmatically, and modelers need an ability to chart it visually. The visualization engine provides the support to read the simulation output and allows modelers to create different dashboards. Dashboard would have multiple charts and it helps modelers to analyze and draw insights. We are working on an epidemiological model to understand the spread of COVID-19 and analyze the impact of various interventions like lockdown and vaccination.

Tech stack: React, Node