Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 93 additions & 24 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,42 @@
# LASER model documentation
# LASER

LASER (Light Agent Spatial modeling for ERadication) is a high-performance, agent-based simulation framework for modeling the spread of infectious diseases. It supports spatial structure, age demographics, and modular disease logic using Python-based components.
LASER (Light Agent Spatial modeling for ERadication) is a high-performance, agent-based simulation framework for modeling the spread of infectious diseases to better inform policy decisions. It supports spatial structure, age demographics, and modular disease logic using Python-based components. LASER can also be configured to run as a compartmental model. LASER is freely available for use under the MIT license and community contributions are welcome.

The philosophy driving the development of LASER was to create a framework that was flexible, powerful, and fast, able to tackle a variety of complex modeling scenarios without sacrificing performance. But complexity often slows performance, and not every modeling question requires a full suite of model features. To solve this problem, LASER was designed as a set of core components, each with fundamental features that could be added—or not—to build working models. Users can optimize performance by creating models tailored to their research needs, only using components necessary for their modeling question. This building-block framework enables parsimony in model design, but also facilitates the building of powerful models with bespoke, complex dynamics.
## Design principles

LASER's core principles can be summarized as follows:
The philosophy driving the development of LASER was to create a framework that was flexible, powerful, and fast, able to tackle a variety of complex modeling scenarios. But complexity often slows performance, and not every modeling question requires a full suite of model features.

- **Efficient computation**: preallocated memory, fixed-size arrays, sequential array access, and cache-friendly operations.
- **Modular design**: users define properties and add modular **components** (step functions) that run each timestep.
- **Fast**: models can be progressively optimized using **NumPy**, **Numba**, or even C/OpenMP for performance.
- **Spatial focus**: agents belong to patches (nodes), with migration modules (gravity, radiation, Stouffer’s rank, etc.) for multi-patch models.
To solve this, we designed LASER as a set of core components with fundamental features that could be added—or not—to build working models. You can optimize performance using only the components necessary for your modeling questions. This building-block framework enables parsimony in model design, but also facilitates the building of powerful models with bespoke, complex dynamics.

LASER's core principles are as follows:

<div class="grid cards" markdown>

- :octicons-cpu-16:{ .lg .middle } __Efficient computation__

---

Preallocated memory, fixed-size arrays, sequential array access, and cache-friendly operations enable the simulation of millions of agents.

- :material-vector-square-plus:{ .lg .middle } __Modular design__

---

Define properties and add modular components (step functions) that run each timestep. Use only the components needed to answer your specific questions.

- :material-map:{ .lg .middle } __Spatial focus__

---

Simulate spatial dynamics using agents that belong to patches (nodes), with migration modules (gravity, radiation, Stouffer’s rank, etc.) for multi-patch models.

- :material-rocket-launch:{ .lg .middle } __Fast and flexible__

---

Models can be progressively optimized using NumPy, Numba, or even C/OpenMP for fast performance.

</div>

## Available packages

Expand All @@ -19,34 +46,76 @@ packages. The following packages are currently available:

<div class="grid cards" markdown>

- :octicons-globe-16:{ .lg .middle } __laser-generic__
- :material-web:{ .lg .middle } __laser-generic__

---

The laser-generic framework is designed to be flexible and is composed of modular components that can be used to create custom epidemiological models. For those who want to explore disease dynamics without the need to code from scratch, the framework includes epidemiological components that are designed model diseases with non-vector transmission dynamics. These modules can be used to create anything from simple compartmental models to more complex agent-based models with spatial dynamics. This documentation also includes API reference for laser-core, the package that contains the engine and utilities used by all LASER packages.
laser-generic is a flexible, modular framework designed to simulate non-vector disease transmission. You can use laser-generic modules to create anything from simple compartmental models to more complex agent-based models with spatial dynamics. The laser-generic docs includes API reference for laser-core, the package that contains the engine and utilities used by all LASER packages.

