Skip to content

Releases: arm-2-lab/MARL-BattleGrounds

MARL-BattleGrounds 1.0.1

Choose a tag to compare

@Ulixes-8 Ulixes-8 released this 10 Oct 21:45

Install

pip install "marl-battlegrounds[all]"            # CPU
pip install "marl-battlegrounds[all,cuda13]"     # NVIDIA GPU, driver 580 or newer
docker run --rm -it -p 127.0.0.1:8765:8766 -p 127.0.0.1:8767:8768 -v "${PWD}:/work" ghcr.io/arm-2-lab/marl-battlegrounds:1.0.1

1.0.0 can no longer download the released models; install 1.0.1. The Hugging Face
repositories were re-released without local folder paths, and their history was replaced.

What's New

  • A new home. The repository, the Docker images and every link now live under
    arm-2-lab.
  • Released models, re-released. The six Season 0 models and the results dataset on
    Hugging Face carry no local folder paths, and
    this release loads them at their new revisions by name.
  • A walkthrough notebook. examples/quickstart.ipynb
    shows the API with a drawn game, the speed, a short training run and the trained Season 0
    teams. It opens in Colab; a run in Colab itself is not tested yet for this release.
  • Leaderboard entries. python -m marl_battlegrounds entry new, entry check and
    entry submit start, check and submit a leaderboard entry; training.current_choice
    names the checkpoint a run would submit.
  • Install claims, tested. This release's dry run installs and evaluates a released model on
    Linux (x86_64 and ARM) and an Apple Silicon Mac, each with Python 3.12, 3.13 and 3.14, and
    checks the oldest supported Linux, Podman and Apptainer. The Linux floor is glibc 2.28
    (the install guide said 2.27, which was wrong on ARM).
  • The paper. The README and CITATION.cff cite the MARL-BattleGrounds paper.
  • A tidier tree. Examples sit in topic folders (your_method/, training/, evaluate/,
    tournaments/, play/), the benchmarks in scripts/dev/benchmarks/, and the tests in
    topic subfolders. Behavior and every public name are unchanged.

Changed Import Paths

Every name you import from marl_battlegrounds or marl_battlegrounds.evaluation is
unchanged. Thirty-six internal modules moved into private folders, so these deep paths no
longer import (pickles of their classes stop loading; nothing in MARL-BGs pickles them):

1.0.0 path 1.0.1 path (private)
marl_battlegrounds.evaluation._asset_commands marl_battlegrounds.evaluation._tournaments._asset_commands
marl_battlegrounds.evaluation.actor_projection marl_battlegrounds.evaluation._replays.actor_projection
marl_battlegrounds.evaluation.canonical marl_battlegrounds.evaluation._tournaments.canonical
marl_battlegrounds.evaluation.canonical_results marl_battlegrounds.evaluation._tournaments.canonical_results
marl_battlegrounds.evaluation.capture marl_battlegrounds.evaluation._recording.capture
marl_battlegrounds.evaluation.collection_types marl_battlegrounds.evaluation._recording.collection_types
marl_battlegrounds.evaluation.controller_names marl_battlegrounds.evaluation._replays.controller_names
marl_battlegrounds.evaluation.episode_metrics marl_battlegrounds.evaluation._metrics.episode_metrics
marl_battlegrounds.evaluation.evaluation_capture marl_battlegrounds.evaluation._recording.evaluation_capture
marl_battlegrounds.evaluation.events marl_battlegrounds.evaluation._recording.events
marl_battlegrounds.evaluation.full_metrics marl_battlegrounds.evaluation._metrics.full_metrics
marl_battlegrounds.evaluation.map_identity marl_battlegrounds.evaluation._recording.map_identity
marl_battlegrounds.evaluation.metrics marl_battlegrounds.evaluation._metrics.metrics
marl_battlegrounds.evaluation.population_selection marl_battlegrounds.evaluation._tournaments.population_selection
marl_battlegrounds.evaluation.pov marl_battlegrounds.evaluation._replays.pov
marl_battlegrounds.evaluation.recording_checkpoint marl_battlegrounds.evaluation._recording.recording_checkpoint
marl_battlegrounds.evaluation.recording_context marl_battlegrounds.evaluation._recording.recording_context
marl_battlegrounds.evaluation.recording_types marl_battlegrounds.evaluation._recording.recording_types
marl_battlegrounds.evaluation.reducers marl_battlegrounds.evaluation._metrics.reducers
marl_battlegrounds.evaluation.replay marl_battlegrounds.evaluation._replays.replay
marl_battlegrounds.evaluation.replay_capture marl_battlegrounds.evaluation._replays.replay_capture
marl_battlegrounds.evaluation.replay_recording marl_battlegrounds.evaluation._replays.replay_recording
marl_battlegrounds.evaluation.replay_v2 marl_battlegrounds.evaluation._replays.replay_v2
marl_battlegrounds.evaluation.replay_v3 marl_battlegrounds.evaluation._replays.replay_v3
marl_battlegrounds.evaluation.replay_v4 marl_battlegrounds.evaluation._replays.replay_v4
marl_battlegrounds.evaluation.sampling_evidence marl_battlegrounds.evaluation._recording.sampling_evidence
marl_battlegrounds.evaluation.scalar_reports marl_battlegrounds.evaluation._metrics.scalar_reports
marl_battlegrounds.evaluation.tournament marl_battlegrounds.evaluation._tournaments.tournament
marl_battlegrounds.evaluation.tournament_evidence marl_battlegrounds.evaluation._tournaments.tournament_evidence
marl_battlegrounds.evaluation.tournament_execution marl_battlegrounds.evaluation._tournaments.tournament_execution
marl_battlegrounds.evaluation.tournament_headlines marl_battlegrounds.evaluation._tournaments.tournament_headlines
marl_battlegrounds.evaluation.tournament_inputs marl_battlegrounds.evaluation._tournaments.tournament_inputs
marl_battlegrounds.evaluation.tournament_records marl_battlegrounds.evaluation._tournaments.tournament_records
marl_battlegrounds.evaluation.tournament_schedule marl_battlegrounds.evaluation._tournaments.tournament_schedule
marl_battlegrounds.evaluation.validation marl_battlegrounds.evaluation._recording.validation
marl_battlegrounds.evaluation.wire_shapes marl_battlegrounds.evaluation._replays.wire_shapes

