GitPedia
Farama-Foundation

Farama-Foundation/Shimmy

An API conversion tool for popular external reinforcement learning environments

11 Releases
Latest: 2mo ago
Shimmy 2.0.1v2.0.1Latest
pseudo-rnd-thoughtspseudo-rnd-thoughts·2mo ago·April 10, 2026
GitHub

The last Shimmy release was nearly 18 months ago, this release primarily add explicit support python 3.10 to 3.14 versions and a **Full Changelog**: https://github.com/Farama-Foundation/Shimmy/compare/v2.0.0...v2.0.1

Shimmy 2.0.0v2.0.0
pseudo-rnd-thoughtspseudo-rnd-thoughts·2y ago·May 21, 2024
GitHub

This release updates Shimmy to support Gymnasium `>= 1.0.0a1`. Most importantly, this affects how environments are registered using Shimmy and Atari is now removed (don’t worry, [ale-py](https://github.com/Farama-Foundation/Arcade-Learning-Environment) now natively supports Gymnasium so there is just no need for Shimmy to do this anymore). In Gymnasium `< 1.0`, python modules could configure themselves to be loaded on `import gymnasium` removing the need for `import shimmy`, however, behind the scenes, this caused significant issues. Therefore, the development team took the decision to remove this feature from Gymnasium `v1.0`. Moving forward, using Shimmy, users must `import shimmy` for environments to be registered to then be created. For example, ```python import gymnasium as gym import shimmy # this is now necessary gym.register_envs(shimmy) # unnecessary but prevents IDEs from complaining env = gym.make("dm_control/swingup-v0", render_mode="human") obs, info = env.reset() episode_over = False while not episode_over: action = policy(obs) # replace with actual policy obs, reward, terminated, truncated, info = env.step(action) episode_over = terminated or truncated env.close() ``` **Full Changelog**: https://github.com/Farama-Foundation/Shimmy/compare/v1.3.0...v2.0.0

Shimmy 1.3.0v1.3.0
elliottowerelliottower·2y ago·October 17, 2023
GitHub

📦 Shimmy 1.3.0 Release Notes:

  • This release updates Shimmy's Melting Pot wrapper to use Melting Pot's [pypi release](https://pypi.org/project/dm-meltingpot/), and includes a minor rendering bugfix for dm_control,
  • Note: Melting Pot requires python version >= 3.10, please upgrade your python installation if you intend to use this wrapper

💥 Breaking Changes

  • `install_melting_pot.sh` has been removed, as it is no longer necessary for installation because we are using Melting Pot's pypi release
  • To install all required dependencies, simply run `pip install shimmy[meltingpot]`

New Features and Improvements

  • Update Melting Pot wrapper to use pypi release (https://github.com/Farama-Foundation/Shimmy/pull/111)

🐛 Bug Fixes

  • Fix dm_control rendering bug when human mode is used by (https://github.com/Farama-Foundation/Shimmy/pull/104)

📦 Contributors

  • @elliottower, @pseudo-rnd-thoughts, @spiglerg @KaleabTessera
  • Full Changelog: https://github.com/Farama-Foundation/Shimmy/compare/v1.2.1...v1.3.0
Shimmy 1.2.1v1.2.1
elliottowerelliottower·2y ago·July 21, 2023
GitHub

📦 Shimmy 1.2.1 Release Notes:

  • This is a minor hotfix which solves an issue where the Melting Pot dockerfile was not running successfully, leading to CI failures and making our install scripts fail.

🐛 Bug Fixes

  • Fix meltingpot dockerfile (https://github.com/Farama-Foundation/Shimmy/pull/102)
  • Fix meltingpot install script (https://github.com/Farama-Foundation/Shimmy/pull/103)
  • Full Changelog: https://github.com/Farama-Foundation/Shimmy/compare/v1.2.0...v1.2.1
Shimmy 1.2.0v1.2.0
elliottowerelliottower·2y ago·July 21, 2023
GitHub

💥 Breaking Changes

  • Python 3.7 has reached its end of life support ([link](https://endoflife.date/python)), therefore, we have dropped support for it in favor of 3.11.
  • Observation spaces and action spaces in OpenSpiel wrapper are now indexed by agent name, rather than agent ID, to match PettingZoo
  • This brings the wrapper to fully match PettingZoo's environment format, enabling easier usage with wrappers and external training libraries

New Features and Improvements

  • Python 3.11 support has been added (https://github.com/Farama-Foundation/Shimmy/pull/100)
  • Update pre-commit config to match Gymnasium (https://github.com/Farama-Foundation/Shimmy/pull/99)
  • CI now ensures proper formatting for toml and yml files, checks that shell scripts have shebangs and can be executed, etc.

🐛 Bug Fixes

  • OpenSpiel wrapper: fix obs/action space, seeding, and reset config (https://github.com/Farama-Foundation/Shimmy/pull/96)
  • OpenSpiel wrapper: fix calling reset() with no seed, make obs/act spaces fully match PettingZoo (https://github.com/Farama-Foundation/Shimmy/pull/97)

📝 Documentation Updates

  • Add badges: pre-commit, black, DOI badge from Zenodo (https://github.com/Farama-Foundation/Shimmy/pull/95)
  • Fix documentation for installing multiple extras to be correct syntax (https://github.com/Farama-Foundation/Shimmy/pull/93)
  • Full Changelog: https://github.com/Farama-Foundation/Shimmy/compare/v1.1.0...v1.2.0
Shimmy 1.1.0v1.1.0
elliottowerelliottower·3y ago·June 15, 2023
GitHub

📦 **Shimmy 1.1.0 Release Notes:**

  • This is a small bug fix release which fixes rendering issues in the dm-control compatibility wrapper.

💥 Breaking changes

  • The dm-control compatibility environment used the `env.control_timesteps()` for the render frames per second (`render_fps`), however, this value is the interval between actions per seconds, i.e., `0.04`. This was fixed to be the actual `fps`, by multiplying by 1000. (https://github.com/Farama-Foundation/Shimmy/pull/91)
  • A `dt` attribute was added to the dm-control compatibility environment that is equivalent to the mujoco environment `dt` attribute. (https://github.com/Farama-Foundation/Shimmy/pull/91)
  • Modified the rendering in dm-control compatibility, removing `render_height`, `render_width`, `camera_id` and `scene_callback` in favor of `render_kwargs`. (https://github.com/Farama-Foundation/Shimmy/pull/92)
  • As such users should specify kwargs in the dm-control engine render function, i.e., `height`, `width`, `camera_id` and `scene_callback`.
  • Additionally, this will use the default dm-control arguments unless overridden by the user `render_kwargs`.
  • Full Changelog: https://github.com/Farama-Foundation/Shimmy/compare/v1.0.1...v1.1.0
Shimmy 1.0.1v1.0.1
elliottowerelliottower·3y ago·May 24, 2023
GitHub

🐛 **Bug Fixes**

  • Update DM control multi agent and melting pot to PettingZoo 1.23.0 API, fix seeding (https://github.com/Farama-Foundation/Shimmy/pull/87)
  • Update OpenSpiel to PettingZoo 1.23.0 API, fix API test & seeding (https://github.com/Farama-Foundation/Shimmy/pull/80)
  • Fix setup.py for gym v21 (https://github.com/Farama-Foundation/Shimmy/pull/88)

📝 **Documentation Updates**

  • Allow users to view source code of referenced objects on the website (https://github.com/Farama-Foundation/Shimmy/pull/78)
  • Add text logo to homepage, matching other Farama sites (https://github.com/Farama-Foundation/Shimmy/pull/79)
  • Fix homepage mobile images being squished (https://github.com/Farama-Foundation/Shimmy/pull/81)
  • Fix typo on homepage image grid (https://github.com/Farama-Foundation/Shimmy/pull/86)
  • Create CITATION.cff to allow easier citation of the repository (https://github.com/Farama-Foundation/Shimmy/pull/83)
  • Full Changelog: https://github.com/Farama-Foundation/Shimmy/compare/v1.0.0...v1.0.1
Shimmy 1.0.0: Shimmy Becomes Maturev1.0.0
elliottowerelliottower·3y ago·April 25, 2023
GitHub

📦 Single-agent (Gymnasium wrappers):

  • [Arcade Learning Environments](https://github.com/mgbellemare/Arcade-Learning-Environment)
  • [DeepMind Behavior Suite](https://shimmy.farama.org/contents/bsuite/)
  • [DeepMind Control](https://github.com/deepmind/dm_control/)
  • [DeepMind Lab](https://github.com/deepmind/lab)
  • [OpenAI Gym](https://github.com/openai/gym) - [V21](https://github.com/openai/gym/releases/tag/v0.21.0)
  • [OpenAI Gym](https://github.com/openai/gym) - [V26](https://github.com/openai/gym/releases/tag/0.26.0) (breaking API change)

📦 Multi-agent (PettingZoo wrappers):

  • [DeepMind OpenSpiel](https://github.com/deepmind/open_spiel)
  • [DeepMind Control: Soccer](https://github.com/deepmind/dm_control/blob/main/dm_control/locomotion/soccer/README.md)
  • [DeepMind Melting Pot](https://github.com/deepmind/meltingpot)
  • Single-agent environments can be easily loaded using Gymnasium’s [registry ](https://gymnasium.farama.org/api/registry/)and `make()` function as follows:
  • ```python
  • import gymnasium as gym
  • env = gym.make("dm_control/acrobot-swingup_sparse-v0", render_mode="human")
  • ```
  • + 5 more

💥 Breaking Changes

  • `OpenspielCompatibilityV0` has been renamed to `OpenSpielCompatibilityV0` (correct spelling of [OpenSpiel](https://github.com/deepmind/open_spiel))
  • Since the v0.21.0 release, the `setup.py` has been updated to include separate install options for gym V21 and V26:
  • Instead of `pip install shimmy[gym]`, you must select either: `pip install shimmy[gym-v21]` or `pip install shimmy[gym-v26]`

New Features and Improvements

  • This release adds support for three additional environments:
  • [DeepMind Lab](https://github.com/deepmind/lab) (single-agent)
  • [DeepMind Behavior Suite](https://shimmy.farama.org/contents/bsuite/) (single-agent)
  • [DeepMind Melting Pot](https://github.com/deepmind/meltingpot) (multi-agent)
  • [/scripts/install_dm_lab.sh](https://github.com/Farama-Foundation/Shimmy/blob/main/scripts/install_dm_lab.sh)
  • [/scripts/install_melting_pot.sh](https://github.com/Farama-Foundation/Shimmy/blob/main/scripts/install_melting_pot.sh)

🐛 Bug Fixes and Documentation Updates

  • Full example usage scripts are now provided for each environment, allowing users to easily load and interact with an environment without prior knowledge.
  • Example: run a `dm-control` environment:
  • ```python
  • observation, info = env.reset(seed=42)
  • for _ in range(1000):
  • action = env.action_space.sample() # this is where you would insert your policy
  • observation, reward, terminated, truncated, info = env.step(action)
  • if terminated or truncated:
  • + 4 more
v0.2.1
pseudo-rnd-thoughtspseudo-rnd-thoughts·3y ago·February 17, 2023
GitHub

🐛 Bug Fixes

  • Fixed dm-control step termination and truncation, previously this was the opposite of the specification by @pseudo-rnd-thoughts and @ottofabianin in https://github.com/Farama-Foundation/Shimmy/pull/30
  • Check if the default wrappers exist before stripping for compatibility with Gym `v0.21` by @nuance1979 in https://github.com/Farama-Foundation/Shimmy/pull/34
  • Update the list of dm-control environments for 1.0.10 to include humanoid-cmu talk by @pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Shimmy/pull/36
  • Remove warning that `GymV22Environment` and `GymV26Environment` are overwritten and change `V22` to `V21` in the `GymV22Environment` by @pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Shimmy/pull/29
  • Bump ale-py to `v0.8.1` which includes a number of bug fixes by @pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Shimmy/pull/37/. For all the changes, read the [release notes](https://github.com/mgbellemare/Arcade-Learning-Environment/releases/tag/v0.8.1).
  • Finally, @jjshoots and @SiddarGu updated the documentation in https://github.com/Farama-Foundation/Shimmy/pull/28 and https://github.com/Farama-Foundation/Shimmy/pull/25 respectively.
  • Full Changelog: https://github.com/Farama-Foundation/Shimmy/compare/v0.2.0...v0.2.1
v0.2.0
pseudo-rnd-thoughtspseudo-rnd-thoughts·3y ago·December 14, 2022
GitHub

📋 Changes

  • Add some friendly docs on how to get started by @vwxyzjn in https://github.com/Farama-Foundation/Shimmy/pull/20
  • Update gym compatibility environment names by @pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Shimmy/pull/16
  • Add dm-lab (no tests yet) and dm-control-multiagent by @jjshoots in https://github.com/Farama-Foundation/Shimmy/pull/7
  • Add `__getattr__` to Gym compatibility env to fix atari preprocessing issue, add registration of dm-lab compatibility environment. by @pseudo-rnd-thoughts in https://github.com/Farama-Foundation/Shimmy/pull/22

New Contributors

  • @vwxyzjn made their first contribution in https://github.com/Farama-Foundation/Shimmy/pull/20
  • Full Changelog: https://github.com/Farama-Foundation/Shimmy/compare/v0.1.0...v0.2.0
v0.1.0 (Initial release)v0.1.0
pseudo-rnd-thoughtspseudo-rnd-thoughts·3y ago·November 12, 2022
GitHub

📋 Changes

  • OpenAI Gym: We provide compatibility environments for V22 and V26 environments, `GymV22Environment-v0` and `GymV26Environment-v0`
  • dm-control: suite, manipulation and locomotion (currently the soccer environments are not supported)
  • atari: As ale-py had not added gymnasium support yet, shimmy adds the `AtariEnv` with a couple of very minor changes that are backward compatible with the gym environments.
  • openspiel: We support a large number of the environments, however not all of them