esquilax


Nameesquilax JSON
Version 1.0.2 PyPI version JSON
download
home_pagehttps://zombie-einstein.github.io/esquilax
SummaryJAX multi-agent simulation and ML toolset
upload_time2024-11-01 20:43:01
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/61/67/fa2d29a69b301e1f21c6321f00776b20e0c69cca73138ce6b69db0650729/esquilax-1.0.2.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": "1.0.2",
    "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": "868b0410a53f3f2e01ce3946c8ad9d54b81ce702e9d1f059d240d6da6fda7356",
                "md5": "8ba2d28a5e384176dc96aeee16eab601",
                "sha256": "9696e8cfee6206566dd41dc4c75de3982fac20924a5e6e1be6176fcf316678c2"
            },
            "downloads": -1,
            "filename": "esquilax-1.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8ba2d28a5e384176dc96aeee16eab601",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 38604,
            "upload_time": "2024-11-01T20:43:00",
            "upload_time_iso_8601": "2024-11-01T20:43:00.607230Z",
            "url": "https://files.pythonhosted.org/packages/86/8b/0410a53f3f2e01ce3946c8ad9d54b81ce702e9d1f059d240d6da6fda7356/esquilax-1.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6167fa2d29a69b301e1f21c6321f00776b20e0c69cca73138ce6b69db0650729",
                "md5": "4315e9b111caccde5b51202bb8d203b0",
                "sha256": "8a0bfecf267cc5ba04ddd67627f9c7b4f172e9fdd69f709f99fb574a81eacad4"
            },
            "downloads": -1,
            "filename": "esquilax-1.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "4315e9b111caccde5b51202bb8d203b0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 28238,
            "upload_time": "2024-11-01T20:43:01",
            "upload_time_iso_8601": "2024-11-01T20:43:01.546559Z",
            "url": "https://files.pythonhosted.org/packages/61/67/fa2d29a69b301e1f21c6321f00776b20e0c69cca73138ce6b69db0650729/esquilax-1.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-01 20:43:01",
    "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: 0.79234s