Also

  • GitHub Actions updated (checkout 7, setup-node 7, upload-artifact 7, download-artifact 8,
    setup-uv 10.3).
  • The notebook extra installs ipywidgets, so the notebooks' progress bars work.

MARL-BattleGrounds 1.0.0

Choose a tag to compare

@Ulixes-8 Ulixes-8 released this 10 Oct 03:02

MARL-BattleGrounds 1.0.0 is the first release: the JAX-native benchmark for heterogeneous and competitive multi-agent reinforcement learning, on PyPI, Hugging Face and GitHub's container registry.

Install

pip install "marl-battlegrounds[all]"           # CPU
pip install "marl-battlegrounds[all,cuda13]"    # NVIDIA GPU, driver 580 or newer

Or one command from the source archive (sh start.sh), or Docker
(ghcr.io/oceansystemslab/marl-battlegrounds:1.0.0, and 1.0.0-cuda12 for NVIDIA).
Every route is in the install guide.
The constraints files attached below pin every dependency to the tested versions,
one file per GPU choice: pip install -c constraints-cuda13.txt "marl-battlegrounds[all,cuda13]".

What Is In 1.0.0

  • Team Deathmatch on 52 maps with five classes, eight hand-made scenarios, and
    thousands of games at once on one GPU.
  • Six built-in learners (recurrent and feedforward MAPPO and IPPO, QMIX, PQN-VDN),
    evaluation, tournaments with Elo ratings, metrics, replays, the Replay Viewer and
    the BattleClient.
  • The six trained Season 0 models, with every save from 0 to 250 million steps, load
    by name: marl_bgs.load_method("MARL-BattleGrounds/tdm-season-0-qmix@final").
  • Short guides in docs/, a generated API index, runnable examples, and the paper's
    commands and results in scripts/paper_experiments/.

Python

Python 3.12, 3.13 and 3.14 are supported; 3.14 is recommended. Extending a saved
training run needs the exact Python and library versions it recorded (Python 3.14.5
for the released models). Canonical tournaments and adding games to a saved tournament
need Python 3.14.

Changes For Earlier Checkouts

  • marl_battlegrounds.policies.scripted (an empty placeholder package) is removed.
  • The interop extra is removed; nothing used it. New extras: all, cuda12, rocm, tpu.
  • The paper's result tables moved from the package to scripts/paper_experiments/results/.
  • Tests live in folders that mirror the package.

Not Tested Yet

Windows through WSL2, Docker Desktop, and Colab and Kaggle are supported routes that
have not been tested end to end yet; the README's install table marks them.