shimmy

An API conversion tool for popular external reinforcement learning environments

https://github.com/farama-foundation/shimmy

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.3%) to scientific vocabulary

Keywords

deepmind-control-suite deepmind-lab gym-environment gymnasium reinforcement-learning
Last synced: 6 months ago · JSON representation ·

Repository

An API conversion tool for popular external reinforcement learning environments

Basic Info
  • Host: GitHub
  • Owner: Farama-Foundation
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage: https://shimmy.farama.org
  • Size: 27.5 MB
Statistics
  • Stars: 173
  • Watchers: 6
  • Forks: 22
  • Open Issues: 5
  • Releases: 10
Topics
deepmind-control-suite deepmind-lab gym-environment gymnasium reinforcement-learning
Created over 3 years ago · Last pushed about 1 year ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

pre-commit Code style: black DOI

Shimmy is an API conversion tool providing Gymnasium and PettingZoo bindings for popular external reinforcement learning environments.

The documentation website is at shimmy.farama.org and we have a public discord server (which we also use to coordinate development work) that you can join here: https://discord.gg/nhvKkYa6qX

Supported APIs

OpenAI Gym

Atari Environments for OpenAI Gym

DeepMind Control

DeepMind Control: Multi-Agent

DMLab

OpenSpiel

Behavior Suite

Melting Pot

Installation and Usage

To install Shimmy from PyPI: pip install shimmy To install required dependencies for environments, specify them as follows: pip install shimmy[bsuite, atari]

Choices: gym-v21, gym-v26, atari, bsuite, dm-control, dm-control-multi-agent, openspiel, meltingpot

For development and testing:

pip install shimmy[all, testing]

At a glance

This is an example of using Shimmy to convert DM Control environments into a Gymnasium compatible environment:

```python import gymnasium as gym from shimmy.registration import DMCONTROLSUITE_ENVS

envids = [f"dmcontrol/{'-'.join(item)}-v0" for item in DMCONTROLSUITEENVS] print(envids)

env = gym.make(envids[0]) envflatten = gym.wrappers.FlattenObservation(env) print(envids[0]) print("===", env.observationspace) print("===", env.actionspace) print("---flattened ", envflatten.observationspace) print("---flattened ", envflatten.actionspace) bash ['dmcontrol/acrobot-swingup-v0', 'dmcontrol/acrobot-swingupsparse-v0', 'dmcontrol/ballincup-catch-v0', 'dmcontrol/cartpole-balance-v0', 'dmcontrol/cartpole-balancesparse-v0', 'dmcontrol/cartpole-swingup-v0', 'dmcontrol/cartpole-swingupsparse-v0', 'dmcontrol/cartpole-twopoles-v0', 'dmcontrol/cartpole-threepoles-v0', 'dmcontrol/cheetah-run-v0', 'dmcontrol/dog-stand-v0', 'dmcontrol/dog-walk-v0', 'dmcontrol/dog-trot-v0', 'dmcontrol/dog-run-v0', 'dmcontrol/dog-fetch-v0', 'dmcontrol/finger-spin-v0', 'dmcontrol/finger-turneasy-v0', 'dmcontrol/finger-turnhard-v0', 'dmcontrol/fish-upright-v0', 'dmcontrol/fish-swim-v0', 'dmcontrol/hopper-stand-v0', 'dmcontrol/hopper-hop-v0', 'dmcontrol/humanoid-stand-v0', 'dmcontrol/humanoid-walk-v0', 'dmcontrol/humanoid-run-v0', 'dmcontrol/humanoid-runpurestate-v0', 'dmcontrol/humanoidCMU-stand-v0', 'dmcontrol/humanoidCMU-run-v0', 'dmcontrol/lqr-lqr21-v0', 'dmcontrol/lqr-lqr62-v0', 'dmcontrol/manipulator-bringball-v0', 'dmcontrol/manipulator-bringpeg-v0', 'dmcontrol/manipulator-insertball-v0', 'dmcontrol/manipulator-insertpeg-v0', 'dmcontrol/pendulum-swingup-v0', 'dmcontrol/pointmass-easy-v0', 'dmcontrol/pointmass-hard-v0', 'dmcontrol/quadruped-walk-v0', 'dmcontrol/quadruped-run-v0', 'dmcontrol/quadruped-escape-v0', 'dmcontrol/quadruped-fetch-v0', 'dmcontrol/reacher-easy-v0', 'dmcontrol/reacher-hard-v0', 'dmcontrol/stacker-stack2-v0', 'dmcontrol/stacker-stack4-v0', 'dmcontrol/swimmer-swimmer6-v0', 'dmcontrol/swimmer-swimmer15-v0', 'dmcontrol/walker-stand-v0', 'dmcontrol/walker-walk-v0', 'dmcontrol/walker-run-v0'] dm_control/acrobot-swingup-v0 === Dict('orientations': Box(-inf, inf, (4,), float64), 'velocity': Box(-inf, inf, (2,), float64)) === Box(-1.0, 1.0, (1,), float64) ---flattened Box(-inf, inf, (6,), float64) ---flattened Box(-1.0, 1.0, (1,), float64) ```

