IDM builds and uses many different software tools to simulate disease transmission. Selecting the right tool for a given use case will depend on the disease in question and the particular research questions being asked.


The Starsim (or *sim) suite of agent-based models is built in Python and prioritizes usability. Starsim aims to make common tasks easy, while ensuring uncommon tasks are still doable. Starsim leverages the scientific Python ecosystem to keep the code as clear and concise as possible, while still being computationally efficient.

As the Unix wildcard character * implies, this framework can be applied to a variety of different diseases or epidemiological models. All models are open source and we encourage code contributions from those outside of IDM.


Code repository

Model documentation




Covasim docs

Covasim is a stochastic agent-based simulator for performing COVID-19 analyses. These include projections of indicators such as numbers of infections and peak hospital demand. Covasim can also be used to explore the potential impact of different interventions, including social distancing, school closures, testing, contact tracing, quarantine, and vaccination.

Family planning


FPsim docs

FPsim is designed as an open-source tool for family planning research. Its strength stems from a life-course approach, which allows researchers to examine how compounding and temporal effects unfold over women’s lives, and how these individual-level changes lead to macro-level outcomes.

Human papillomavirus (HPV)


HPVsim docs

HPVsim is a flexible agent-based model that can be parameterized with country-specific vital dynamics, structured sexual networks, co-transmitting HPV genotypes, B- and T-cell mediated immunity, and high-resolution disease natural history.

General disease framework


Starsim docs

Starsim is an agent-based disease modeling framework in which users can design and configure simulations of pathogens that progress over time within each agent and pass from one agent to the next along dynamic transmission networks. The framework explicitly supports co-transmission of multiple pathogens, allowing users to concurrently simulate several diseases while capturing behavioral and biological interactions.



SynthPops docs

Creates synthetic populations for use with the Starsim models. SynthPops can create generic populations with different network characteristics, as well as synthetic populations that interact in different layers of a multilayer contact network.


EMOD, an agent-based stochastic model built in C++, is a feature-rich model that utilizes the power of C++ to track the movement, development, health, or other traits of interest of individuals over the course of lifetimes. EMOD uses a layered hierarchy of code features to support simulating different diseases with different modes of transmission.

For example, the generic model (or simulation type) contains base functionality that all other models inherit; the vector model layers on logic for modeling disease transmitted via mosquito; and the malaria model adds functionality specific to the malaria parasite.


One key strength of EMOD is the ability to incorporate interventions aimed at controlling or eradicating disease. You can layer multiple interventions, such as bednets, insecticides, and medications, to analyze which combination is most effective at reducing malaria burden.

The private code repository for all EMOD disease models is at InstituteforDiseaseModeling/DtkTrunk. The latest public release, 2.20, is available at InstituteforDiseaseModeling/EMOD.

Disease/transmission mode

Model documentation


Contact transmission

EMOD generic docs

The generic model provides the base model functionality and transmission based on contact.



The HIV model adds human immunity, within-host viral dynamics, the effects of antiretroviral drugs, and other aspects of HIV virology to simulate HIV disease progression, testing, and treatment.


EMOD malaria docs

The malaria model inherits the functionality of the vector model and introduces human immunity, within-host parasite dynamics, effects of antimalarial drugs, and other aspects of malaria biology to simulate malaria transmission.

Tuberculosis (TBHIV)

EMOD tuberculosis docs

The TB model represents the progression of TB disease using a series of state changes as individuals progress from susceptible to latent, to active infection, and then to recovery or death. You can simulate TB transmission with or without including co-infection with HIV.


EMOD typhoid docs

The typhoid model adds the progression of typhoid, starting from susceptible then moving through the disease stages of prepatent, subclinical, acute, and chronic, with pathways for recovery and death. The duration of each stage as well as the dosage of contagion exposure can be specified.

Other models#


Code repository

Model documentation


Stochastic compartmental model


CMS docs

Compartmental Modeling Software (CMS) is a stochastic compartmental model that is simpler to configure and faster to run than an agent-based model like EMOD, while more suitable to modeling low probability events than a deterministic compartmental model.

Human resources for health



The PACE-HRH model simulates the healthcare needs of a given population so you can more effectively plan what healthcare worker resources will be necessary to provide a wide range of healthcare services. The model is configured via Excel sheets and run via an R script.

Phylogenetic data


phyloModels docs

phyloModels is a Python-based library with utilities for modeling and calibration, with emphasis on exploiting phylogenetic data.