Agent Based Model Simulation Framework
Overview
A high-performance, flexible and extensible framework to develop continuous-time agent based models. Its high performance allows it to simulate millions of agents efficiently. Agents are defined by their states (arbitrary R lists). The events are handled in chronological order. This avoids the multi-event interaction problem in a time step of discrete-time simulations, and gives precise outcomes. The states are modified by provided or user-defined events. The framework provides a flexible and customizable implementation of state transitions (either spontaneous or caused by agent interactions), making the framework suitable to apply to epidemiology and ecology, e.g., to model life history stages, competition and cooperation, and disease and information spread. The agent interactions are flexible and extensible. The framework provides random mixing and network interactions, and supports multi-level mixing patterns. It can be easily extended to other interactions such as inter- and intra-households (or workplaces and schools) by subclassing an R6 class. It can be used to study the effect of age-specific, group-specific, and contact- specific intervention strategies, and complex interactions between individual behavior and population dynamics. This modeling concept can also be used in business, economical and political models. As a generic event based framework, it can be applied to many other fields. More information about the implementation and examples can be found at https://github.com/junlingm/ABM.
- Fixed a bug that prevented the parsingstate transitions such as list(x="a", y="b")->list("x="A", y="b").
- Fixed a possible memory leak suggested by valgrind.
- Use cached gamma random number generators to reimplement newGammaWaitingTime.
From NEWS.md in the release
Install
Health
NOTERd contentsr-devel-linux-x86_64-debian-clang, r-devel-linux-x86_64-debian-gcc
Rd files without \usage: ‘addAgent.Rd’ ‘clearEvents.Rd’ ‘getAgent.Rd’ ‘getID.Rd’ ‘getSize.Rd’ ‘getState.Rd’ ‘getTime.Rd’ ‘getWaitingTime.Rd’ ‘leave.Rd’ ‘newAgent.Rd’ ‘newConfigurationModel.Rd’ ‘newCounter.Rd’ ‘newEvent.Rd’ ‘newExpWaitingTime.Rd’ ‘newGammaWaitingTime.Rd’ ‘newPopulation.Rd’ ‘newStateLogger.Rd’ ‘schedule.Rd’ ‘setDeathTime.Rd’ ‘setState.Rd’ ‘setStates.Rd’ ‘stateMatch.Rd’ ‘unschedule.Rd’ \arguments should not be documented without \usage.
- NOTE11 OK, 2 NOTENow
- NOTE12 OK, 1 NOTE2026-07-11
- OK13 OK2026-05-02
- NOTE11 OK, 1 NOTE2026-04-25
- OK14 OK2026-04-22
- ERROR13 OK, 1 ERROR2026-04-18
Show 5 earlier changesHide 5 earlier changes
- OK14 OK2026-04-16
- NOTE13 OK, 1 NOTE2026-03-28
- OK14 OK2026-03-13
- ERROR13 OK, 1 ERROR2026-03-12
- OK14 OK2026-03-10
Documentation
- Help pages
- 32includes a package overview page
- Examples that run
- 100%4 run in a plain check
- Exported functions with examples
- 10%
- Documented parameters
- 100%
- Return-value docs
- 50%
- Help pages citing references
- 0%
Downloads
Repository
- PRs merged (all time)
- 100%
- Median days to close, 50 most recently updated closed issues
- 0
- Median days to close, 50 most recently updated closed PRs
- 0
Stars over time
Forks over time
Releases over time
Issues over time
Commits over time
Checks run against github.com/junlingm/abm on 2026-10-11.
No development-tooling practices detected in the upstream repository.
Dependencies
Code & Tests
People & History
Package metadata
- First published
- 2023-03-10
- Total releases
- 5 / 3 yrs
- License
- GPL (>= 2) OSI
- Download size
- 47 KB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("ABM")This package has no citation file, so citation() returns this entry built from DESCRIPTION.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-18, which the citation names so these numbers can be found later. More on citing and the projects behind them.