Skip to main content

JAX multi-agent simulation and ML toolset

Project description


JAX Multi-Agent RL, A-Life, and Simulation Framework

Esquilax is set of transformations and utilities intended to allow developers and researchers to quickly implement models of multi-agent systems for rl-training, evolutionary methods, and a-life.

It is intended for systems involving large number of agents, and to work alongside other JAX packages like Flax and Evosax.

Full documentation can be found here

Features

  • Built on top of JAX

    This has the benefits of JAX; high-performance, built in GPU support etc., but also means Esquilax can interoperate with existing JAX ML and RL libraries.

  • Interaction Algorithm Implementations

    Implements common agent interaction patterns. This allows users to concentrate on model design instead of low-level algorithm implementation details.

  • Scale and Performance

    JIT compilation and GPU support enables simulations and multi-agent systems containing large numbers of agents whilst maintaining performance and training throughput.

  • Functional Patterns

    Esquilax is designed around functional patterns, ensuring models can be readily parallelised, but also aiding composition and readability

  • Built-in RL and Evolutionary Training

    Esquilax provides functionality for running multi-agent RL and multi-strategy neuro-evolution training, within Esquilax simulations.

Should I Use Esquilax?

Esquilax is intended for time-stepped models of large scale systems with fixed numbers of entities, where state is updated in parallel. As such you should probably not use Esquilax if:

  • You want to use something other than stepped updates, e.g. continuous time, event driven models, or where agents are intended to update in sequence.
  • You need variable numbers of entities or temporary entities, e.g. message passing.
  • You need a high-fidelity physics/robotics simulation.

Getting Started

Esquilax can be installed from pip using

pip install esquilax

The requirements for evolutionary and rl training are not installed by default. They can be installed using the evo and rl extras respectively, e.g.:

pip install esquilax[evo]

You may need to manually install JAXlib, especially for GPU support. Installation instructions for JAX can be found here.

Examples

Example models and multi-agent policy training implemented using Esquilax can be found here. A virtual environment with additional dependencies for the examples can be setup using poetry with

poetry install --extras all --with examples

For a larger project using Esquilax see this Boid flock RL environment.

or this multi-agent rl environment, part of the Jumanji RL environment library.

Contributing

Issues

Please report any issues or feature suggestions here.

Developers

Developer notes can be found here, Esquilax is under active development and contributions are very welcome!

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

esquilax-2.1.0.tar.gz (32.7 kB view details)

Uploaded Source

Built Distribution

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

esquilax-2.1.0-py3-none-any.whl (45.7 kB view details)

Uploaded Python 3

File details

Details for the file esquilax-2.1.0.tar.gz.

File metadata

  • Download URL: esquilax-2.1.0.tar.gz
  • Upload date:
  • Size: 32.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.9

File hashes

Hashes for esquilax-2.1.0.tar.gz
Algorithm Hash digest
SHA256 678bbe162dd826fe5b1428944cfc617c1cea75aa61b44fd73b764023e85efece
MD5 862d1c7167532efdadffa01a09ff6e42
BLAKE2b-256 3b2943fee8698712a4b2364f3dac41b5ff0b642da25e220a8af08d65cac08122

See more details on using hashes here.

File details

Details for the file esquilax-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: esquilax-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 45.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.9

File hashes

Hashes for esquilax-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 93f3b0465a0ea34922b500c08a49533fa1f520271da7c2b3bd23a0a7f7f6ec89
MD5 918e42af12216e111ac9daac1022fd4f
BLAKE2b-256 2bab8c03bbf7a3e2e7727182d7e288202ad324e4a0bea4606be037e9160e6020

See more details on using hashes here.

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