[:octicons-arrow-right-24: laser-generic](https://laser.idmod.org/laser-generic)

- :material-emoticon-sick-outline:{ .lg .middle } __laser-measles__

---

laser-measles is a spatial epidemiological modeling toolkit that helps researchers and public health teams simulate measles transmission, evaluate vaccination strategies, and plan outbreak responses. It translates surveillance data and demographic information into projections that inform immunization planning and resource allocation—with a focus on settings where measles remains a leading cause of vaccine-preventable death.

[:octicons-arrow-right-24: laser-measles](https://laser.idmod.org/laser-measles)

</div>

## LASER roadmap
## Get started

If you want to build, calibrate, or extend LASER models, these are the entry points:

<div class="grid cards" markdown>

- :material-book-open-variant:{ .lg .middle } __Documentation__

---

Following the initial 1.0 release of LASER in late 2025, we plan to develop the framework through 2026 to deliver enhanced usability, expanded modeling capabilities, and to provide additional documentation and resources to help with building and using LASER-based health and disease models. We will continue to focus on:
The documentation for laser-generic, including API reference for both laser-generic and laser-core.

- Improving researcher experience and speed
- Releasing reference disease models for bootstrapping model development
- Developing technical foundations to accelerate high-fidelity epidemiological modeling
- Accelerating and simplifing model development and use through AI
[:octicons-arrow-right-24: Docs](https://laser.idmod.org/laser-generic/get-started/)

Although the specifics of the LASER roadmap are subject to change, in 2026, the high-level LASER release milestones include:
- :material-school:{ .lg .middle } __Tutorials__

### Q1 2026: Usability, modeling, and developer experience enhancements
---

Step-by-step tutorials for getting started with LASER.

[:octicons-arrow-right-24: Tutorials](https://laser.idmod.org/laser-generic/tutorials/)

- :material-github:{ .lg .middle } __Source code__

---

- Advanced demographics and spatial support
The LASER organization on GitHub, with source code for all models.

[:octicons-arrow-right-24: Code](https://github.com/laser-base)

- :material-source-merge:{ .lg .middle } __Contributing__

---

Guidelines for those who want to contribute to LASER development.

[:octicons-arrow-right-24: Contributing](https://laser.idmod.org/laser-generic/contribute/)

</div>

## Upcoming features

Following the initial 1.0 release of LASER in late 2025, we are focused on developing the following features:

- Improvements to speed and user experience
- Technical foundations to accelerate high-fidelity epidemiological modeling
- Advanced demographics and spatial support
- Utility functions for LaserFrames
- Broader AI support
- Additional notebooks with examples
- Documentation updates (for clarity, conciseness, and completeness)

### Q2 2026: Analysis and calibration functions
- Documentation and tutorial updates
- Analysis and calibration functions
- Reference models and metapopulation modeling (MPM) support
- Models for polio and cholera simulation

### 2H 2026: Reference models and metapop modeling (MPM) support
See what's new for [laser-generic](https://laser.idmod.org/laser-generic/whatsnew/) and [laser-measles](https://laser.idmod.org/laser-measles/whatsnew/).
14 changes: 7 additions & 7 deletions mkdocs.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
site_name: LASER landing page # update to your project name
site_name: LASER # update to your project name
site_url: https://laser.idmod.org # update to your project URL for the correct modeling framework
repo_name: laser-base.github.io # update to your repo name
repo_url: https://github.com/laser-base/laser-base.github.io # update to your repo URL
theme:
name: material
custom_dir: docs/customization/overrides
font:
font:
text: Roboto
code: Roboto Mono
logo: images/idm-logo-transparent.png
Expand All @@ -31,9 +31,9 @@ theme:
accent: light blue

nav: # Navigation structure for the documentation
- Home: index.md
- Home: index.md

# icons, semantic markup, emojis
# icons, semantic markup, emojis
markdown_extensions:
- toc:
toc_depth: 3
Expand Down Expand Up @@ -64,7 +64,7 @@ markdown_extensions:
# javascript and CSS customization
extra_javascript:
- https://unpkg.com/mathjax@3/es5/tex-mml-chtml.js
extra_css:
extra_css:
- customization/css/extra.css # custom CSS for footer spacing

plugins:
Expand All @@ -74,7 +74,7 @@ plugins:
- table-reader # enables rendering of CSV/TSV files as tables


copyright: Copyright &copy; 2025 Gates Foundation. All rights reserved.
copyright: Copyright &copy; 2026 Gates Foundation. All rights reserved.

extra:
generator: false
Expand Down Expand Up @@ -112,4 +112,4 @@ extra:
data: 0
note: >-
Thanks for your feedback! Help us improve this page by
using our <a href="https://app.smartsheet.com/b/form/ec8dbb77809949ecab7286a5ca74a206" target="_blank" rel="noopener">feedback form</a>.
using our <a href="https://app.smartsheet.com/b/form/ec8dbb77809949ecab7286a5ca74a206" target="_blank" rel="noopener">feedback form</a>.
Loading