Multi-User Gymnasium (MUG)
Multi-User Gymnasium (MUG) converts Gymnasium and PettingZoo environments into browser-based, multi-user experiments. It enables Python simulation environments to be accessed online, allowing humans to interact with them individually or alongside AI agents and other participants.
What does MUG offer?
- Same environment, training to deployment. Run user experiments in the browser against the exact same simulation environments you use to train your AI agents without any rewrites or ports.
- In-browser execution. Python environments and AI policies can run client-side for zero-latency experiences for participants. Heavier environments---or those that can't be compiled to run in the browser---can be run on the server.
- Multi-human Experiments. Built-in networking, rollback netcode, and waiting rooms for multi-participant experiments.
- Experiment orchestration. Scene flow, participant management, and data collection out of the box.
- Extensive customizability. Advanced hooks and configuration for custom rendering, matchmaking, scene logic, and more.
Get started by reading the documentation.
Installation
pip install multi-user-gymnasium[server]
Development
MUG uses uv for package management. From a cloned repository:
# Create the environment and install all dependencies (server, test, docs)
uv sync --all-extras
# Run the unit tests
uv run pytest tests/unit
# Run an example
uv run python -m examples.slime_volleyball.slimevb_human_ai
Dependencies are locked in uv.lock; after changing dependencies in
pyproject.toml, run uv lock and commit the updated lockfile.
Releasing
Bump version in pyproject.toml, then build and publish with uv:
uv build
uv publish # reads UV_PUBLISH_TOKEN or prompts for PyPI credentials
Citation
If you use MUG in your research, please cite:
@article{mcdonald2026cogrid,
title={CoGrid \& the Multi-User Gymnasium: A Framework for Multi-Agent Experimentation},
author={McDonald, Chase and Gonzalez, Cleotilde},
journal={arXiv preprint arXiv:2604.15044},
year={2026}
}
MUG in the Wild
Below are a list of projects that have used MUG. If you use it in your research, please let us know or open a PR for it to be added here.
@article{mcdonald2025controllable,
title={Controllable Complementarity: Subjective Preferences in Human-AI Collaboration},
author={McDonald, Chase and Gonzalez, Cleotilde},
journal={arXiv preprint arXiv:2503.05455},
year={2025}
}
Acknowledgements
- This project was originally inspired by the work by Carroll et al. in their Overcooked-AI demo. Most notably in the use of their Overcooked environment and assets in our examples, as well as the use of Phaser (with their client-server implementation).
Metadata
Release files for multi_user_gymnasium 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| multi_user_gymnasium-0.1.3.tar.gz | 272.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| multi_user_gymnasium-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 565.7 kB
Release files / multi_user_gymnasium-0.1.3.tar.gz
| Download URL | multi_user_gymnasium-0.1.3.tar.gz |
|---|---|
| Size | 272.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
577176cabcd36473384cf533864a27f6539c82320f28130ec887ed522dc1020e
|
|
BLAKE2b-256 checksum How to use checksums |
361218f0daa8d0cf5d7b00bf7719c24b4781dc080a5e251424def59b5cff1734
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / multi_user_gymnasium-0.1.3-py3-none-any.whl
| Download URL | multi_user_gymnasium-0.1.3-py3-none-any.whl |
|---|---|
| Size | 293.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
408a335359aa48677ca3c51b0dee6867efcd044d51509d11fa80a4e4b86f1cf2
|
|
BLAKE2b-256 checksum How to use checksums |
29bdee06a9195f3e549b246085558f78a38346a36742a6d05dad3d880c7304f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|