VectorizedMultiAgentSimulator  by proroklab

MARL benchmark with vectorized differentiable simulator for multi-robot scenarios

created 3 years ago
447 stars

Top 68.2% on sourcepulse

GitHubView on GitHub
Project Summary

VMAS (Vectorized Multi-Agent Simulator) is a PyTorch-based 2D physics engine and scenario suite for efficient Multi-Agent Reinforcement Learning (MARL) benchmarking. It targets researchers and practitioners needing to train and evaluate MARL algorithms in complex, multi-robot environments, offering significant speedups through PyTorch vectorization.

How It Works

VMAS features a fully differentiable 2D physics engine written in PyTorch, supporting holonomic motion, rotations, elastic collisions, joints, and custom gravity. Its core advantage lies in its vectorized implementation, allowing tens of thousands of parallel environments to run on accelerated hardware, drastically reducing MARL training times. The modular design facilitates the creation of new scenarios and custom agent dynamics.

Quick Start & Requirements

  • Install via pip: pip install vmas
  • For full functionality (Gymnasium, RLlib, rendering, testing): pip install vmas[all]
  • Additional training libraries: pip install benchmarl torchrl "ray[rllib]"==2.1.0
  • Requires PyTorch. GPU acceleration is recommended for performance.
  • Official documentation and examples: https://github.com/proroklab/VectorizedMultiAgentSimulator

Highlighted Details

  • Fully differentiable PyTorch physics engine for gradient-based MARL.
  • Vectorized simulation scales to thousands of parallel environments.
  • Compatible with OpenAI Gym, Gymnasium, RLlib, and TorchRL (including BenchMARL).
  • Supports custom sensors (LIDAR), communication, joints, and various agent dynamics (differential drive, kinematic bicycle, drone).
  • Includes ports of OpenAI MPE scenarios and a wide range of custom MARL benchmarks.

Maintenance & Community

The project is associated with the Prorok Lab at the University of Cambridge. Community interaction and support channels are not explicitly listed in the README.

Licensing & Compatibility

The repository does not explicitly state a license in the provided README. Compatibility for commercial use or closed-source linking would require clarification on licensing terms.

Limitations & Caveats

The README does not specify a license, which is a critical factor for adoption, especially for commercial use. While it mentions compatibility with various RL libraries, using these wrappers may introduce performance overhead compared to the native VMAS interface.

Health Check
Last commit

1 month ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
1
Star History
38 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.