MASTER'S THESIS

  • A research project by Karim Machlab
  • Conducted at Utrecht University at the Master Game and Media Technology program
  • Under supervision of Dr. Roland Geraerts
  • Grade: 8.1 / 10

The demand of large-scale simulations running in real-time has only been increasing. Whether we are simulating large crowds to test the effect of a newly constructed mall on the traffic around it, or to test how large crowds act in evacuation scenarios, or to create massive crowds in an animation or video game, the ability to do so and the information that we gain out of it is very beneficial. Current state-of-the-art simulations can only achieve a few thousand agents in real-time; these typically run on a single machine with shared memory. The logical step beyond this, if we want to scale-up to massive crowds and still simulate in real-time, is to distribute the simulation onto multiple machines that are in constant communication with each other. In this work we present a distributed crowd simulation architecture and implementation. This architecture consists of multiple nodes, where each node handles a part of the simulation, and a simulation manager that manages all operations. With a decent partitioning structure, efficient communication between nodes, and a balanced workload, our system is able to simulate 12 thousand characters in real-time on a machine with 24 cores. Our results show that our system is able to scale well, and with the proper hardware, we can simulate hundreds of thousands of characters in real-time in big environments.

Large-scale, distributed, crowd simulation, simulation, real-time, cloud, network, MPI

Description
This video summarizes the distributed crowd simulation architecture and shows how its different components interact with each other to create large-scale simulations in real time. We also show how a simulation step is performed from start to finish, and how environment repartitioning is done.