Catalog PyPI
Back to packageRELEASE DETAILS

0.0.8

PyPI

abmax

ABM package in JAX.

abmabmaxagent-based-modelingjaxsimulation
Published9 Oct 2026
Direct dependencies2
Transitive dependenciesNot calculated

README

Version 0.0.8 documentation

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
ModelAgents.jlAbmax RMAbmax SCIMesa
Wolf-Sheep small14.9350.26726.781333.047
Wolf-Sheep large685.033315.885455.01170070.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 models102050100200500
time taken (s)5.756.817.328.528.61714.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}
}


Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 2

Native requirements
2 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
flax
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11.0",
  "evaluation": "NOT_EVALUATED"
}
flax>=0.12.8runtime
jax
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11.0",
  "evaluation": "NOT_EVALUATED"
}
jax>=0.10.2runtime

Distribution files

2 collected
abmax-0.0.8-py3-none-any.whl

bdist_wheel · 24.98 KB · Python py3

Source file
abmax-0.0.8.tar.gz

sdist · 15.87 KB · Python source

Source file

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 17:30 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:d45f2bdac65f5146e0efbe71a5aea67af0ee2ee31e879fb92d2ed04b242ca7d0

Other collected versions

View all collected versions →