A multi-agent environment inspired by the Lewis Signaling Game, featuring eight unique problem configurations with both static and dynamic obstacles.
Project description
An Extension of Multi-Agent Particle Environment
signal8 is an enhancement on top of the Simple environment, originally developed by the Farama Foundation as part of their Multi-Agent Particle Environment (MPE).
signal8
signal8 is an open-source research project aimed at advancing the development of communication strategies in multi-agent systems. The project proposes a unique environment that emphasizes the principles of the Lewis signaling game. This distinct setting serves as a testing ground for advancing robot-to-robot communication protocols.
Each problem set within signal8 introduces different constraints on entity positioning such as start points, goals, and obstacles. This dynamic aspect encourages the investigation of communication strategies in diverse settings, enhancing the environment's adaptability and realism.
A notable characteristic of signal8 is its incorporation of asymmetric information, whereby two types of agents – an 'eye in the sky' agent with global information and ground agents with only local information – operate simultaneously. This asymmetry replicates real-world situations, presenting challenges for the development of efficient communication strategies. It also provides intriguing prospects for the generation of context-dependent language and high-level directives.
For additional information on utilizing the environment API, please refer to the PettingZoo API documentation.
Installation
git clone https://github.com/ethanmclark1/signal8.git
cd signal8
pip install -r requirements.txt
pip install -e .
Usage
import signal8
env = signal8.env()
env.reset(options={'problem_instance': 'bisect'}))
observation, _, terminations, truncations, _ = env.last()
env.step(action)
env.close()
List of Problem Instances
Problem Instance | Visualization |
---|---|
bisect |
|
circle |
|
corners  |
|
cross |
|
staggered |
|
quarters |
|
stellaris |
|
scatter |
The red zones denote regions where large obstacles can be spawned, while the remaining space designates areas eligible for agent deployment, goal placement, and generation of small obstacles.
Contributing
We welcome contributions to signal8! If you're interested in contributing, you can do so in the following ways:
- Bug Reports : If you discover a bug when using signal8, please submit a report via the issues tab. When submitting an issue, please do your best to include a detailed description of the problem and a code sample, if applicable.
- Feature Requests : If you have a great idea that you think would improve signal8, don't hesitate to post your suggestions in the issues tab. Please be as detailed as possible in your explanation.
- Pull Requests : If you have made enhancements to signal8, please feel free to submit a pull request. We appreciate all the help we can get to make signal8 better!
Support
If you encounter any issues or have questions about signal8, please feel free to contact us. You can either create an issue in the GitHub repository or reach out to us directly at eclark715@gmail.com.
License
signal8 is open-source software licensed under the MIT license.
Paper Citation
If you used this environment for your experiments or found it helpful, consider citing the following papers:
Environments in this repo:
@article{lowe2017multi, title={Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments}, author={Lowe, Ryan and Wu, Yi and Tamar, Aviv and Harb, Jean and Abbeel, Pieter and Mordatch, Igor}, journal={Neural Information Processing Systems (NIPS)}, year={2017} }
Original particle world environment:
@article{mordatch2017emergence, title={Emergence of Grounded Compositional Language in Multi-Agent Populations}, author={Mordatch, Igor and Abbeel, Pieter}, journal={arXiv preprint arXiv:1703.04908}, year={2017} }
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 Signal8-5.1.1.tar.gz
.
File metadata
- Download URL: Signal8-5.1.1.tar.gz
- Upload date:
- Size: 14.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7583b7e9f0e2bcfe0ba772fbeed55617be654ec140ae6946fa0e6cec40d77cb8 |
|
MD5 | 81238e1f99b69a8cb69b6da23e43f792 |
|
BLAKE2b-256 | 81f193de365db68303d52b8084f402c2a6584b5f2f8e6288ac2cfdd57d7eb570 |
File details
Details for the file Signal8-5.1.1-py3-none-any.whl
.
File metadata
- Download URL: Signal8-5.1.1-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 233f7bcd643c0af68201c6e39ad845c12d9e476a7fa7e55ba4ddd4ecbadd94f9 |
|
MD5 | ade481c22ab9bfabb56857871dc6441e |
|
BLAKE2b-256 | 5a7d33c2d6a1fef83bdfcb2ebd1b27ecc9f6d9cd9e50253ade4364c9015e61a0 |