Large Crowds in the GPU: Isaac Rudomin, Ph.D.

Shader Agents:


We implement FSMs as fragment shaders using three kinds of images: world space images, agent space images and FSM table images. We show a simple  example and compare performance of CPU and  GPU implementations. Then we examine a more complex example involving more maps and two types of agents (predator-prey). Furthermore we explore how to render agents in 3D more efficiently by using a variation on pseudoinstancing.

Large crowds of autonomous animated characters using fragment shaders and level of detail:

By simulating agent behavior in the GPU and using culling and LOD techniques such as Impostors, we achieve realtime (15fps) performance for crowds of 250K characters.


Automatic translation of XML script to GLSL shaders for crowd simulation :

We present a technique that allows us to codify the behavior of large agent-based crowds by using scripting. The script defines the behavior of each character in the crowd using Finite State Machines, as well as a set of variables and image maps to customize different attributes of the crowds and their environment. This script is automatically translated into a set of image maps and shader programs. The shader programs generated in this fashion use the image maps produced by the same process, together with the information in the environment,

to simulate the behavior of each character in the crowd using the graphics hardware. This framework simplifies behavior specification for agent-based crowds, while allowing the interactive simulation of very large crowds.


The input fusion mechanism for crowd simulation on graphics hardware:

The input fusion mechanism allows flexible behavioral simulation of large agent-based crowds using the graphics hardware. By using a shader program and a set of image maps, different inputs are combined to to query a finite state machine, trigger transitions,and produce an action for each character in the crowd. Inputs include input maps, user events or custom numeric expressions. This framework is extended to allow input maps to be modified by state-dependent expressions. Some example implementations, including the specification of non-deterministic finite state machines, are described, to show the potential of the input fusion mechanism.