Omniverse Social Forces Extension

An extension for the NVIDIA Omniverse that simulates crowds using social forces, with options to run using forces generated from physx or on the GPU with warp.


A crowd simulator API with a default demo scene. The main python API can be used in a few ways. There is an examples folder showing a few use-cases. Users can also switch between social forces and PAM as the crowds algorithm.

The extension will load an populate some demo configuration. It will create an Xform called CrowdGoals. To add a goal for the crowd. Create an xform under the “CrowdGoals”. We automatically check for those prims as the method of determining crowd goals. For every additional xform under CrowdGoals, we evenly split the crowd to assign those goals.

There are two options for the crowd objects. The default uses geompoints, which is faster and runs its own integration of the forces for position and velocity. It does not interact with any physics in the scene. Alternatively the “Rigid Body” can be used, which creates physical spheres that interact with the scene.

The default number of demo agents is a 3×3 grid (9 agents). The current simulator in python may struggle above 25 agents, depending on CPU configuration.

We plan to support more methods in the future, as well as more crowd simulators. Contributions are welcome.