PhysX is a proprietary realtime physics engine middleware SDK.
PhysX was authored at NovodeX, an ETH Zurich spin-off.
In 2004 NovodeX was acquired by Ageia, and in February 2008 Ageia was acquired by Nvidia.
The term PhysX can also refer to the PPU expansion card designed by Ageia to accelerate PhysX-enabled
video games.
Video games supporting hardware acceleration by PhysX can be accelerated by either a PhysX
PPU or a CUDA-enabled GeForce GPU, thus offloading physics calculations from the CPU, allowing
it to perform other tasks instead.
Middleware physics engines free game developers from writing own code which implements classical
mechanics to do e.g. soft body dynamics.
PhysX is one of the handful of physics engines used in the large majority of today's games.
The PhysX engine and SDK are available for Microsoft Windows, OS X, Linux, PlayStation
3, PlayStation 4 Xbox 360 and the Wii.
The PhysX SDK is provided to developers for free for both commercial and non-commercial
use on Windows.
For Linux, OS X and Android platforms the PhysX SDK is free for educational and non-commercial
use.
Nvidia PhysX is part of Nvidia GameWorks.
History What is known today as PhysX originated as
a physics simulation engine called NovodeX.
The multi-threaded engine was developed by Swiss company NovodeX AG.
In 2004, Ageia acquired NovodeX AG and began developing a hardware technology that could
accelerate physics calculations, aiding the CPU.
Ageia called the technology PhysX PPU, and the SDK was renamed from NovodeX to PhysX.
In 2008, Ageia was itself acquired by graphics technology manufacturer Nvidia.
Nvidia started enabling PhysX hardware acceleration on its line of GeForce graphics cards and
eventually dropped support for Ageia PPUs.
Features PhysX is a multi-threaded physics simulation
SDK available for Microsoft Windows, Mac OS X, Linux, PlayStation 3, Xbox 360 and Wii.
It supports rigid body dynamics, soft body dynamics, ragdolls and character controllers,
vehicle dynamics, particles, volumetric fluid simulation and cloth simulation including
tearing and pressurized cloth.
Hardware acceleration
PPU A physics processing unit is a processor specially
designed to alleviate the calculation burden on the CPU, specifically calculations involving
physics.
PPU cards with PhysX support were available from the manufacturers ASUS, BFG Technologies
and ELSA Technology.
Beginning with version 2.8.3 of the PhysX SDK, support for PPU cards was dropped, and
PPU cards are no longer manufactured.
GPU After Nvidia's acquisition of Ageia, PhysX
development turned away from PPU extension cards and focused instead on the GPGPU capabilities
of modern GPUs.
A graphics processing unit or GPU is a dedicated graphics rendering device for a personal computer,
workstation or game console.
Modern GPUs are very efficient at manipulating and displaying computer graphics, and their
highly parallel structure makes them more effective than general-purpose CPUs for a
range of complex algorithms, such as accelerating physical simulations using PhysX.
A GPU can be located on a dedicated video card, or it can be integrated directly into
the motherboard.
More than 90% of new desktop and notebook computers have integrated GPUs.
Any CUDA-ready GeForce graphics card can take advantage of PhysX without the need to install
a dedicated PhysX card.
APEX Nvidia APEX technology is a multi-platform
scalable dynamics framework first introduced in Mafia II in August 2010.
Nvidia's APEX comprises the following modules: APEX Destruction, APEX Clothing, APEX Particles,
APEX Turbulence, APEX ForceField and formerly APEX Vegetation which was suspended in 2011.
Real World Technologies analysis On July 5, 2010, Real World Technologies published
an analysis of the PhysX architecture.
According to this analysis, most of the code used in PhysX applications at the time was
based on x87 instructions without any multi-threading optimization.
This could cause significant performance drops when running PhysX code on the CPU.
The article suggested that a PhysX rewrite using SSE instructions may substantially lessen
the performance discrepancy between CPU PhysX and GPU PhysX.
In response to the Real World Technologies analysis, Mike Skolones, product manager of
PhysX, said that SSE support had been left behind because most games are developed for
consoles first and then ported to the PC.
As a result, modern computers run these games faster and better than the consoles even with
little or no optimization.
Senior PR manager of Nvidia, Bryan Del Rizzo, explained that multi-threading had already
been available with CPU PhysX 2.x and that it had been up to the developer to make use
of it.
He also stated that automatic multithreading and SSE would be introduced with version 3
of the PhysX SDK.
PhysX SDK 3.0 was released in May 2011 and represented a significant rewrite of the SDK,
bringing improvements such as more efficient multithreading and a unified code base for
all supported platforms.
Usage PhysX in video games
PhysX technology is used by game engines such as Unreal Engine, Unity, Gamebryo, Vision,
Instinct Engine, Panda3D, Diesel, Torque, HeroEngine and BigWorld.
As one of the handful of major physics engines, it is used in many games, such as Mirror's
Edge, Bulletstorm, Need for Speed: Shift, Castlevania: Lords of Shadow, Mafia II, Alice:
Madness Returns, Batman: Arkham City, Borderlands 2, Kerbal Space Program, etc.
Most of these games use the CPU to process the physics simulations.
Video games with optional support for hardware-accelerated PhysX often include additional effects such
as tearable cloth, dynamic smoke or simulated particle debris.
PhysX in other software Other software with PhysX support includes:
Active Worlds, a 3D virtual reality platform with its client running on Windows
Autodesk 3ds Max, Autodesk Maya and Autodesk Softimage, computer animation suites
DarkBASIC Professional, a programming language targeted at game development
DX Studio, an integrated development environment for creating interactive 3D graphics
Futuremark's 3DMark06 and Vantage benchmarking tools
Microsoft Robotics Studio, an environment for robot control and simulation
Nvidia SuperSonic Sled and Raging Rapids Ride, technology demos
OGRE, an open source rendering engine The Physics Abstraction Layer, a physical
simulation API abstraction system Rayfire, a plug-in for Autodesk 3ds Max that
allows fracturing and other physics simulations See also
DirectX Bullet
Havok Open Dynamics Engine
OpenGL Unity
Vortex AGX Multiphysics
References
External links Official Product Site
Techgage: AGEIA PhysX..
First Impressions Techgage: NVIDIA's PhysX: Performance and
Status Report