Skip to main content

Abmax is a general-purpose agent-based modeling(ABM) framework in Jax It provides:

  • Two algorithms to apply unique updates to a dynamic number of agents selected during run-time. Both are JIT friendly and can be vectorized across different number of models
    • Rank-Match (RM)
    • Sort-Count-Iterate (SCI)
  • JAX-transformation-friendly data structures and functions that can be used to define sets of agents and their manipulations.
    • Selecting agents based on a run-time determined key.
    • Searching and sorting agents based on their attributes.
    • Updating an arbitrary number of agents to a specific state.
    • Stepping agents in a vectorized way.
    • Running multiple such simulations in parallel.
  • Implementation of common algorithms used in ABM implemented in vmap and jit friendly way.

Paper

Preprint available here

Installation

pip install abmax

Dependencies:

Benchmark

A comparison of the performance of Abmax with other ABM frameworks: Agents.jl and Mesa based on the Wolf-Sheep (Grid space) and Bird-Flock (Continuous space) models. These simulations are run for 100 steps and the median time taken for 10 runs is logged in ms. The benchmark is run on a gcn GPU node(Intel Xeon Platinum 8360Y + Nvidia A100) of the Snelius cluster The number of initial agents for these simulations are as follows:

  • Wolf-Sheep small: 600 sheep, 400 wolves on a 100 x 100 grid
  • Wolf-Sheep large: 6000 sheep, 4000 wolves on a 1000 x 1000 grid
Model Agents.jl Abmax RM Abmax SCI Mesa
Wolf-Sheep small 14.93 50.26 726.78 1333.047
Wolf-Sheep large 685.03 3315.88 5455.01 170070.95

In Abmax, we can run multiple simulations in parallel because of automatic batching and vectorization. Here is a trend in running different numbers of wolf-sheep small models in parallel.

Number of models 10 20 50 100 200 500
time taken (s) 5.75 6.81 7.32 8.52 8.617 14.32

Note: All times that are reported, are excluding the model setup time.

Examples

tutorials in the form of Python notebooks can be found in the Example section, currently they include:

  • Finance markets
  • Traffic simulation
  • Predation model

Citation

If you use Abmax in your work, please consider citing it as follows:

@misc{chaturvedi2025abmax,
    title={Abmax: A JAX-based Agent-based Modeling Framework},
    author={Siddharth Chaturvedi and Ahmed El-Gazzar and Marcel van Gerven},
    year={2025},
    eprint={2508.16508},
    archivePrefix={arXiv},
    primaryClass={cs.MA}
}


Metadata

Release files for abmax 0.0.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for abmax 0.0.8
File Size Uploaded Provenance
abmax-0.0.8.tar.gz 16.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for abmax 0.0.8
File Interpreter ABI Platform
abmax-0.0.8-py3-none-any.whl Python 3 none any Details

Total release size: 41.8 kB

Release files / abmax-0.0.8.tar.gz

Download URL abmax-0.0.8.tar.gz
Size 16.2 kB
Tags Source
SHA-256 checksum
How to use checksums
e5c0c3987c158657013fa628af5f2fcccae8811aefc398ded8fffa4c79fe33fd
BLAKE2b-256 checksum
How to use checksums
a30ee8e025e6a081ac663c32d8cc3b8f0a07e8d2786c511fbf726159eac67cbf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.5

Release files / abmax-0.0.8-py3-none-any.whl

Download URL abmax-0.0.8-py3-none-any.whl
Size 25.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0b82dd953c5e41b19daeb340badb7431b9585442fe6c77606bb356f0f42e38da
BLAKE2b-256 checksum
How to use checksums
7bfa1112676b21da4b813d212fd413c149bbcad9b8750f0ef0927ed320eb5b67
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.5

Security for abmax 0.0.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page