1. Simulation engine
The 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.

2.Visualization engine
The simulation engine output is difficult to analyze, 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”, with multiple comparable charts in an easy-to-manipulate overlay to help modelers analyze and draw insight from complex data.

3. Synthetic Data Generation
The synthetic population represents a set of synthetic agents that share a common geographic, social or biological characteristic. For example, we can have a synthetic population for a district and they would share Census measurements of that district. Data and attributes of the synthetic agents are synthesised by integrating a diverse set of data sources(e.g., Census, IHDS, NSS etc.). This last part is critical, and involves understanding correlations between the incidence of covid with other health conditions, modelling realistic populations based on existing surveys, and extending these populations while maintaining social networks, geographic realism, and demographics, among other things.