See Basic Usage for more information.

Project Maintainers

Project Manager: Elliot Tower

Core Contributors: Jet Tai, Mark Towers

Maintenance for this project is also contributed by the broader Farama team: farama.org/team.

Citation

If you use Shimmy in your research, please cite: @software{jun_jet_tai_2023_8140744, author = {Jun Jet Tai and Mark Towers and Elliot Tower}, title = {{Shimmy: Gymnasium and PettingZoo Wrappers for Commonly Used Environments}}, month = jun, year = 2023, publisher = {Zenodo}, version = {v1.1.0}, doi = {10.5281/zenodo.8140744}, url = {https://doi.org/10.5281/zenodo.8140744} }

Owner

  • Name: Farama Foundation
  • Login: Farama-Foundation
  • Kind: organization
  • Email: contact@farama.org

The Farama foundation is a nonprofit organization working to develop and maintain open source reinforcement learning tools.

Citation (CITATION.cff)

cff-version: 1.2.0
title: >-
  Shimmy: Gymnasium and PettingZoo Wrappers for Commonly
  Used Environments
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Jun Jet
    family-names: Tai
    email: taijunjet@hotmail.com
    affiliation: Farama Foundation
    orcid: 'https://orcid.org/0000-0002-0455-6642'
  - given-names: Mark
    family-names: Towers
    email: mark.m.towers@gmail.com
    affiliation: Farama Foundation
    orcid: 'https://orcid.org/0000-0002-2609-2041'
  - given-names: Elliot
    family-names: Tower
    email: elliot@elliottower.com
    affiliation: Farama Foundation
    orcid: 'https://orcid.org/0000-0001-7004-8884'
identifiers:
  - type: url
    value: 'https://github.com/Farama-Foundation/shimmy'
repository-code: 'https://github.com/Farama-Foundation/shimmy'
url: 'https://shimmy.farama.org/'
abstract: >-
  Shimmy is an API conversion tool providing Gymnasium and
  PettingZoo bindings for popular external reinforcement
  learning environments.
keywords:
  - Machine Learning
  - Reinforcement Learning
  - Gymnasium
  - PettingZoo
license: MIT

GitHub Events

Total
  • Issues event: 2
  • Watch event: 35
  • Issue comment event: 2
  • Push event: 4
  • Pull request event: 5
  • Fork event: 4
  • Create event: 1
Last Year
  • Issues event: 2
  • Watch event: 35
  • Issue comment event: 2
  • Push event: 4
  • Pull request event: 5
  • Fork event: 4
  • Create event: 1

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 159
  • Total Committers: 13
  • Avg Commits per committer: 12.231
  • Development Distribution Score (DDS): 0.572
Past Year
  • Commits: 137
  • Committers: 13
  • Avg Commits per committer: 10.538
  • Development Distribution Score (DDS): 0.657
Top Committers
Name Email Commits
Jet t****t@h****m 68
Elliot Tower e****t@e****m 30
Elliot Tower 3****r 24
Mark Towers m****s@g****m 18
Jet 3****s 6
Manuel Goulão m****o@g****m 4
Feng 5****u 2
Jordan Terry j****0@g****m 2
Costa Huang c****g@o****m 1
Yi Su n****9 1
Kale-ab Tessera k****a@g****m 1
spiglerg s****g@g****m 1
Coding Cookie 1****9@q****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 31
  • Total pull requests: 99
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 6 days
  • Total issue authors: 19
  • Total pull request authors: 13
  • Average comments per issue: 2.16
  • Average comments per pull request: 1.13
  • Merged pull requests: 83
  • Bot issues: 0
  • Bot pull requests: 5
Past Year
  • Issues: 2
  • Pull requests: 4
  • Average time to close issues: N/A
  • Average time to close pull requests: 1 day
  • Issue authors: 2
  • Pull request authors: 3
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.5
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • pseudo-rnd-thoughts (7)
  • jjshoots (3)
  • KaleabTessera (2)
  • AsadJeewa (2)
  • elliottower (2)
  • oslumbers (1)
  • GaetanLepage (1)
  • realquantumcookie (1)
  • im-Kitsch (1)
  • vwxyzjn (1)
  • Melanol (1)
  • Markus28 (1)
  • marimeireles (1)
  • Trinkle23897 (1)
  • cpthoang (1)
Pull Request Authors
  • elliottower (44)
  • pseudo-rnd-thoughts (22)
  • jjshoots (10)
  • dependabot[bot] (8)
  • mgoulao (4)
  • SiddarGu (2)
  • RedTachyon (2)
  • spiglerg (1)
  • vwxyzjn (1)
  • Tanmay692004 (1)
  • realquantumcookie (1)
  • GaetanLepage (1)
  • KaleabTessera (1)
  • nuance1979 (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (8) github_actions (1)

Packages

  • Total packages: 3
  • Total downloads:
    • pypi 109,748 last-month
  • Total docker downloads: 21,947,281
  • Total dependent packages: 10
    (may contain duplicates)
  • Total dependent repositories: 143
    (may contain duplicates)
  • Total versions: 30
  • Total maintainers: 3
pypi.org: shimmy

An API conversion tool providing Gymnasium and PettingZoo bindings for popular external reinforcement learning environments.

  • Versions: 10
  • Dependent Packages: 10
  • Dependent Repositories: 143
  • Downloads: 109,748 Last month
  • Docker Downloads: 21,947,281
Rankings
Docker downloads count: 0.5%
Downloads: 1.0%
Dependent packages count: 1.0%
Dependent repos count: 1.3%
Average: 3.3%
Stargazers count: 7.1%
Forks count: 9.1%
Maintainers (3)
Last synced: 7 months ago
proxy.golang.org: github.com/Farama-Foundation/Shimmy
  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.5%
Average: 6.7%
Dependent repos count: 6.9%
Last synced: 7 months ago
proxy.golang.org: github.com/farama-foundation/shimmy
  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.5%
Average: 6.7%
Dependent repos count: 6.9%
Last synced: 7 months ago

Dependencies

.github/workflows/build-docs-dev.yaml actions
  • JamesIves/github-pages-deploy-action v4 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/build-docs-version.yaml actions
  • JamesIves/github-pages-deploy-action v4 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • dawidd6/action-get-tag v1 composite
.github/workflows/build-publish.yml actions
  • actions/checkout v3 composite
  • actions/download-artifact v2 composite
  • actions/setup-python v2 composite
  • actions/upload-artifact v2 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/build-test.yml actions
  • actions/checkout v2 composite
.github/workflows/manual-build-docs-version.yaml actions
  • JamesIves/github-pages-deploy-action v4 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/optional-test-bsuite.yml actions
  • actions/checkout v2 composite
.github/workflows/optional-test-dm-control-multiagent.yml actions
  • actions/checkout v2 composite
.github/workflows/optional-test-dm-control.yml actions
  • actions/checkout v2 composite
.github/workflows/optional-test-dm-lab.yml actions
  • actions/checkout v2 composite
.github/workflows/optional-test-meltingpot.yml actions
  • actions/checkout v2 composite
.github/workflows/optional-test-openspiel.yml actions
  • actions/checkout v2 composite
.github/workflows/pre-commit.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
docs/requirements.txt pypi
  • furo *
  • moviepy *
  • myst-parser *
  • pygame ==2.3.0
  • sphinx *
  • sphinx-autobuild *
  • sphinx_github_changelog *
  • sphinxext-opengraph *
pyproject.toml pypi
setup.py pypi
  • numpy >=1.18.0