RVO2 Library: Reciprocal Collision Avoidance for Real-Time Multi-Agent Simulation

Jur van den Berg, Stephen J. Guy, Jamie Snape, Ming C. Lin, and Dinesh Manocha
Department of Computer Science, University of North Carolina at Chapel Hill

Contact: To report bugs or suggest novel functionality, please contact the authors.

Maintained by: Jamie Snape.

Latest update: January 4, 2021.

RVO2 Library: Copyright © and trademark ™ 2008-21 University of North Carolina at Chapel Hill. All rights reserved.

Get RVO2 Library


RVO2 Library

  • RVO2 Library v2.0.2 (ZIP archive, 303 KB, SHA256 89b5bc5a5a8dc81a1f7c0478682e263186d54f98309e0565492d542766e15fc0)
  • RVO2 Library v2.0.1 (ZIP archive, 180 KB, SHA256 c102d1d0618b33563255efd19cbb2f9577a8249adca12499fc3c0467f2a49616)
  • RVO2 Library v2.0 (ZIP archive, 180 KB, SHA256 37a2cf02166eb7995d41f6cd8621b164035bf9a73de4b028b2ce437988750f18)
  • GitHub Repository

RVO2-3D Library

RVO2 Library C#

RVO Library

  • RVO Library v1.1.1 (ZIP archive, 180 KB, SHA256 ec70efcc34a6184e99f2af4ebf62ed67dc4c6c4653843d6ed5b3b3234ebe0e4a)
  • RVO Library v1.1 (ZIP archive, 193 KB, SHA256 8eb4bd53cb93418dd6a1ed8316907e6c39ba4a632c31aa34d404f66ed0a8e586)
  • RVO Library v1.0 (ZIP archive, 78 KB, SHA256 71431ded12aa24e1d14acdf04e5d82eff50c752f9fe2e4ebc184a1af03ebf654)

Release Notes

RVO2 Library v2.0.2

Released May 4, 2016.

  • Changed license to Apache 2.0.

RVO2 Library v2.0.1

Released October 26, 2010.

  • Improved the three-dimensional linear programming to make it faster and more robust.
  • Minor change in the way ORCA lines for static obstacles are handled, which removes the dependence on simulation time step.
  • Normalized obstacle vector is stored with each static obstacle line segment to reduce the number of square root computations.
  • Fixed the error that caused header files to copied to the wrong directory in the release configuration for Microsoft Visual Studio.
  • Removed simple Agent constructors, moving defaultAgent functionality to the RVOSimulator class (no change to public interface).

RVO2 Library v2.0

Released August 28, 2010.

  • RVO2 Library v2.0 replaces the reciprocal velocity obstacle (RVO) framework with the optimal reciprocal collision avoidance (ORCA) formulation for collision avoidance to increase computation speed, motion smoothness, and agent safety.
  • The roadmap infrastructure for global planning has been removed. Users are responsible for global navigation and should specify the preferred velocity of the agents ahead of each time step.
  • Static obstacles are now defined as non-intersecting polygons, specified by lists of vertices in counterclockwise order.
  • Multiple instances of a simulator may now be created.
  • Functionality not core to collision avoidance have been removed. Agent fields class, goal, maxAcceleration, orientation, and prefSpeed have been removed.
  • Simulation information, such as the neighbors of agents and the velocity constraints of agents, may now be accessed.
  • Functionality to check the visibility of two points or discs with respect to static obstacles has been added.
  • A simulator may now be constructed with time step and agent default parameters.
  • Agents may now be added during the simulation. Static obstacles must be processed before they are taken into account, but may also be added during the simulation.
  • Identifiers for agents, static obstacles, etc. are now of type size_t.
  • The static obstacle k-D tree and neighbor search have been optimized.

RVO2-3D Library v1.0.1

Released May 4, 2016.

  • Changed license to Apache 2.0.

RVO2-3D Library v1.0

Released May 13, 2011.

  • RVO2-3D Library operates in 3D workspaces using a three-dimensional implementation of optimal reciprocal collision avoidance (ORCA) for local collision avoidance.
  • The library does not replace RVO2 Library for 2D applications and currently does not support static obstacles.

RVO2 Library C# v2.0.1

Released May 4, 2016.

  • Changed license to Apache 2.0.

RVO2 Library C# v2.0

Released January 10, 2011.

  • Multiple threads.

RVO2 Library C# v1.1

Released November 17, 2010.

RVO Library v1.1.1

Released May 4, 2016.

  • Changed license to Apache 2.0.

RVO Library v1.1

Released February 9, 2009.

  • RVO Library v1.1 adds support for POSIX-compliant systems.
  • Users may specify to automatically connect roadmap vertices for a specific radius. This means that an edge is only added between two vertices if it has at least the specified distance from the obstacles.
  • Static obstacles may now freely intersect each other.
  • A simulation no longer crashes if two agents have exactly the same position.
  • Agents now only progress to a new subgoal when they can entirely see them.
  • The static obstacle k-D tree has been improved. Static obstacles are split in the process to have a more efficient tree.
  • Visibility queries are now performed using the static obstacle k-D tree.
  • The agent k-D tree for neighbor searching has been improved. Maximally, ten agents are stored in each leaf.
  • The sampling of candidate velocities for agents has been optimized.
  • The roadmap class has been removed to make the architecture of the library flatter.
  • Some superfluous divisions have been eliminated.

RVO Library v1.0

Released May 26, 2008.


Copyright 2008 University of North Carolina at Chapel Hill

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at


Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.