Skip to main content

Multi-User Gymnasium (MUG)

PyPI - Version PyPI - Downloads

MUG logo

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]
Overcooked human-AI demo

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)

Source distribution for multi_user_gymnasium 0.1.3
File Size Uploaded
multi_user_gymnasium-0.1.3.tar.gz 272.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for multi_user_gymnasium 0.1.3
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page