|
# Unity ML-Agents Python Interface |
|
|
|
The `mlagents_envs` Python package is part of the |
|
[ML-Agents Toolkit](https://github.com/Unity-Technologies/ml-agents). |
|
`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: |
|
|
|
```sh |
|
python -m pip install mlagents_envs==0.30.0 |
|
``` |
|
|
|
## Usage & More Information |
|
|
|
See |
|
- [Gym API Guide](../docs/Python-Gym-API.md) |
|
- [PettingZoo API Guide](../docs/Python-PettingZoo-API.md) |
|
- [Python API Guide](../docs/Python-LLAPI.md) |
|
|
|
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](../docs/Readme.md). |
|
|
|
## 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 |
|
of `UnityEnvironment`. |
|
- 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`. |
|
|