Wednesday, November 9th, 2022 Posted by Jim Thacker

Nvidia open-sources PhysX 5

Nvidia has open-sourced the SDK for PhysX 5.1, the latest version of its real-time physics system.

The project’s GitHub repository also includes the source code for Flow 2.0, Nvidia’s real-time gaseous fluid simulation library, with that for the Blast destruction library to be “added soon”.

The announcement was made alongside that of the latest updates to Omniverse, Nvidia’s online 3D design and collaboration platform, for which PhysX is described as a “foundational technology pillar”.

Available under the “same open source license terms as PhysX 4”
Nvidia originally open-sourced PhysX, then primarily a real-time dynamics system for games, in 2018.

The initial release, of the PhysX 3.4 SDK, was a CPU-only implementation, with support for GPU acceleration via CUDA added when the PhysX 4 SDK was released shortly afterwards.

New in PhysX 5: FEM soft body and PBD liquid and cloth simulation
New features in PhysX 5 include those from FLeX, Nvidia’s particle-based effects framework, including Finite Element Method (FEM) soft body dynamics and Position Based Dynamics (PBD) liquid and cloth simulation.

Other changes include support for rigid body collision based on Signed Distance Fields (SDF) on GPU.

Although the original FLeX library only requires a Direct3D 11-capabie GPU, including AMD and Intel cards, in PhysX, the functionality is implemented using CUDA, so it requires a CUDA-capable Nvidia GPU.

New CPU features include the option to define custom geometries, “meaning cylinder shapes or implicit block-based worlds can now be supported”.

Source code for Flow also available, with Blast coming soon
In addition, Nvidia is releasing source code for two supporting libraries, gaseous fluid simulation system Flow for real-time smoke and fire, and real-time destruction system Blast.

The source code for Flow is available in the PhysX 5 SDK GitHub repository, with Blast coming “soon”.

Completing PhysX’s transition from games middleware to a broader real-time physics system
The location of that GitHub repository reflects the transition from PhysX’s origins as a game technology to a broader-purpose real-time physics system.

While the source code for the PhysX 3.x and 4.x SDKs was released via Nvidia’s GameWorks repository, the PhysX 5.x SDK is part of the respository for Omniverse, Nvidia’s real-time design collaboration platform.

According to Nvidia’s blog post, it is no longer providing ports of PhysX for games consoles.

In addition, “some of the tools and utilities, such as digital content creation tool exporters, debugging telemetry and diagnostics, demos, and samples have now been merged into the Omniverse platform”.

Released alongside the latest updates to Omniverse
The release coincides with the latest updates to Omniverse, including a new version of Kit, Nvidia’s framework for building Omniverse applications.

According to Nvidia, the PhysX 5 SDK has been open-sourced so that users can “easily modify, build, and distribute [their] own physics simulation applications” for Omniverse.

Suggested use cases for PhysX in this new role include “robotics, deep reinforcement learning, autonomous driving, factory automation, and visual effects”.

Availability and system requirements
The source code for PhysX SDK 5.1 is available on GitHub under a 3-clause BSD licence.

The source for Flow 2.0 is provided in the same repository, also under a 3-clause BSD licence.

Read Nvidia’s announcement that it has open-sourced PhysX 5

Download the source code for PhysX SDK 5.1 and Flow 2.0 from GitHub