:: Back to news index ::

Archive for the ‘PhysX 3’ tag

NVIDIA announces PhysX SDK 4.0, makes engine open-source under BSD-3 license

with one comment

NVIDIA has revealed a new PhysX SDK 4.0 version of the PhysX engine, which incorporates numerous improvements in simulation stability and accuracy (as hinted previously at GDC 2018).

Update: PhysX SDK 4.0 is available

New features include:

  • Temporal Gauss-Seidel Solver (TGS), which makes machinery, characters/ragdolls, and anything else that is jointed or articulated much more robust. TGS dynamically re-computes constraints with each iteration, based on bodies’ relative motion.
  • Overall stability has been improved with reduced coordinate articulations and joint improvements.
  • Increased scalability via new filtering rules for kinematics and statics.
  • New Bounding Volume Hierarchies support fast scene queries for actors with a huge number of shapes.
  • Infrastructure can now incorporate Cmake projects.
  • In addition, both new PhysX SDK 4.0 (starting December 20) and current PhysX SDK 3.4 (starting today) are now available as open-source under 3-Clause BSD license.

    (Please note that BSD-3 licensed platforms include Windows, Linux, Mac OS X, iOS and Android, but not Xbox One, PS4 and Switch).

    PhysX SDK 3.4 source code as available at

    Written by Zogrim

    December 3rd, 2018 at 8:03 pm

    PhysX SDK 3.3.2 arrives, adds GPU acceleration support on Linux

    with 3 comments

    New PhysX SDK 3.3.2 release is available for download.

    Update March 2015: Bug-fixing PhysX SDK 3.3.3 release is available. Release Notes.

    Windows, Linux, OS X, Android and iOS builds are now available for free with source code.


    Among various bug-fixes, this version also features support for GPU acceleration on Linux platform (CUDA-capable devices only) and reworked documentation.

    PhysX SDK 3.3.2: Release Notes


  • Added:
    • The PhysXCommon/64.dll, nvcuda.dll and PhysXUpdateLoader/64.dll are loaded and checked for the NVIDIA Corporation digital signature. The signature is expected on all NVIDIA Corporation provided dlls. The application will exit if the signature check fails.
    • Added the PxDefaultBufferedProfiler extension for simplified SDK profile events extraction.
    • PxSceneDesc::sanityBounds allows a bounding box to be set for validating the position coordinates of inserted or updated rigid actors and articulations.
    • Linux: Now supports GPU PhysX.
    • Added set/getRunProfiled() for PxDefaultCpuDispatcher to control profiling at task level.
    • Android: Support for x86 based devices was added.
    • PxProfileEventHandler::durationToNanoseconds() added. Translates event duration in timestamp (cycles) into nanoseconds.
    • Added SnippetProfileZone to show how to retrieve profiling information.
    • Added SnippetCustomJoint to better illustrate custom joint implementation, and removed SnippetExtension.
    • Added SnippetStepper to demonstrate kinematic updates while substepping with tasks.
  • Fixed:
    • Significant revision of the user’s guide. Both structure and most content have been modified.
    • PxTask::runProfiled() now takes threadId as a parameter.
    • The static pruner now issues a performance warning in debug and checked configurations when a tree rebuild occurs and the tree is not empty.
    • PxSceneDesc::staticStructure now defaults to PxPruningStructure::eDYNAMIC_AABB_TREE.
    • Linux: Switched to shared libraries.
    • Profile zone event names changed to match function calls.
    • Overlapping read/write errors will now issue a PxErrorCode::eINVALID_OPERATION rather than PxErrorCode::eDEBUG_INFO.
    • Improved SnippetToleranceScale to better demonstrate the intended use case.
    • Increased 126 characters limit for warnings on unix platforms, 1k limit on all platforms.
    • PhysXCommon dll load within PhysX dll now respects dll name. Please see the manual’s PhysXCommon DLL load section.
    • Fixed search function of user’s guide.
    • Foundation math classes now have in-place arithmetic operators (+= etc).
  • Deprecated:
    • Indexing operators taking signed integers in PxVec3, PxVec4, PxMat33, PxMat44, PxStrideIterator have been deprecated.
  • Read the rest of this entry »

    Written by Zogrim

    October 11th, 2014 at 4:13 pm

    Posted in PhysX SDK

    Tagged with , , ,

    PhysX SDK 3.3.1 is available

    without comments

    NVIDIA has released minor 3.3.1 update for PhysX SDK 3.3 branch.

    Update: PhysX SDK 3.3.2 released


    PhysX SDK 3.3.1 release is mostly focused on various bug-fixes and optimizations.

    PhysX SDK 3.3.1: Release Notes


  • Added:
    • The friction model can now be changed after scene instantiation with PxScene::setFrictionType. The friction model can also be queried with PxScene::getFrictionType.
  • Changed:
    • PxDefaultSimulationFilterShader now supports particles and cloth as well.
    • PxSimulationFilterCallback: the provided actor and shape pointers are now defined as const. Note: this is no behavior change, it was never allowed to write to those objects from within the callback.
    • The PxTriangleMeshFlag::eHAS_16BIT_TRIANGLE_INDICES and PxTriangleMeshFlag::eHAS_ADJACENCY_INFO enums have been deprecated. Please use PxTriangleMeshFlag::e16_BIT_INDICES and PxTriangleMeshFlag::eADJACENCY_INFO instead.
    • Removed following functions from the API for platforms which do not support CUDA: PxGetSuggestedCudaDeviceOrdinal, PxCreateCudaContextManager, PxLoadPhysxGPUModule.
    • PxShape::getMaterialFromInternalFaceIndex will now return a NULL pointer and produce a warning for input faceIndex value of 0xFFFFffff. This change only applies to mesh and heightfield shapes.
  • Fixed:
    • Fixed concurrency issue on windows. Calling PxScene::simulate on multiple scenes concurrently may have caused a deadlock. This only happened if the scenes shared a single PxCpuDispatcher and the dispatcher was configured to use one worker thread only.
  • Read the rest of this entry »

    Written by Zogrim

    April 10th, 2014 at 10:26 am

    Posted in PhysX SDK

    Tagged with , ,

    Unreal Engine 4 is now available for developers

    with 3 comments

    Epic Games has announced, that their highly anticipated Unreal Engine 4 is now available for developers, with a very friendly licensing model (which even includes full C++ source code) – only $19 per month, plus 5% of gross revenue from any commercial product.

    Advanced physics system in Unreal Engine 4 is based on PhysX 3 (SDK 3.3 already or very soon, as far as we know), including out-of-the-box integration with APEX Clothing and APEX Destruction modules.

    Written by Zogrim

    March 19th, 2014 at 10:55 pm

    Unity 5 announced, incorporates PhysX SDK 3.3

    with 2 comments

    Unity Technologies has announced new version of their popular Unity game engine – Unity 5.

    Among other features, Unity 5 will include a radical update for the built-in physics engine, as the current (and rather old) PhysX SDK 2.8.3 will be replaced with latest PhysX 3.3

    In comparison to PhysX 2.8 branch, PhysX 3 will bring a significant performance improvements and a broad amount of new features, such as advanced vehicle module, new cloth solver, reworked scene queries and CCD systems, full multi-threading support, etc.

    Written by Zogrim

    March 18th, 2014 at 1:13 pm

    APEX 1.3 released, features first iteration of real-time fracturing

    without comments

    New major APEX SDK 1.3 release is now available for public download.

    Update: APEX SDK 1.3.1 released

    1.3 version is featuring support for newest PhysX SDK 3.3.0 and also includes variety of improvements and new features for APEX modules.

    Please note that corresponding authoring tools are required – PhysXLab 1.3 and DCC plug-ins 3.0

    APEX SDK 1.3: Feature Highlights

    APEX 1.3 now features a single Legacy Module (APEX_Legacy).

    In APEX 1.2 every module had its own legacy module. For example, if an application uses APEX clothing and destruction, in APEX 1.2 the application would need to load both APEX_Clothing_Legacy and APEX_Destructible_Legacy.

    However, assets created with APEX 1.1 or 1.2 should “just work” with APEX 1.3. The application must load the legacy module, which contains all the code that allows APEX to automatically upgrade assets to the latest version.

    APEX Destruction and APEX Clothing modules can now utilize Render Proxies.

    The rendering of destructibles and cloth can now be managed by a new object that is independent of the actors themselves. By default you will not see a change, but you may detach this object from the actors, meaning that the render data will not get deleted when the actors are deleted. You may delete the renderable when you’re done with it.

    This is useful for multi-threaded renderers which may have the render data queued up even after the destructible or clothing actor is deleted in the main thread.

    Speaking of Destruction, so called Behaviour Groups functionality was added to authoring pipeline.

    Some common parameters, such as damage threshold, damage spread, density, etc., are now contained in “Behavior Groups“. Every chunk references a behavior group by index, allowing the user to customize behaviors for different chunks within single asset.

    Read the rest of this entry »

    Written by Zogrim

    December 15th, 2013 at 11:08 pm

    PhysX SDK 3.3.0: Final Release

    with 6 comments

    Final release of the new PhysX SDK 3.3 is now available for public, after two rounds of Beta Testing.

    Update: PhysX SDK 3.3.1 is available

    If you are not familiar with SDK 3.3 branch yet, we recommend you to refer Beta-1 and Beta-2 previews for features description, and for “The Evolution of the PhysX SDK” article for the performance improvements (and there are plenty) data.

    As compared with PhysX 3.3 Beta-2, final release is including a set of bug-fixes among with minor improvements, and also more detailed documentation.

    Full SDK 3.3.0 Release Notes can be viewed here.

    PhysX SDK 3.3.0 Final Release (for PC, Linux, OSX, Android and WinRT) is available for download through APEX/PhysX Registered Developer Program (our registration guide).

    Written by Zogrim

    December 11th, 2013 at 1:14 am

    Posted in PhysX SDK

    Tagged with , ,

    PhysX SDK 3.3 Beta is available for public

    with 3 comments

    NVIDIA has released PhysX SDK 3.3 Beta 2 – first public Beta release of the new major version of the PhysX SDK 3.x

    Update: PhysX SDK 3.3.0: Final Release

    PhysX SDK 3.3 introduces a broad set of the new features and also presents a vast performance improvement.

    Please refer for SDK 3.3 Beta Preview for the detailed description of some of the features, and for “The Evolution of the PhysX SDK” article for the performance data.

    PhysX SDK 3.3 Beta 2 – Release Notes


    • Added PhysXDevice/64.dll to the PC packages. See Windows readme for more details.
    • Added support for the NVIDIA Kepler GPU architecture.
    • Added support for the Nintendo Wii U console.
    • Added support for Windows 8 Modern UI applications (ARM and x86).
    • Ported our SIMD library to the ARM NEON architecture.
    • Multi Box Pruning (MBP) is offered as an alternative broad phase algorithm to Sweep And Prune (SAP). MBP shows improved performance when all objects are moving or when inserting large numbers of objects. Its generic performance might be inferior to SAP when many objects are sleeping.
    • Significant performance and stability optimizations for rigid body solver.
    • New function to compute the minimum translational distance and direction to separate two overlapping geometry objects.
    • Improved Persisten Contact Manifold (PCM) contact generation mode is now often faster and more robust than the still available legacy path.
    • Improved performance of scene queries and contact reports.
    • Improved behavior and performance of Continuous Collision Detection (CCD).
    • Reduced memory footprint of rigid body classes.
    • Added support for sharing shapes among rigid bodies.
    • Significantly improved cloth behavior and GPU performance.
    • Added support for cloth colliding against itself, other cloth instances, and scene geometry.
    • Improved useability of binary and xml serialization.
    • Memory can be saved for objects that do not participate in the simulation and are used for scene queries only. For details see the new flag PxActorFlag::eDISABLE_SIMULATION.

    Full PhysX SDK 3.3 Beta 2 Release Notes can be viewed here.

    Read the rest of this entry »

    Written by Zogrim

    July 11th, 2013 at 6:33 pm

    Posted in PhysX SDK

    Tagged with , ,

    Multithreaded performance scaling in PhysX SDK

    with 6 comments

    Recent “The Evolution of PhysX” article has unvealed the current situation with performance improvements among various PhysX SDK vesions, however, one interesting case has remained outside the coverage – performance scaling in multithreaded environments.

    It is known that, while PhysX SDK 2.8 has rather limited multi-threading capabilities (mostly working on per-scene or per-compartment basis), PhysX SDK 3.x can distribute various tasks across worker threads much more effective, and thus offer better support for multi-core CPUs.

    But how well does multi-threading actually work in PhysX 3 (we’ll take the latest 3.3 version)? Using the same PEEL (Physics Engine Evaluation Lab) tool to the record the performance metrics, we will try to shed the light on this question.

    Scene #1 – random dynamic primitives in a box

    Static container filled with 256 random primitives (sphere, box, capsule).

    Read the rest of this entry »

    Written by Zogrim

    May 12th, 2013 at 11:08 pm

    The Evolution of PhysX SDK, performance-wise

    with 6 comments

    A quite interesting, unexpected and a little emotional article – The Evolution of PhysX – was published today by Pierre Terdiman, senior software engineer in NVIDIA and one of the developers of the original NovodeX engine.

    Update: Multithreaded performance scaling in PhysX SDK

    The article provides in-depth performance comparison between various versions of PhysX SDK (2.8.4, 3.2 and 3.3 Beta), using well-known open-source Bullet physics engine as as a reference point.

    The performance tests were performed using PEELPhysics Engine Evaluation Lab, a specialized tool that is using within NVIDIA to research behaviour and performance of various physics engines using a set of standartized scenes.

    Read the rest of this entry »

    Written by Zogrim

    May 12th, 2013 at 12:37 pm

    Copyright © 2009-2014. | About project | Privacy Policy
    PhysX is trademark of NVIDIA Corporation