Monday, December 3rd 2018

NVIDIA PhysX Now Open-Source

NVIDIA PhysX, the most popular physics simulation engine on the planet, is going open source. We're doing this because physics simulation - long key to immersive games and entertainment - turns out to be more important than we ever thought. Physics simulation dovetails with AI, robotics and computer vision, self-driving vehicles, and high-performance computing.

It's foundational for so many different things we've decided to provide it to the world in an open source fashion. Meanwhile, we're building on more than a decade of continuous investment in this area to simulate the world with ever greater fidelity, with on-going research and development to meet the needs of those working in robotics and with autonomous vehicles.
Full Source on GitHub.

Free, Open-Source, GPU-Accelerated
PhysX will now be the only free, open-source physics solution that takes advantage of GPU acceleration and can handle large virtual environments. It will be available as open source starting Monday, Dec. 3, under the simple BSD-3 license. PhysX solves some serious challenges.
  • In AI, researchers need synthetic data - artificial representations of the real world - to train data-hungry neural networks.
  • In robotics, researchers need to train robotic minds in environments that work like the real one.
  • For self-driving cars, PhysX allows vehicles to drive for millions of miles in simulators that duplicate real-world conditions.
  • In game development, canned animation doesn't look organic and is time consuming to produce at a polished level.
  • In high-performance computing, physics simulations are being done on ever more powerful machines with ever greater levels of fidelity.
The list goes on.

PhysX SDK addresses these challenges with scalable, stable and accurate simulations. It's widely compatible, and it's now open source. PhysX SDK is a scalable multi-platform game physics solution supporting a wide range of devices, from smartphones to high-end multicore CPUs and GPUs. It's already integrated into some of the most popular game engines, including Unreal Engine (versions 3 and 4) and Unity3D.

You can also find the full source code on GitHub. Dig in.
Add your own comment

53 Comments on NVIDIA PhysX Now Open-Source

#51
ZeDestructor
FordGT90ConceptDirectCompute is a Microsoft technology. The VUDA approach makes the most sense (Vulkan -> VUDA -> CUDA -> PhysX). Alternatively, it would have to be converted to OpenCL which would translate to less emulation and theoretically better performance. OpenCL has it's own problem though: namely, AMD and Intel support 2.0 where NVIDIA refuses to support beyond 1.1 because it's a direct competitor to CUDA.

Then there's this little problem:

Yes, probably, because it will prohibit third-party versions of PhsyX running on systems with NVIDIA GPUs. A universal solution, ergo, won't work well on NVIDIA GPUs unless they change their practice. A third party won't be able to sign installers to replace PhysX unless you forcibly remove PhsyX from the system and mimic it with new PhysX libraries. It's honestly a trainwreck--backwards compatibility is a problem unless NVIDIA jumps on the open-source bandwagon or uninvolves itself letting the open-source version take over.
From Khronos (maintainers of OpenGL, OpenCL, Vulkan and a few other APIs) themselves:
We are also working to converge with, and leverage, the Khronos Vulkan API — merging advanced graphics and compute into a single API
It doesn't matter what nV wants now that it's free and opensource: anyone (including you!) can go about porting it to anything else, and write a small wrapper to bringup older games.
Posted on Reply
#52
FordGT90Concept
"I go fast!1!11!1!"
VUDA would be the only way via Vulkan and I'm not convinced performance would be so reduced as to be unplayable.
Posted on Reply
#53
ZeDestructor
FordGT90ConceptVUDA would be the only way via Vulkan and I'm not convinced performance would be so reduced as to be unplayable.
VUDA isn't a port, it's a translation/emulation layer that translates CUDA calls into Vulkan calls. With a true port, on the other hand, you change all those original CUDA calls inside of PhysX itself to become OpenCL/Vulkan/DirectCompute/C/Rust/Java/whatever calls instead, and thus not need any sort of translation or emulation.

Edit: for performance, that's mostly an optimization problem. I mean, for the most part, you don't see native D3D or OGL run extraordinarily worse on either vendor's GPUs of roughly equal TFLOPS performance. The real limiter with OG CUDA PhysX is that AMD doesn't support CUDA, and nobody is gonna ship VUDA in a retail product, primarily for fear of a nasty lawsuit from nV (and maybe AMD too).
Posted on Reply
Add your own comment
Dec 22nd, 2024 10:16 EST change timezone

New Forum Posts

Popular Reviews

Controversial News Posts