proroklab/VectorizedMultiAgentSimulator

VMAS is a vectorized differentiable simulator designed for efficient Multi-Agent Reinforcement Learning benchmarking. It is comprised of a vectorized 2D physics engine written in PyTorch and a set of challenging multi-robot scenarios. Additional scenarios can be implemented through a simple and modular interface.

What it solves

VMAS addresses the computational bottleneck in Multi-Agent Reinforcement Learning (MARL) benchmarking. Traditional physics engines are often too heavy to scale efficiently when simulating thousands of parallel environments with multiple interacting agents, which slows down the collection of training rollouts.

How it works

VMAS is a vectorized, fully-differentiable 2D physics engine built entirely in PyTorch. It uses tensor operations to simulate agents and landmarks, allowing it to run tens of thousands of parallel environments on accelerated hardware (GPUs). It employs holonomic motion models by default to focus on high-level multi-robot problem solving rather than low-level control, though it supports custom dynamics like differential drive, kinematic bicycle, and drone models.

Who it’s for

It is designed for researchers and developers in the MARL and robotics communities who need a fast, scalable environment to train and benchmark collective robot learning algorithms.

Highlights

  • High Scalability: Vectorization allows for massive parallelization across environments on GPUs.
  • Differentiable: Supports gradients flowing from output to input, enabling gradient-based optimization.
  • Broad Compatibility: Out-of-the-box wrappers for Gymnasium, RLlib, TorchRL, and OpenAI Gym.
  • Rich Physics Features: Supports elastic collisions, customizable gravity, joints, and various entity shapes (spheres, boxes, lines).
  • Integrated Sensors: Includes ray casting for distance-based sensors like LIDAR.
  • Modular Scenario Creation: Provides a framework to easily define custom multi-agent tasks and scenarios.

Related

  • Project
  • Project
  • Project
  • Project
  • Project