Flex is a particle dynamics library designed for real-time visual effects. The core idea of Flex is that everything is modeled as a system of particles connected by constraints. One benefit of this unified representation is that it allows efficient modeling of many different materials. In addition, it allows interaction between elements of different types, for example, two-way coupling between rigid bodies and fluids.

Flex’s strength lies in enabling interesting secondary effects that enhance the visual experience. It is not designed to build gameplay affecting physics because it lacks functionality such as trigger events, contact callbacks, ray-casting, serialization, etc. Although it is possible to build these capabilities on top of the core solver, they don’t come out of the box. For this reason, it is recommended to use Flex in conjunction with a traditional rigid-body physics engine such as PhysX.

The Unreal 4 integration of Flex is available to all Unreal licensed developers through the NVIDIA Github channel, please visit: for the latest distributions.

This documentation is designed for technical artists and developers using the UE4 Flex integration. For more background on Flex, see the SDK manual included in the developer library package available on NVIDIA DevZone.


The information in this document applies to the following software versions:

  • NVIDIA Flex 1.2.0
  • EpicGames Unreal 4.19.2
  • GPU either supporting CUDA Compute Capability 3.0 (Kepler/higher) or D3D11/D3D12.