PhysX is an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
realtime
''RealTime'', also known as ''RealTime Arts'', was a free Australian arts magazine, published by Open City in print from 1994 until 2015 and online from 1996 to December 2017.
History
The free national arts magazine ''RealTime'', also known as ...
physics engine middleware
Middleware is a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue".
Middleware makes it easier for software developers to implement c ...
SDK developed by
Nvidia
Nvidia CorporationOfficially written as NVIDIA and stylized in its logo as VIDIA with the lowercase "n" the same height as the uppercase "VIDIA"; formerly stylized as VIDIA with a large italicized lowercase "n" on products from the mid 1990s to ...
as a part of
Nvidia GameWorks software suite
A software suite (also known as an application suite) is a collection of computer programs (application software, or programming software) of related functionality, sharing a similar user interface and the ability to easily exchange data with eac ...
.
Initially, video games supporting PhysX were meant to be
accelerated by
PhysX PPU (
expansion cards designed by
Ageia). However, after Ageia's acquisition by Nvidia, dedicated PhysX cards have been discontinued in favor of the
API being run on
CUDA
CUDA (or Compute Unified Device Architecture) is a parallel computing platform and application programming interface (API) that allows software to use certain types of graphics processing units (GPUs) for general purpose processing, an approach ...
-enabled
GeForce GPUs. In both cases, hardware acceleration allowed for the offloading of physics calculations from the
CPU
A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, and ...
, allowing it to perform other tasks instead.
PhysX and other middleware physics engines are used in a large majority of today's video games because they free
game developers from having to write their own code that implements
classical mechanics
Classical mechanics is a physical theory describing the motion of macroscopic objects, from projectiles to parts of machinery, and astronomical objects, such as spacecraft, planets, stars, and galaxies. For objects governed by classical ...
(Newtonian physics) to do, for example,
soft body dynamics.
History
What is known today as PhysX originated as a physics simulation engine called NovodeX. The engine was developed by Swiss company NovodeX AG, an
ETH Zurich
(colloquially)
, former_name = eidgenössische polytechnische Schule
, image = ETHZ.JPG
, image_size =
, established =
, type = Public
, budget = CHF 1.896 billion (2021)
, rector = Günther Dissertori
, president = Joël Mesot
, a ...
spin-off. 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, the SDK was renamed from NovodeX to PhysX, and the accelerator cards were dubbed PPUs (Physics Processing Units).
The first game to use PhysX was ''
Bet On Soldier: Blood Sport'' (2005).
In 2008, Ageia was itself acquired by graphics technology manufacturer Nvidia. Nvidia started enabling PhysX
hardware acceleration
Hardware acceleration is the use of computer hardware designed to perform specific functions more efficiently when compared to software running on a general-purpose central processing unit (CPU). Any transformation of data that can be calc ...
on its line of GeForce graphics cards and eventually dropped support for Ageia PPUs.
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.
At
GDC 2015, Nvidia made the
source code
In computing, source code, or simply code, is any collection of code, with or without comment (computer programming), comments, written using a human-readable programming language, usually as plain text. The source code of a Computer program, p ...
for PhysX available on
GitHub
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, co ...
, but required registration at developer.nvidia.com. The
proprietary SDK was provided to developers for free for both commercial and non-commercial use on
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
,
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
,
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
,
iOS and
Android
Android may refer to:
Science and technology
* Android (robot), a humanoid robot or synthetic organism designed to imitate a human
* Android (operating system), Google's mobile operating system
** Bugdroid, a Google mascot sometimes referred to ...
platforms.
On December 3, 2018, PhysX was made open source under a
3-clause BSD license, but this change applied only to computer and mobile platforms.
Features
The PhysX engine and SDK are available for Microsoft Windows, macOS, Linux,
PlayStation 3
The PlayStation 3 (PS3) is a home video game console developed by Sony Interactive Entertainment, Sony Computer Entertainment. The successor to the PlayStation 2, it is part of the PlayStation brand of consoles. It was first released on Novemb ...
,
PlayStation 4
The PlayStation 4 (PS4) is a home video game console developed by Sony Interactive Entertainment. Announced as the successor to the PlayStation 3 in February 2013, it was launched on November 15, 2013, in North America, November 29, 2013 in ...
,
Xbox 360
The Xbox 360 is a home video game console developed by Microsoft. As the successor to the original Xbox, it is the second console in the Xbox series. It competed with Sony's PlayStation 3 and Nintendo's Wii as part of the seventh generati ...
,
Xbox One
The Xbox One is a home video game console developed by Microsoft. Announced in May 2013, it is the successor to Xbox 360 and the third base console in the Xbox series of video game consoles. It was first released in North America, parts of ...
,
Wii,
iOS and Android.
PhysX is a multi-threaded physics simulation SDK. It supports
rigid body dynamics,
soft body dynamics (like
cloth simulation, including tearing and pressurized cloth),
ragdolls and character controllers, vehicle dynamics,
particles and volumetric fluid simulation.
Hardware acceleration
PPU
A
physics processing unit (PPU) is a processor specially designed to alleviate the calculation burden on the CPU, specifically calculations involving physics. PhysX PPUs were offered to consumers in the forms of PCI or PCIe cards by
ASUS,
BFG Technologies
BFG Technologies was a privately held U.S.-based supplier of power supplies and video cards based on Nvidia graphics technology and a manufacturer of high-end gaming/home theater computer systems. BFG Technologies branded products were available ...
,
Dell
Dell is an American based technology company. It develops, sells, repairs, and supports computers and related products and services. Dell is owned by its parent company, Dell Technologies.
Dell sells personal computers (PCs), servers, data ...
and
ELSA Technology
Elsa Technology is a computer hardware company. It was founded in 1980 as ELSA Technology AG, a German company manufacturing video cards and other peripherals for Personal Computers. In 2002, the German company filed for bankruptcy while its Tai ...
.
Beginning with version 2.8.3 of the PhysX SDK, support for PPU cards was dropped, and PPU cards are no longer manufactured.
The last incarnation of PhysX PPU standalone card designed by Ageia had roughly the same PhysX performance as a dedicated 9800GTX.
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.
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 accelerating physical simulations using PhysX.
Any
CUDA
CUDA (or Compute Unified Device Architecture) is a parallel computing platform and application programming interface (API) that allows software to use certain types of graphics processing units (GPUs) for general purpose processing, an approach ...
-ready GeForce graphics card (8-series or later GPU with a minimum of 32 cores and a minimum of 256 MB dedicated graphics memory
) 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 build around the PhysX SDK. It was 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.
From version 1.4.1 APEX SDK is deprecated.
Nvidia FleX
FleX is a particle based simulation technique for real-time visual effects. Traditionally, visual effects are made using a combination of elements created using specialized solvers for rigid bodies, fluids, clothing, etc. Because FleX uses a unified particle representation for all object types, it enables new effects where different simulated substances can interact with each other seamlessly. Such unified physics solvers are a staple of the
offline computer graphics world, where tools such as
Autodesk Maya's nCloth, and
Softimage
Autodesk Softimage, or simply Softimage () was a 3D computer graphics application, for producing 3D computer graphics, 3D modeling, and computer animation. Now owned by Autodesk and formerly titled Softimage, XSI, the software has been predomina ...
's Lagoa are widely used. The goal for FleX is to use the power of GPUs to bring the capabilities of these offline applications to real-time computer graphics.
Criticism from Real World Technologies
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
x87 is a floating-point-related subset of the x86 architecture instruction set. It originated as an extension of the 8086 instruction set in the form of optional floating-point coprocessors that worked in tandem with corresponding x86 CPUs. These ...
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 engine
A game engine is a software framework primarily designed for the development of video games and generally includes relevant libraries and support programs. The "engine" terminology is similar to the term " software engine" used in the softwar ...
s such as
Unreal Engine
Unreal Engine (UE) is a 3D computer graphics game engine developed by Epic Games, first showcased in the 1998 first-person shooter game '' Unreal''. Initially developed for PC first-person shooters, it has since been used in a variety of genr ...
(version 3 onwards),
Unity,
Gamebryo,
Vision
Vision, Visions, or The Vision may refer to:
Perception Optical perception
* Visual perception, the sense of sight
* Visual system, the physical mechanism of eyesight
* Computer vision, a field dealing with how computers can be made to gain und ...
(version 6 onwards), Instinct Engine,
Panda3D,
Diesel,
Torque
In physics and mechanics, torque is the rotational equivalent of linear force. It is also referred to as the moment of force (also abbreviated to moment). It represents the capability of a force to produce change in the rotational motion of t ...
,
HeroEngine, and
BigWorld
BigWorld Technology was an Australian software company. It was the developer of BigWorld, a middleware development tool suite for creating massively multiplayer online games (MMO) and virtual worlds. It was formed in 2002 by John De Margheriti ...
.
As one of the handful of major physics engines, it is used in many games, such as ''
The Witcher 3: Wild Hunt'', ''
Warframe
''Warframe'' is a free-to-play action role-playing third-person shooter multiplayer online game developed and published by Digital Extremes. First released for Windows personal computers in March 2013, it was later ported to PlayStation 4 in ...
'', ''
Killing Floor 2'', ''
Fallout 4'', ''
Batman: Arkham Knight'', ''
Planetside 2, ''and ''
Borderlands 2''. 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 (AW), a 3D virtual reality platform with its client running on Windows
*
Amazon Lumberyard, a 3D game development engine developed by
Amazon
Amazon most often refers to:
* Amazons, a tribe of female warriors in Greek mythology
* Amazon rainforest, a rainforest covering most of the Amazon basin
* Amazon River, in South America
* Amazon (company), an American multinational technolog ...
*
Autodesk 3ds Max
Autodesk 3ds Max, formerly 3D Studio and 3D Studio Max, is a professional 3D computer graphics program for making 3D animations, models, games and images. It is developed and produced by Autodesk Media and Entertainment. It has modeling capab ...
,
Autodesk Maya and
Autodesk Softimage
Autodesk Softimage, or simply Softimage () was a 3D computer graphics application, for producing 3D computer graphics, 3D modeling, and computer animation. Now owned by Autodesk and formerly titled Softimage, XSI, the software has been predomin ...
,
computer animation
Computer animation is the process used for digitally generating animations. The more general term computer-generated imagery (CGI) encompasses both static scenes ( still images) and dynamic images ( moving images), while computer animation re ...
suites
*
DarkBASIC Professional
The Game Creators Ltd (TGC; formerly Dark Basic Software Limited) is a British software house based in Macclesfield, Cheshire, England, which specialises in software for video game development, originally for the Microsoft Windows platform. ...
(with DarkPHYSICS upgrade), a
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming l ...
targeted at game development
*
DX Studio
''DX Studio'' is a complete integrated development tool for the creation of 3D video games, simulations or real-time interactive applications for either standalone, web based, Microsoft Office or Visual Studio use.
Development
''DX Studio'' is p ...
, an integrated development environment for creating interactive 3D graphics
*
ForgeLight, a game engine developed by the former
Sony Online Entertainment.
*
Futuremark's
3DMark06 and
Vantage benchmarking tools
*
Microsoft Robotics Studio, an environment for robot control and simulation
*
Nvidia
Nvidia CorporationOfficially written as NVIDIA and stylized in its logo as VIDIA with the lowercase "n" the same height as the uppercase "VIDIA"; formerly stylized as VIDIA with a large italicized lowercase "n" on products from the mid 1990s to ...
's SuperSonic Sled and Raging Rapids Ride, technology demos
*
OGRE
An ogre ( feminine: ogress) is a legendary monster depicted as a large, hideous, man-like being that eats ordinary human beings, especially infants and children. Ogres frequently feature in mythology, folklore, and fiction throughout the wor ...
(via the NxOgre wrapper), an
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
rendering engine
*The
Physics Abstraction Layer
The Physics Abstraction Layer (PAL) is an open-source cross-platform physical simulation API abstraction system. It is similar to a physics engine wrapper, however it is far more flexible providing extended abilities. PAL is free software, relea ...
, a physical simulation
API abstraction system (it provides
COLLADA and
Scythe Physics Editor {{Infobox software
, name = Scythe Physics Editor
, title =
, logo =
, logo caption =
, logo_size =
, logo_alt =
, screenshot =
, cap ...
support for PhysX)
*Rayfire, a plug-in for
Autodesk 3ds Max
Autodesk 3ds Max, formerly 3D Studio and 3D Studio Max, is a professional 3D computer graphics program for making 3D animations, models, games and images. It is developed and produced by Autodesk Media and Entertainment. It has modeling capab ...
that allows fracturing and other physics simulations
*The Physics Engine Evaluation Lab, a tool designed to evaluate, compare and benchmark physics engines.
*
Unreal Engine
Unreal Engine (UE) is a 3D computer graphics game engine developed by Epic Games, first showcased in the 1998 first-person shooter game '' Unreal''. Initially developed for PC first-person shooters, it has since been used in a variety of genr ...
game development software by
Epic Games
Epic Games, Inc. is an American video game and software developer and publisher based in Cary, North Carolina. The company was founded by Tim Sweeney as Potomac Computer Systems in 1991, originally located in his parents' house in Potomac, ...
. Unreal Engine 4.26 and onwards has officially deprecated PhysX.
*
Unity by Unity ApS. Unity's Data-Oriented Technology Stack does not use PhysX.
See also
*
DirectX
Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direc ...
*
Bullet (software)
Bullet is a physics engine which simulates collision detection as well as soft and rigid body dynamics. It has been used in video games and for visual effects in movies. Erwin Coumans, its main author, won a Scientific and Technical Academy Award ...
*
Havok (software)
Havok is a middleware software suite developed by the Irish company Havok. Havok provides a physics engine component and related functions to video games.
In September 2007, Intel announced it had signed a definitive agreement to acquire Havok ...
*
Open Dynamics Engine
The Open Dynamics Engine (ODE) is a physics engine written in C/C++. Its two main components are a rigid body dynamics simulation engine and a collision detection engine. It is free software licensed both under the BSD license and the LGPL ...
*
Newton Game Dynamics
Newton Game Dynamics is an open-source physics engine for realistically simulating rigid bodies in games and other real-time applications. Its solver is deterministic and not based on traditional LCP or iterative methods.
Newton Game Dynamic ...
*
OpenGL
OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve ha ...
*
Vortex (software)
Vortex Studio is a complete simulation software platform. It features a high-fidelity, realtime physics engine developed by CM Labs Simulations that simulates rigid body dynamics, collision detection, contact determination, and dynamic reactions. ...
*
AGX Multiphysics
AGX Multiphysics (now renamed to AGX Dynamics) is a proprietary real-time physics engine developed by Algoryx Simulation AB that simulates rigid body dynamics, collision detection, dry frictional contacts, jointed systems, motors, fluids, def ...
References
External links
Official Product SiteTechgage: AGEIA PhysX.. First ImpressionsTechgage: NVIDIA's PhysX: Performance and Status Report
{{DEFAULTSORT:Physx
Computer physics engines
MacOS programming tools
Nvidia software
PlayStation 3 software
PlayStation 4 software
Programming tools for Windows
Science software for macOS
Science software for Windows
Virtual reality
Wii software
Xbox 360 software
Science software for Linux
Software using the BSD license
Video game development
Video game development software for Linux