Real-Time Density-Based Crowd Simulation

Abstract
Virtual characters in games and simulations often need to plan visually convincing paths through a crowded environment. This paper describes how crowd density information can be used to guide a large number of characters through a crowded environment. Crowd density information helps characters avoid congested routes that could lead to traffic jams. It also encourages characters to use a wide variety of routes to reach their destination.

Our technique measures the desirability of a route by combining distance information with crowd density information. We start by building a navigation mesh for the walkable regions in a polygonal 2D or multi-layered 3D environment. The skeleton of this navigation mesh is the medial axis. Each walkable region in the navigation mesh maintains an up-to-date density value. This density value equals the area of all characters inside a given region divided by the total area of this region. These density values are mapped onto the medial axis to form a weighted graph. An A* search on this graph yields a backbone path for each character, and forces are used to guide the characters through the weighted environment. The characters periodically replan their routes as the density values are updated. Our experiments show that we can compute congestion-avoiding paths for tens of thousands of characters in real-time.

Reference
Wouter G. van Toll, Atlas F. Cook IV, Roland Geraerts.
Real-Time Density-Based Crowd Simulation.
Computer Animation and Virtual Worlds (CAVW), 23(1):59-69, 2012.
Full text: [pdf]

When density information is not considered, most of the characters follow the same short path and this leads to a traffic jam. The navigation mesh was computed in 38 ms.   When density information is considered, the characters spread out among the available routes. The simulation runs in real-time for tens of thoussands of characters.

Movie
The steps of our algorithm are visualized in the movie below.



Technique

Results
Although it is common to steer characters along short paths to their destinations, high congestion can lead to traffic jams that seem unnatural when many routes are underutilized in an environment. To improve the realism of our simulations, we used crowd density information to guide a large number of characters along a wide variety of routes. We did this by building a navigation mesh and weighting the desirability of routes based on the crowd density along the path. Our technique can guide tens of thousands of characters through a polygonal 2D or multi-layered 3D environment in real-time. The movie highlights the effectiveness of these techniques in both 2D and 2.5D environments.

This paper uses our multi-layered navigation mesh data structure.