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_envs
uses 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
UnityEnvironment
is not secure. - On Linux, ports are not released immediately after the communication closes.
As such, you cannot reuse ports right after closing a
UnityEnvironment
.