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
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.
For a larger project using Esquilax see this Boid flock RL environment.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file esquilax-1.0.3.tar.gz
.
File metadata
- Download URL: esquilax-1.0.3.tar.gz
- Upload date:
- Size: 28.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6872c2dd779aa6333b198d5dd2032fc7b2cf05d512b2c2cf4c4b15392b45c2c5 |
|
MD5 | 2d8c1b19f7e6e8037409a7a5faf2a086 |
|
BLAKE2b-256 | ebb86d4ae5519094989f4845658a3085bd5e8e7bcc0e7aaefa3e9c637982761c |
File details
Details for the file esquilax-1.0.3-py3-none-any.whl
.
File metadata
- Download URL: esquilax-1.0.3-py3-none-any.whl
- Upload date:
- Size: 39.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70acb806b6f93e2ca5d964d022b96953e5181a94d8bfc59c93e5932a0c7e6419 |
|
MD5 | a6b1630732440b526fb98b5742f8d672 |
|
BLAKE2b-256 | af5f2ac36320dd14ad8402154b126345d05b010fbe1334b77633563e634217eb |