Compatibility with Gym¶
Gymnasium provides a number of compatibility methods for a range of Environment implementations.
Loading OpenAI Gym environments¶
For environments that are registered solely in OpenAI Gym and not in Gymnasium, Gymnasium v0.26.3 and above allows importing them through either a special environment or a wrapper. The "GymV26Environment-v0"
environment was introduced in Gymnasium v0.26.3, and allows importing of Gym environments through the env_name
argument along with other relevant kwargs environment kwargs. To perform conversion through a wrapper, the environment itself can be passed to the wrapper EnvCompatibility
through the env
kwarg.
import gymnasium as gym
env = gym.make("GymV26Environment-v0", env_id="GymEnv-v1")
Gym v0.21 Environment Compatibility¶
A number of environments have not updated to the recent Gym changes, in particular since v0.21. This update is significant for the introduction of termination
and truncation
signatures in favour of the previously used done
. To allow backward compatibility, Gym and Gymnasium v0.26+ include an apply_api_compatibility
kwarg when calling make()
that automatically converts a v0.21 API compliant environment to one that is compatible with v0.26+.
import gym
env = gym.make("OldV21Env-v0", apply_api_compatibility=True)
Additionally, in Gymnasium we provide specialist environments for compatibility that for env_id
will call gym.make
.
import gymnasium
env = gymnasium.make("GymV21Environment-v0", env_id="CartPole-v1", render_mode="human")
# or
env = gymnasium.make("GymV21Environment-v0", env=OldV21Env())
Step API Compatibility¶
If environments implement the (old) done step API, Gymnasium provides both functions (gymnasium.utils.step_api_compatibility.convert_to_terminated_truncated_step_api()
) and wrappers (gymnasium.wrappers.StepAPICompatibility
) that will convert an environment with the old step API (using done
) to the new step API (using termination
and truncation
).