Skip to main content

GAMMS (Graph based Adversarial Multiagent Modelling Simulator) is a Python library designed for simulating large scale multi-agent scenarios on environments represented as graphs

Project description

GAMMS v1.0.0

GAMMS (Graph based Adversarial Multiagent Modelling Simulator) is a Python library designed for simulating large scale multi-agent scenarios on environments represented as graphs. The library is a framework which focuses on providing a flexible and extensible architecture to facilitate implementing interactions between agents and the environment as well as controlling the information flow between them. The library is geared towards easing development of high level scenario dynamics and testing agent behaviours rather than low level details like the actual physics of real world interactions. GAMMS tries to solve the following problems:

  1. Run large simulations involving multiple agents on an everyday laptop.
  2. Provide a simple interface to the user to define the agents and the environment.
  3. Allow the user to work with the agents and the environment without worrying about the underlying packages.
  4. Create a simulater that is easy to use on any operating system (Windows, Mac, Linux) and is easy to install.

The uniqueness of GAMMS comes from what it is not trying to be. It is not a physics engine, game engine, deep learning library, or a reinforcement learning library. The goal of GAMMS is to provide a framework where the user can use any of these libraries to implement their own agents and environments. Other libraries like Unity, PyBullet, and OpenAI Gym are great for simulating environments but they are not designed to be used as a framework for multi-agent simulations on graphs. GAMMS is trying to address the niche use for researchers and developers who want to do a quick iterations on their ideas and test them in simulated environments that have limited interactions. GAMMS want to be a tool to create a standardized way for simulating multi-agent systems, making it easier to share and reproduce results.

Requirements

Python 3.9+ installed with pip.

Package dependecies:

  • pygame
  • shapely
  • networkx
  • cbor2
  • aenum
  • osmnx

Installation

Direct pip installation from PyPI:

pip install gamms

Installation support is directly from the source code. If you have git installed,

pip install "git+https://github.com/GAMMSim/gamms.git"

Another option is to download the source code locally and run the following command in the root directory of the project:

pip install .

Detailed installation and setup instructions are available in the Installation Guide.

Documentation

The documentation is available at GAMMS Documentation. The documentation is generated using mkdocs-materials with mike for versioning. You can do a local build by cloning the repository and serving the documentation using mkdocs. For new users, Tutorials is a good place to start.

Citation

If you use GAMMS in your work, please cite the paper:

@article{patil2026gamms,
 title={GAMMS: Graph based Adversarial Multiagent Modeling Simulator},
 author={Patil, Rohan and Malegaonkar, Jai and Jiang, Xiao and Dion, Andre and Sukhatme, Gaurav S and Christensen, Henrik I},
 journal={arXiv preprint arXiv:2602.05105},
 year={2026}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gamms-1.0.0.tar.gz (10.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gamms-1.0.0-py3-none-any.whl (80.1 kB view details)

Uploaded Python 3

File details

Details for the file gamms-1.0.0.tar.gz.

File metadata

  • Download URL: gamms-1.0.0.tar.gz
  • Upload date:
  • Size: 10.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gamms-1.0.0.tar.gz
Algorithm Hash digest
SHA256 82b125b3d0d4c4d84d8c3fc81aa9f3d98aa11881d67f24db80f32c743fd91630
MD5 45ad7383e5fe7e1c7df3ccfe06751455
BLAKE2b-256 b03fb0d9b6402e0659be9c43b0e670f050e590504d889ae20c45dd1d80a7a75a

See more details on using hashes here.

Provenance

The following attestation bundles were made for gamms-1.0.0.tar.gz:

Publisher: workflow.yaml on GAMMSim/gamms

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gamms-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: gamms-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 80.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gamms-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 68dc7811f49480e23178acb06a8ab585aee7ae76ff1468c965b7b4563ffb6d38
MD5 afb4cee634ff36a53ba6791abd66d309
BLAKE2b-256 aef09ac6bfc74733036a72f8e1b957f0a6636d46c1b33e1c48320f221886b92d

See more details on using hashes here.

Provenance

The following attestation bundles were made for gamms-1.0.0-py3-none-any.whl:

Publisher: workflow.yaml on GAMMSim/gamms

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page