google-deepmind/dm_env

What is the relationship between dm_env and dm_control

DanielTakeshi opened this issue · 2 comments

Hello,

Thank you for providing an interface for reinforcement learning.

My question is, what is the relationship between the dm_env code here, and the dm_control code? The dm_env describes the environment API:

https://github.com/deepmind/dm_env/blob/master/docs/index.md

which is the same as the environment API described in dm_control. For example, the docs here:

https://github.com/deepmind/dm_control/tree/master/dm_control/suite

show that the environment stepping also produces a named tuple with step type, observation, reward, and action fields. The dm_control does not appear to need dm_env. Hence, when should I use one or the other, or both?

Thank you for your time.

Update: upon a further investigation it looks like dm_control includes dm_env:

https://github.com/deepmind/dm_control/blob/57a1a95559312e525e9af0dc4f2c1bdd5eda1bba/dm_control/rl/control.py

The above will import dm_env.

yotam commented

Hi, dm_env defines an interface only, not any specific environments (apart from the example code). dm_control implements this interface, as do some other packages containing environments, for example Spriteworld.

Thanks !