esquilax


Nameesquilax JSON
Version 2.0.0 PyPI version JSON
download
home_pagehttps://zombie-einstein.github.io/esquilax
SummaryJAX multi-agent simulation and ML toolset
upload_time2024-12-21 20:27:42
maintainerNone
docs_urlNone
authorZombie-Einstein
requires_python<4.0,>=3.10
licenseMIT
keywords agent-based modelling simulation reinforcement-learning
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">
  <img src="https://github.com/zombie-einstein/esquilax/raw/main/.github/images/text_logo.png" />
  <br>
  <em>JAX Multi-Agent RL, A-Life, and Simulation Framework</em>
</div>
<br>

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](https://github.com/google/flax) and
[Evosax](https://github.com/RobertTLange/evosax).

**Full documentation can be found
[here](https://zombie-einstein.github.io/esquilax/)**

## 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

``` bash
pip install esquilax
```

You may need to manually install JAXlib, especially for GPU support.
Installation instructions for JAX can be found
[here](https://github.com/google/jax?tab=readme-ov-file#installation).

## Examples

Example models and multi-agent policy training implemented using Esquilax
can be found [here](https://github.com/zombie-einstein/esquilax/tree/main/examples).

For a larger project using Esquilax see this
[Boid flock RL environment](https://github.com/zombie-einstein/flock_env).

## Contributing

### Issues

Please report any issues or feature suggestions
[here](https://github.com/zombie-einstein/esquilax/issues).

### Developers

Developer notes can be found
[here](https://github.com/zombie-einstein/esquilax/blob/main/.github/docs/developers.md),
Esquilax is under active development and contributions are very welcome!


            

Raw data

            {
    "_id": null,
    "home_page": "https://zombie-einstein.github.io/esquilax",
    "name": "esquilax",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": "agent-based modelling, simulation, reinforcement-learning",
    "author": "Zombie-Einstein",
    "author_email": "zombie-einstein@proton.me",
    "download_url": "https://files.pythonhosted.org/packages/e2/cc/5452ee05ea8eb364abf25fdf63df4e7897a072614b24387a3e88a63b55c6/esquilax-2.0.0.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n  <img src=\"https://github.com/zombie-einstein/esquilax/raw/main/.github/images/text_logo.png\" />\n  <br>\n  <em>JAX Multi-Agent RL, A-Life, and Simulation Framework</em>\n</div>\n<br>\n\nEsquilax is set of transformations and utilities\nintended to allow developers and researchers to\nquickly implement models of multi-agent systems\nfor rl-training, evolutionary methods, and a-life.\n\nIt is intended for systems involving large number of\nagents, and to work alongside other JAX packages\nlike [Flax](https://github.com/google/flax) and\n[Evosax](https://github.com/RobertTLange/evosax).\n\n**Full documentation can be found\n[here](https://zombie-einstein.github.io/esquilax/)**\n\n## Features\n\n- ***Built on top of JAX***\n\n  This has the benefits of JAX; high-performance, built in\n  GPU support etc., but also means Esquilax can interoperate\n  with existing JAX ML and RL libraries.\n\n- ***Interaction Algorithm Implementations***\n\n  Implements common agent interaction patterns. This\n  allows users to concentrate on model design instead of low-level\n  algorithm implementation details.\n\n- ***Scale and Performance***\n\n  JIT compilation and GPU support enables simulations and multi-agent\n  systems containing large numbers of agents whilst maintaining\n  performance and training throughput.\n\n- ***Functional Patterns***\n\n  Esquilax is designed around functional patterns, ensuring models\n  can be readily parallelised, but also aiding composition\n  and readability\n\n- ***Built-in RL and Evolutionary Training***\n\n  Esquilax provides functionality for running multi-agent RL\n  and multi-strategy neuro-evolution training, within Esquilax\n  simulations.\n\n## Should I Use Esquilax?\n\nEsquilax is intended for time-stepped models of large scale systems\nwith fixed numbers of entities, where state is updated in parallel.\nAs such you should probably *not* use Esquilax if:\n\n- You want to use something other than stepped updates, e.g.\n  continuous time, event driven models, or where agents are intended to\n  update in sequence.\n- You need variable numbers of entities or temporary entities, e.g.\n  message passing.\n- You need a high-fidelity physics/robotics simulation.\n\n## Getting Started\n\nEsquilax can be installed from pip using\n\n``` bash\npip install esquilax\n```\n\nYou may need to manually install JAXlib, especially for GPU support.\nInstallation instructions for JAX can be found\n[here](https://github.com/google/jax?tab=readme-ov-file#installation).\n\n## Examples\n\nExample models and multi-agent policy training implemented using Esquilax\ncan be found [here](https://github.com/zombie-einstein/esquilax/tree/main/examples).\n\nFor a larger project using Esquilax see this\n[Boid flock RL environment](https://github.com/zombie-einstein/flock_env).\n\n## Contributing\n\n### Issues\n\nPlease report any issues or feature suggestions\n[here](https://github.com/zombie-einstein/esquilax/issues).\n\n### Developers\n\nDeveloper notes can be found\n[here](https://github.com/zombie-einstein/esquilax/blob/main/.github/docs/developers.md),\nEsquilax is under active development and contributions are very welcome!\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "JAX multi-agent simulation and ML toolset",
    "version": "2.0.0",
    "project_urls": {
        "Documentation": "https://zombie-einstein.github.io/esquilax",
        "Homepage": "https://zombie-einstein.github.io/esquilax",
        "Repository": "https://github.com/zombie-einstein/esquilax"
    },
    "split_keywords": [
        "agent-based modelling",
        " simulation",
        " reinforcement-learning"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8799e88b2f8fa3771ef4bac4e9639c0bd5cdf6f2b6c2b00b7966469e7710f7e0",
                "md5": "1aab592f44af34fc644e503300dccaec",
                "sha256": "bd7c71fc85cb9cd17d90245ab4b5a0b33dc89be442caa35ba8cedc33c5575c60"
            },
            "downloads": -1,
            "filename": "esquilax-2.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1aab592f44af34fc644e503300dccaec",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 45074,
            "upload_time": "2024-12-21T20:27:39",
            "upload_time_iso_8601": "2024-12-21T20:27:39.914500Z",
            "url": "https://files.pythonhosted.org/packages/87/99/e88b2f8fa3771ef4bac4e9639c0bd5cdf6f2b6c2b00b7966469e7710f7e0/esquilax-2.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e2cc5452ee05ea8eb364abf25fdf63df4e7897a072614b24387a3e88a63b55c6",
                "md5": "9f3fca187c621eb38b6eae8ffc837741",
                "sha256": "7e196af97b61391177875c9294e912d92fe75a7ca44b2d954fc49d79ec5fec61"
            },
            "downloads": -1,
            "filename": "esquilax-2.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "9f3fca187c621eb38b6eae8ffc837741",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 31914,
            "upload_time": "2024-12-21T20:27:42",
            "upload_time_iso_8601": "2024-12-21T20:27:42.193337Z",
            "url": "https://files.pythonhosted.org/packages/e2/cc/5452ee05ea8eb364abf25fdf63df4e7897a072614b24387a3e88a63b55c6/esquilax-2.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-21 20:27:42",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "zombie-einstein",
    "github_project": "esquilax",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "esquilax"
}
        
Elapsed time: 2.39863s