Crowd simulation
Crowd simulation is the process of simulating the movement of a large number of entities or characters. It is commonly used to create virtual scenes for visual media like films and video games, and is also used in crisis training, architecture and urban planning, and evacuation simulation.
Crowd simulation may focus on aspects that target different applications. For realistic and fast rendering of a crowd for visual media or virtual cinematography, reduction of the complexity of the 3D scene and image-based rendering are used, while variations in appearance help present a realistic population.
In games and applications intended to replicate real-life human crowd movement, like in evacuation simulations, simulated agents may need to navigate towards a goal, avoid collisions, and exhibit other human-like behavior. Many crowd steering algorithms have been developed to lead simulated crowds to their goals realistically. Some more general systems are researched that can support different kinds of agents, different levels of abstraction, agents interacting with smart objects, and more complex physical and social dynamics.
History
There has always been a deep-seated interest in the understanding and gaining control of motional and behavior of crowds of people. Many major advancements have taken place since the beginnings of research within the realm of crowd simulation. Evidently many new findings are continually made and published following these which enhance the scalability, flexibility, applicability, and realism of simulations:In 1987, behavioral animation was introduced and developed by Craig Reynolds. He had simulated flocks of birds alongside schools of fish for the purpose of studying group intuition and movement. All agents within these simulations were given direct access to the respective positions and velocities of their surrounding agents. The theorization and study set forth by Reynolds was improved and built upon in 1994 by Xiaoyuan Tu, Demetri Terzopoulos and Radek Grzeszczuk. The realistic quality of simulation was engaged with as the individual agents were equipped with synthetic vision and a general view of the environment within which they resided, allowing for a perceptual awareness within their dynamic habitats.
Initial research in the field of crowd simulation began in 1997 with Daniel Thalmann's supervision of Soraia Raupp Musse's PhD thesis. They present a new model of crowd behavior in order to create a simulation of generic populations. Here a relation is drawn between the autonomous behavior of the individual within the crowd and the emergent behavior originating from this.
In 1999, individualistic navigation began its course within the realm of crowd simulation via continued research of Craig Reynolds. Steering behaviors are proven to play a large role in the process of automating agents within a simulation. Reynolds states the processes of low-level locomotion to be dependent and reliant on mid-level steering behaviors and higher-level goal states and path finding strategies. Building off of the advanced work of Reynolds, Musse and Thalmann began to study the modeling of real time simulations of these crowds, and their applications to human behavior. The control of human crowds was designated as a hierarchical organization with levels of autonomy amongst agents. This marks the beginnings of modeling individual behavior in its most elementary form on humanoid agents or virtual humans.
Coinciding with publications regarding human behavior models and simulations of group behaviors, Matt Anderson, Eric McDaniel, and Stephen Chenney's proposal of constraints on behavior gained popularity. The positioning of constraints on group animations was presented to be able to be done at any time within the simulation. This process of applying constraints to the behavioral model is undergone in a two-fold manner, by first determining the initial set of goal trajectories coinciding with the constraints, and then applying behavioral rules to these paths to select those which do not violate them.
Correlating and building off of the findings proposed in his work with Musse, Thalmann, working alongside Bratislava Ulicny and Pablo de Heras Ciechomski, proposed a new model which allowed for interactive authoring of agents at the level of an individual, a group of agents and the entirety of a crowd. A brush metaphor is introduced to distribute, model and control crowd members in real-time with immediate feedback.
Crowd dynamics
One of the major goals in crowd simulation is to steer crowds realistically and recreate human dynamic behaviors.There exists several overarching approaches to crowd simulation and AI, each one providing advantages and disadvantages based on crowd size and time scale. Time scale refers to how the objective of the simulation also affects the length of the simulation. For example, researching social questions such as how ideologies are spread amongst a population will result in a much longer running simulation since such an event can span up to months or years. Using those two characteristics, researchers have attempted to apply classifications to better evaluate and organize existing crowd simulators.
;Flow-based Approach: Flow based crowd simulations focus on the crowd as a whole rather than its components. As such individuals do not have any distinctive behaviors that occur due to input from their surroundings and behavioral factors are largely reduced. This model is mainly used to estimate the flow of movement of a large and dense crowd in a given environment. Best used in studying large crowd, short time objectives.
;Entity-based Approach: Models that implement a set of physical, predefined, and global laws meant to simulate social/psychological factors that occur in individuals that are a part of a crowd fall under this category. Entities in this case do not have the capacity to, in a sense, think for themselves. All movements are determined by the global laws being enforced on them. Simulations that use this model often do so to research crowd dynamics such as jamming and flocking. Small to medium-sized crowds with short term objectives fit this approach best.
;Agent-based Approach: Characterized by autonomous, interacting individuals. Each agent of a crowd in this approach, is given a degree of intelligence; they can react to each situation on their own based on a set of decision rules. Information used to decide on an action is obtained locally from the agent's' surroundings. Most often, this approach is used for simulating realistic crowd behavior as the researcher is given complete freedom to implement any behaviors.
Particle systems
One way to simulate virtual crowds is to use a particle system. Particle systems were first introduced in computer graphics by W. T. Reeves in 1983. A particle system is a collection of a number of individual elements or particles. Each particle is able to act autonomously and is assigned a set of physical attributes.A particle system is dynamic, in that the movements of the particles change over time. A particle system's movement is what makes it so desirable and easy to implement. Calculating the movements of these particles takes very little time. It simply involves physics: the sum of all the forces acting on a particle determines its motion. Forces such as gravity, friction and force from a collision, and social forces like the attractive force of a goal.
Usually each particle has a velocity vector and a position vector, containing information about the particle's current velocity and position respectively. The particles next position is calculated by adding its velocity vector to its position vector. A very simple operation. Its velocity vector changes over time, in response to the forces acting on the particle. For example, a collision with another particle will cause it to change direction.
Particles systems have been widely used in films for effects such as explosions, for water effects in the 2000 movie The Perfect Storm, and simulated gas in the 1994 film the Mask.
Particles systems, however, do have some drawbacks. It can be a bad idea to use a particle system to simulate agents in a crowd that the director will move on command, as determining which particles belong to the agent and which do not is very difficult.
Algorithm by Patil and Van Den Berg
This algorithm was designed for relatively simplistic crowds, where each agent in the crowd only desires to get to its own goal destination while also avoiding obstacles. This algorithm could be used for simulating a crowd in Times Square.Patils algorithm's most important and distinctive feature is that it utilizes the concept of navigation fields for directing agents. This is different from a guidance field; a guidance field is an area around the agent in which the agent is capable of "seeing"/detecting information. Guidance fields are typically used for avoiding obstacles, dynamic obstacles in particular. Every agent possesses its own guidance field. A navigation field, on the other hand, is a vector field which calculates the minimum cost path for every agent so that every agent arrives at its own goal position.
The navigation field can only be used properly when a path exists from every free position in the environment to one of the goal positions. The navigation field is computed using coordinates of the static objects in the environment, goal positions for each agent, and the guidance field for each agent. In order to guarantee that every agent reaches its own goal the navigation field must be free of local minima, except for the presence of sinks at the specified goals.
the algorithm is only dependent on the grid resolution and not dependent on the number of agents in the environment. However, this algorithm has a high memory cost.