Unity ML-Agents Python Interface
The mlagents_envs Python package is part of the
ML-Agents Toolkit.
mlagents_envs provides three Python APIs that allows direct interaction with the
Unity game engine:
- A single agent API (Gym API)
- A gym-like multi-agent API (PettingZoo API)
- A low-level API (LLAPI)
The LLAPI is used by the trainer implementation in mlagents.
mlagents_envs can be used independently of mlagents for Python
communication.
Installation
Install the mlagents_envs package with:
python -m pip install mlagents_envs==1.1.0
Usage & More Information
See - Gym API Guide - PettingZoo API Guide - Python API Guide
for more information on how to use the API to interact with a Unity environment.
For more information on the ML-Agents Toolkit and how to instrument a Unity scene with the ML-Agents SDK, check out the main ML-Agents Toolkit documentation.
Limitations
mlagents_envsuses localhost ports to exchange data between Unity and Python. As such, multiple instances can have their ports collide, leading to errors. Make sure to use a different port if you are using multiple instances ofUnityEnvironment.- Communication between Unity and the Python
UnityEnvironmentis not secure. - On Linux, ports are not released immediately after the communication closes.
As such, you cannot reuse ports right after closing a
UnityEnvironment.