[robotics-worldwide] Announcement Public Release of RVO Library for Real-Time Multi-Agent Simulation

Jur van den Berg berg at cs.unc.edu
Tue May 27 13:16:46 PDT 2008

Dear Roboticists,

We have just released the publicly available C++ RVO Library for 
Real-Time Multi-Agent Simulation. It is available for download at 
http://gamma.cs.unc.edu/RVO/Library/ . Please see below for a short 

Best regards,

Jur van den Berg
University of North Carolina at Chapel Hill

Simulations of multiple agents sharing a common workspace have gained 
increasing attention recently, for various purposes such as crowd 
simulation, navigating a team of mobile robots, computer games, studying 
natural flocking behavior, traffic engineering, architecture and design, 
emergency training simulations, etc.

We have presented a novel approach for interactive navigation and 
planning of large amounts of agents in two-dimensional (crowded) 
environments. Our formulation uses a precomputed roadmap that provides 
macroscopic knowledge for wayfinding and combines it with fast and 
localized navigation for each agent. At runtime, each agent senses the 
environment independently and computes a collision-free motion based on 
the “Reciprocal Velocity Obstacle” concept. Our algorithm ensures that 
each agent exhibits no oscillatory behaviors.

RVO Library is a publicly available C++ implementation of our algorithm. 
It has a very simple API for third-party applications. The user has to 
specify obstacles, a roadmap around the obstacles, and the agents and 
their goals, and the simulation can be performed step-by-step by a 
simple call to the library. The simulation is fully accessible and 
manipulable during the simulation. The library automatically exploits 
multiple processors if they are available for efficient parallellization 
of the simulation. Please refer to the documentation for details 
regarding the API and the contents of the distribution.

None. The RVO library is a stand-alone library that does not depend on 
third-party packages. It should work with any C++ compiler on any 
platform. It uses OpenMP to exploit multiple processors if they are 
available on the system, but having multiple processors is not a 

More information about the robotics-worldwide mailing list