An API standard for multi-agent reinforcement learning environments, with popular reference environments and related utilities
This is a minor release with some minor bugfixes, improvements, documentation updates. Most notably, we have added a state
function to the multiwalker env, and fixed a bug causing wrappers to clear custom attributes from underlying environments, see https://github.com/Farama-Foundation/PettingZoo/pull/1140 for more information.
We have also added a dictionary, mapping from env name to env modules for each environment type, accessible as follows: from pettingzoo.mpe import mpe_environments
. These mapping are combined to make a list of all environments: from pettingzoo.utils.all_modules import all_environments
, both mappings containing keys such as mpe/simple_adversary_v3
. For more information, see https://github.com/Farama-Foundation/PettingZoo/pull/1155
mpe_environments
) in addition to all_environments
(https://github.com/Farama-Foundation/PettingZoo/pull/1155)This release includes contributions from: @elliottower, @ffelten, @axelbr, @shahofblah, @helpingstar and @nicku-a
Many thanks to our contributors, as well as many past contributors who have made this possible. We would also like to thank everyone who has helped out with bug reports or feature suggestions, which are critical to our development. We are always welcoming new contributors, if you are interested please join our Discord server at https://discord.gg/nhvKkYa6qX
Full Changelog: https://github.com/Farama-Foundation/PettingZoo/compare/1.24.2...1.24.3
This release includes three new tutorials from AgileRL, as well as a number of bugfixes, testing improvements, and documentation updates.
parallel_seed_test
for all envs, fix seed_test
to actually use num_cycles
arg (https://github.com/Farama-Foundation/PettingZoo/pull/1088)env.step()
, clean up code (https://github.com/Farama-Foundation/PettingZoo/pull/1087)last()
to assert agent is not None
, accounting for non-string AgentID
's (https://github.com/Farama-Foundation/PettingZoo/pull/1120)This release includes contributions from: @elliottower, @nicku-a, @mikepratt1, @xixinzhang, @umutucak, @jjshoots, @chrisyeh96, @Fernadoo, and @Kchour
Many thanks to our contributors, as well as many past contributors who have made this possible. We would also like to thank everyone who has helped out with bug reports or feature suggestions, which are critical to our development. We are always welcoming new contributors, if you are interested please join our Discord server at https://discord.gg/nhvKkYa6qX
Full Changelog: https://github.com/Farama-Foundation/PettingZoo/compare/1.24.1...1.24.2
This is a hotfix release to fix compatibility issues with Shimmy, due to an unintentional typevar deletion.
Other changes include: minor fixes to the knights_archers_zombies
environment, improved CI testing (including using pytest-xdist to utilize parallelization), and new documentation testing using pytest-markdown-docs, ensuring that every codeblock in our documentation runs successfully--including environment usage scripts.
Environment creation documentation has also improved and made more beginner-friendly. The Environment Creation Tutorial
has also been renamed to Custom Environment Tutorial
, to avoid confusion with the Getting Started section's Environment Creation
page.
Full Changelog: https://github.com/Farama-Foundation/PettingZoo/compare/1.24.0...1.24.1
This release includes support for Python 3.11, many updates to Classic environments (including updated Chess and Hanabi environment versions, and rendering for all RLCard envs), and many bugfixes, testing expansion, documentation updates.
We are also excited to announce 3 tutorials for Stable-Baselines3, updated RLlib tutorials (https://github.com/Farama-Foundation/PettingZoo/pull/1051), and an updated CleanRL multi-agent Atari tutorial including WandB and TensorBoard integration.
Co-released in order to make this release possible are SuperSuit 3.9.0 and Shimmy 1.2.0, fixing Stable-Baselines3 and OpenSpiel compatibility, respectively.
chess_v5
in favor of updated chess_v6
hanabi_v4
in favor of hanabi_v5
str
(https://github.com/Farama-Foundation/PettingZoo/pull/1071)
This release includes contributions from: @elliottower, @DmytroIvasiuk, @jacob975, @dylwil3, @Jammf, @Bamboofungus, @BertrandDecoster, @murtazarang and @pimpale.
Many thanks to our contributors, as well as many past contributors who have made this possible. We would also like to thank everyone who has helped out with bug reports or feature suggestions, which are critical to our development. We are always welcoming new contributors, if you are interested please join our Discord server at https://discord.gg/nhvKkYa6qX
Full Changelog: https://github.com/Farama-Foundation/PettingZoo/compare/1.23.1...1.24.0
This release is a small hotfix to fix compatibility issues with Shimmy and other small bugs.
test_action_flexibility()
(https://github.com/Farama-Foundation/PettingZoo/pull/986)
ParrellEnv.seed()
(https://github.com/Farama-Foundation/PettingZoo/pull/987)Full Changelog: https://github.com/Farama-Foundation/PettingZoo/compare/1.23.0...1.23.1
This release finishes the process of standardizing the PettingZoo API to fully match Gymnasium. The deprecated env.seed()
method has been removed in favor of env.reset(seed=seed)
, and the return_info
argument from reset()
has been removed—info is now always returned on reset.
New features include full support for serialization using Pickle, and updated testing: pickle tests, improved API test, and re-written seed test (matching Gymnasium). The library has also been updated to use pyproject.toml
, to make installation more consistent and reliable, and to comply with PEP 621 standards.
This release includes significant documentation updates: full installation and usage examples for each environment type (Atari, Butterfly, Classic, MPE, SISL), 9+ new third-party-environments, new action masking documentation, new LangChain tutorial, updated CleanRL, Tianshou, and RLlib tutorials, and more.
To ensure full consistency between the PettingZoo and Gymnasium API’s, the following changes have been made:
The deprecated environment seed()
method has been fully removed.
env.reset(seed=0)
The return_info
argument has been removed from the reset()
function.
reset()
will now always return observation
and info
.observation[action_mask]
or info[action_mask]
, with documentation and examples (#953)return_info
argument from reset()
(#890)aec_wrapper_fn
to match parallel_wrapper_fn
(#879)BaseParallelWraper
to BaseParallelWrapper
(fixed typo) (#876, #908)rgb_array
mode (#874)Full Changelog: 1.22.3...1.23.0
return_info
argument from reset()
by @jjshoots in #890
reset(return_info=True)
will now throw an errorFull Changelog: https://github.com/Farama-Foundation/PettingZoo/compare/1.22.3...1.22.4
to_parallel
from utils.conversions by @AndrewRWilliams in https://github.com/Farama-Foundation/PettingZoo/pull/870
Full Changelog: https://github.com/Farama-Foundation/PettingZoo/compare/1.22.2...1.22.3
Full Changelog: https://github.com/Farama-Foundation/PettingZoo/compare/1.22.1...1.22.2
Full Changelog: https://github.com/Farama-Foundation/PettingZoo/compare/1.22.0...1.22.1