Wednesday, March 14, 2012

Crowd Simulation with SteerSuite starts


Crowd simulation is the process of simulating the movement of a large number of entities or characters, now often appearing in 3D computer graphics for film. While simulating these crowds, observed human behavior interaction is taken into account, to replicate the collective behavior. 

In the final project, I am going to use SteerSuite, which is developed in UCLA, to show my crowd simulation. SteerSuite provides a framework to develop AI for steering objects in the crowd simulation. In the project, I will modify the built-in pprAI which is based on the paper “A modular framework for adaptive agent-based steering” from CPU-based code to GPU-based code, and observe the performance boost brought by the GPU acceleration. 

In SteerSuite, there are mainly three steps for each agent to move towards its goal. First, the agent will read environment data from database, this stage is also called perception phase. Then the agent will analysis the situation based on the received environment data, this stage can be subdivided into prediction phase and reactive phase, calculating possible collision and steering respectively. At last, the steering result will be written back to the database, and the movement will be rendered by the graphic library. 

In the three steps described above, parallelism can be exploited in each of them. We can parallelize reading environment data, do the analysis simultaneously, and writing data back in parallel. I will apply these parallelization one after another and uncover the acceleration brought by these changes.
At the end of this project, we should be expected to see certain amount of speed-up brought by GPU over CPU. 

 
Reference:

Crowd Simulation: http://en.wikipedia.org/wiki/Crowd_simulation
SteerSuite: http://www.magix.ucla.edu/steersuite/
pprAI algorithm: http://dl.acm.org/citation.cfm?id=1944769

No comments:

Post a Comment