Procedurally generating crowd simulations with human-like behaviours

The presence of crowds of people is becoming increasingly commonplace in areas such as gaming, where simulations are typically used to procedurally generate crowds [1]. The interactions within these crowds are key to adding an extra layer of immersion and realism. The method used to model these interactions will generally affect the expressiveness and scalability of these simulations.

This study sought to address these issues by proposing a framework that would simulate realistic crowds, in which the actions of an entity would not directly influence the actions of another entity, as well as adding personal decision-making, which is not commonly seen in other simulations.

The chosen approach was to create a framework that uses deterministic finite state automata (DFSA) to model the behaviour and interactions of each individual. The simulation area contains a multitude of different objects (such as benches and shops) which are represented as systems ‒ and each with its own DFSA. Once an entity enters a system’s range, they are to decide whether to transition to the system’s DFSA. Each system contains instructions in the form of a DFSA, which the entity would follow. The systems are independent of every other system, thus allowing new systems to be added without affecting others.

The simplicity of how the framework was set up allows people with little or no technological background knowledge to be able to create a custom environment for their own simulation. The choice of creating a framework for such simulations allows for continuous re-use to model various types of situations.

In order to determine whether an entity would decide to transition to a system’s DFSA, each entity contains its own attributes, which alter its decision-making process throughout the duration of the simulation. Attributes such as Hunger and Tiredness will help an entity decide whether to go to rest on a bench, buy something to eat at a shop or keep walking. Over time, each of these attributes will change depending on the action a person is taking, such as the action of walking, which increases the sense of tiredness and hunger. Figure 1 explains further how this process functions.

The framework described above was evaluated by testing its scalability and expressiveness. Scalability was measured by the complexity and size of the generated environments alongside the number of simulated people in the scene, together with the amount of time it would take to create and run a simulation. On the other hand, expressivity was measured by the unique number of simulation environments that could be modelled, including the extent to which environments can be customised by the user. This includes being able to model a simulation environment in which one may customise the internals of a building, such as a shop.

This project attempts to deliver a working solution to the situation outlined above. The proposed solution would allow users to create their own simulation for various situations, without having to create an entire interaction model from scratch.

Figure 1. A ‘person’ DFSA is extended when within the range of a ‘bench’ system – this allows more transition options from the ‘person’ system, thus allowing the entities to interact with other systems.


[1] Xu ML, Jiang H, Jin XG et al. “Crowd simulation and its applications: recent advances”. JOURNAL of COMPUTERSCIENCE and TECHNOLOGY 29(5): 799-811 Sept. 2014.

Student: Daniel James Sumler
Course: B.Sc. (Hons.) Computing Science
Supervisor: Dr Sandro Spina