An API conversion tool providing Gymnasium and PettingZoo bindings for popular external reinforcement learning environments.
Shimmy is an API conversion tool that provides bindings to convert popular external reinforcement learning environments into compatible formats for Gymnasium and PettingZoo. It solves the problem of API fragmentation by allowing researchers to use environments from sources like OpenAI Gym, DeepMind Control, and OpenSpiel through standardized interfaces.
Reinforcement learning researchers and developers who need to use diverse environments with consistent APIs, particularly those working with Gymnasium or PettingZoo.
Developers choose Shimmy because it eliminates the need for custom integration code, saving time and ensuring compatibility across a wide range of environments, all while maintaining the performance and features of the original implementations.
An API conversion tool for popular external reinforcement learning environments
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports conversions from key sources like OpenAI Gym, DeepMind Control, and OpenSpiel, as listed in the Supported APIs section, covering a wide range of RL needs.
Provides consistent Gymnasium and PettingZoo APIs across diverse environments, simplifying codebases as shown in the At a Glance example with DM Control.
Available on PyPI with optional dependencies (e.g., `pip install shimmy[bsuite, atari]`), making setup straightforward and modular.
Backed by the Farama Foundation with core contributors and a public Discord, ensuring ongoing updates and support, as noted in the Project Maintainers section.
Each binding requires installing the original environment library (e.g., DM Control, Melting Pot), which can be tricky due to system-specific setups or version conflicts.
Adds an API translation layer that may introduce subtle bugs or performance penalties compared to using environments natively, especially in high-frequency simulations.
Only covers a fixed set of external environments; new or less common APIs aren't supported, forcing custom integration work for unsupported cases.