Changelog
Omni PhysX Bundle 104.2.4-5.1 - 2023-02-03
Version df874d67738df98835b6b5cf36ecec49a1207446
Core
Fixed
Bug involving GPU simulation where newly created actors could miss collisions against existing actors.
Debug visualization for point instancer with indices out of prototypes.
Omni PhysX Bundle 104.2.3-5.1 - 2023-01-30
Version 0baa322e1d6882284a50903e3ceba85f38df8ab3
Core
Fixed
Softbody attachments visualization crash.
Joint visualization crash fix with invalid descriptors.
Apply force error to disabled bodies.
Filtering pairs crash.
Added
Fabric change tracking pause exposed to python bindings.
Omni PhysX Bundle 104.2.2-5.1 - 2023-01-24
Version 71c501e407fb45cc3469c30af271c804801b7f26
Core
Fixed
Crashes where CudaContextManager failed to be created.
Demo text draw.
Contact report call when no scene exists.
Contact report crash when no points are reported.
Trigger reporting if either trigger or the other collider is deleted.
Race condition in omni physx cooking.
Fixed issue on CentOS7 with incorrect math library.
Crash in create D6 joint if the input parameters are illegal.
Sending correctly create/destroy object notification if a body changes from dynamic to static.
Omni PhysX Bundle 104.2.1-5.1 - 2023-01-17
Version bfc1e042528ccf11058577e0438464b4d5be6db0
Core
Fixed
Material property updates when using GPU simulation with omni.physics.tensors.
Create of an external joint.
Unregister custom log channel for supportui.
Articulation Force Sensor delete issues.
Changed
Toggling whether to use convex mesh or custom geometry for cube and cylinder geometry is now a general setting found under Physics Settings. The default is using custom geometry.
Added
Missing is_sleeping/wake_up/put_to_sleep functionality for articulations.
Vehicles
General
Fixed
Some auto-running samples could cause the application to freeze up when the running sequence ended.
Omni PhysX Bundle 104.2.0-5.1 - 2023-01-05
Version 2ac488fd0c9bbb4505ffff5bba0fae32986952d9
Core
Fixed
Custom cone and custom cylinder behavior.
Bounce threshold minimal value, cant be zero.
Crash in error reporting when CUDA initialization failed.
Contact report issue when zero gravity was disabled.
Crash when articulation root got deleted while rest of the hierarchy was still present.
JointState update if the joint was removed during simulation.
Crash when shape was enabled but not yet inserted into a scene.
Changed
Improved demos scope usage.
Omni PhysX Bundle 104.1.6-5.1 - 2022-12-09
Version c8bc89fe7a83d2121fb0d171e8cedd980c351d2d
Core
Fixed
Hierarchy delete with rigid bodies and joints.
Demo categories.
Shift click mouse gesture dragging.
Omni PhysX Bundle 104.1.5-5.1 - 2022-12-05
Version c6c19ec941a4d2a69f24014744e13f108a02bffa
Core
Fixed
Missed collisions with convex hull colliders.
Cooking data save for not writable prims.
ForceAPI applied to a static or kinematic body.
Material creation with invalid parameters.
Replicator materials.
Crash when multiple deformable bodies were deleted.
Vehicles
General
Fixed
Suspension compliance sample.
Omni PhysX Bundle 104.1.4-5.1 - 2022-12-01
Version 05c0c29247ae0f2c83e5d73139f3e527f249cfd5
Core
Fixed
Mass distribution and physics inspector combined usage crash.
Physics demo closing script fix.
Contact reporting crash when zero gravity extension was unloaded.
Rope demo fix.
Articulation parsing crash fix.
Picking crash when a link was deleted.
Supportui crash when new stage was loaded.
Added
Force grab override.
Vehicles
General
Fixed
Crash on invalid USD setup (attribute rigidBodyEnabled being set to false on PhysicsRigidBodyAPI API schema or attribute kinematicEnabled being set to true together with vehicleEnabled being set to true).
Omni PhysX Bundle 104.1.3-5.1 - 2022-11-25
Version 15b4f133baae15b16bde5fa7df5fb130fe8867e6
Core
Fixed
Particle cloth rendering with flatcache and tensor API.
Crash when flatache extension was closed during simulation.
Get scene pointer crash fix when physics toolbar was used.
PhysX SDK binary compatibility.
Deformable debug visualization.
Changed
Demos category reorganization.
Vehicles
General
Fixed
Crash on invalid USD setup, having no physics scene prim with the PhysxVehicleContextAPI API schema applied.
Omni PhysX Bundle 104.1.2-5.1 - 2022-11-21
Version 013b7d61a0d0bb7c7c75cd21ae998c920469dfc5
Core
Added
IPhysxReplicator interface for physics replication.
physics/disableContactProcessing setting to skip onContact processing in omni.physx.
physics/saveCookedData setting to skip saving cooked data into USD.
Changed
Zero gravity sweep mode improvements.
Physics toolbar improvements for auto collision mode on scenes with existing physics.
Fixed
Flatcache reset on stop functionality.
Omni PhysX Bundle 104.1.1-5.1 - 2022-11-16
Version e864c1d0c486956db1d4b4448fe52beb923d390b
Core
Added
PhysxSDFMeshCollisionAPI for SDF properties. “sdf” is an additional valid token for the physics:approximation property. Setting it in the UI applies the new API.
Support angular surface velocity on kinematic bodies.
Changed
ResetOnStop persistent setting was changed to non-persistent.
SDF properties from PhysxTriangleMeshCollisionAPI were moved into the new PhysxSDFMeshCollisionAPI.
Improved physics toolbar work with scene graph instancing.
Mass manipulation improvements.
Fixed
Floating articulation root joint determinism.
RigidBody manipulator with kinematic bodies.
Omni PhysX Bundle 104.1.0-5.1 - 2022-11-09
Version 575f53e707ad3b2cfdfa1af2c735dc3f3b6952fb
Core
Added
Shape volume into IPhysxPropertyQuery.
Physics Authoring toolbar supports instanced assets.
Changed
Dynamic rigid bodies that do have animated xformOp are converted automatically to kinematic bodies. Warning is issued.
Mass distribution manipulator enhancements.
Simulation info window cleanup.
Fixed
SDF collisions contact report.
Physics Authoring toolbar disappears when layout window is used to reset windows.
Range traversal fix for prims with only overs.
Vehicles
General
Added
Extra wheel authoring helpers to configure steer/brake/differential multipliers on a wheel attachment prim.
Fixed
IPhysXPropertyQuery: Report aabbLocalMin / aabbLocalMax with correct local scaling instead of global scaling
Omni PhysX Bundle 104.0.4-5.1 - 2022-10-27
Version 01507652991331a3f20d04bbcf5bc81df3f9f51e
Core
Changed
Simulation output window warns if scene graph instancing is used without omni hydra support enabled.
Fixed
IPhysXPropertyQuery: return valid bounding box for capsule shape
Correct updates to mass properties at runtime
Spherical joint position/-target user input check correctness
Graph
Changed
Scene query graph demo now checks for omni graph flags that are required for the demo to work properly.
Omni PhysX Bundle 104.0.3-5.1 - 2022-10-21
Version 31957463
Core
Fixed
Docking of Physics Authoring Toolbar to the main Viewport does not show Viewport tab (unless it was shown before).
Physics Authoring Toolbar: Collider creation: if existing collider on a prim matches the collider simplification target type, it is skipped and no notification message is shown.
Physics Authoring Toolbar: When auto. collision creation mode is enabled, any prim which has any physics or physx schema applied, is skipped. When collision creation is requested manually by clicking appropriate button on the toolbar, only allowed existing physics components on selected prim are CookedDataAPI, CollisionApi and RigidBodyAPI, otherwise coll. creation is skipped.
Physics Inspector button removed from Physics Authoring Toolbar (can be found under Settings submenu of the toolbar itself)
Crash if cuda context manager was not created correctly and GPUExtensions tried to initialize.
Mass visualization improvements, you can enable the feature via new button that was added to the Physics Authoring Toolbar.
Omni PhysX Bundle 104.0.2-5.1 - 2022-10-14
Version 31932187
Core
Fixed
Reset rigid body for referenced prims when xformOp order was not overridden.
ForceField extension loading/unloading.
Fixed articulation crash when deleted.
Pressing play does not reset the property window scroll position.
OmniPVD OVD recording bug fixed
Added
Enable/Disable Solve Contact for a rigid body.
Vehicles
General
Fixed
Tank snippet sending wrong warning messages about using deprecated attributes when running more than once.
Friction vs. slip graph not showing up in the property window and not updating limits correctly when changing the values interactively.
Assert when collision geometry childed to a wheel attachment was using non unit scale.
Error message showing up when opening filter window for adding tire friction table target.
Omni PhysX Bundle 104.0.1-5.1 - 2022-10-06
Version 31898766
Core
General
Fixed
Gravity magnitude changes when starting at 0.
SupportUI physics inspector treeview issues and joint authoring for joints without limits.
IPhysxFlatcache interface release.
Mass visualization.
Fixed demos using flatcache extension.
Removed
Deprecated event stream V1 usage.
Added
Disable for omni.physx.ui USD notice handling.
OmniPVD recording grayed out for OVD imported scenes
Omni PhysX Bundle 104.0.0-5.1 - 2022-10-01
Version 31867423
Core
General
Fixed
Transform gizmo is disabled when pressing Shift to prevent it colliding with the mouse push or drag functionality.
Angular velocity now properly adjusts the “Velocities in Local Space” setting.
Some advanced properties for spherical and distance joints now appear correctly in the UI.
Collision filtering for triggers.
Invisible prims are no longer grabbed in simulation mode.
Parsing of Improve Patch Friction attribute: The fallback (i.e. if unauthored) is now correctly parsed to enabled.
Crashes when articulations miss contacts due to inadequate contact offsets.
Debug visualization for asynchronous simulation is now working correctly.
Triggers work correctly with convex decomposition colliders.
Typo in particle debug visualization setting /persistent/physics/visualizationDisplayParticlesShowFluidSurface.
Made OmniPVD sampling more robust.
Joint helpers respect correctly visibility attribute.
Point instancers parsing with timesampled values.
Mass inertia when set back to 0,0,0 autocomputation gets correctly triggered.
Fixed incorrect assignment of PDB material
Changed
Local cache path moved out from Documents folder to local OV cache folder. Example: C:\Users${username}\Documents\Kit\apps${appname}\cookedmeshcache -> C:\Users${username}\AppData\Local\ov\cache\Kit${kitversion}${hexnumber}\cookedmeshcache
Renamed particle set debug visualization setting from /persistent/physics/visualizationDisplayParticlesShowFluidParticles to the more accurate visualizationDisplayParticlesShowParticleSetParticles
All joint prims will now show a base joint property widget with the common properties and an optional derived joint widget with the additional properties to enable changing base joint properties for different joint types in multiselection.
DiffuseParticlesAPI is applied on particle sets instead of particle systems.
Default RigidBody maxDepenetrationVelocity changed from 5 to 3.
Deprecated wakeUp, putToSleep and applyForceAtPos function on IPhysx interface and move them to IPhysxSimulation interface, they do now require stageId to be passed too.
Added
Simplified OmniPVD OVD recording with one button
Time stamped OVD files recording
Multiple scenes support
Save to file stream option for legacy PVD
Writes a warning to log if per-joint collisions are enabled for joints that are parts of an articulation.
Writes a warning to log if having the friction attribute set to non-zero on joints that are not parts of an articulation.
UI visualization of held point and force direction when dragging.
TriggerStateAPI that can be additionally applied to a trigger, the TriggerstateAPI contains list of triggered colliders.
Advanced attributes for compliant contacts in rigid-body material and corresponding demo that showcases the attribute.
Advanced Rigid-body attribute Contact Slop Coefficient and corresponding demo that showcases the attribute.
Open file directory and open file in default editor buttons added to the Demo Source window.
Demo Source window now has syntax highlighting.
Python bindings for debug visualization options: VisualizerMode, ParticleVisualizationRadiusType, ParticleVisualizationPositionType
Made it possible to toggle whether to ignore invisible objects when grabbing during simulation. This is enabled by default.
PhysxForceAPI - api that allows force definition for a rigid body. Added physics snippet Force to showcase the usage.
Exposed armature for articulated joints through PhysxJointAPI.
Exposed constraint-force-mixing scale term for articulated bodies through PhysxRigidBodyAPI.
Multiple particle samplers can now sample into the same points prim.
Runtime addition and removal of particle objects.
IPhysxCustomJoint interface that allows injection of custom PhysX SDK joints.
IPhysxCustomGeometry interface that allows injection of custom geometries into PhysX SDK.
IPhysxPropertyQuery to retrieve rigid body mass information.
New settings for empty scene simulation (default false), without physics objects simulation does not run.
New settings that disables sleeping (default false), useful for debugging or benchmarking, can be enabled in Debug window.
Apply torque on IPhysxSimulation interface.
Is sleeping query for a rigid body on IPhysxSimulation interface.
Mass distribution visualization and editing viewport overlay (accessible through the “eye” icon menu.)
Handle user changes to mass/density for PDB particles and deformabe body during simulation
Support PDB material changes during simulation
Dynamic rigid bodies can use triangle mesh colliders with SDFs to get a fast and precise collision response.
Added support for sparse SDFs on the triangle mesh collider.
Vehicles
General
Changed
The vehicle simulation code has been refactored and changes in vehicle dynamics behavior are expected, especially with respect to the suspension force and tire slip.
Many USD attributes of various vehicle components have been deprecated and will not be shown in the corresponding property widgets any longer. They can still be found in the Raw USD Properties view though.
Previously, it was possible to configure the suspension to create an asymmetric and physically questionable spring behavior. This was the case when having the maxDroop attribute value largely diverge from the recommended value of: ((sprungMass x gravity) / springStrength). Now it is not possible to create such an asymmetry any longer but as a consequence, the rest state of the suspension can change significantly and adjustments to the maxDroop value will be required (for example, if a larger value than the recommended one was used, the vehicle will end up sitting higher above ground than previously).
Vehicle rigid bodies should set the disableGravity attribute of the PhysxRigidBodyAPI API schema to true or else a warning will get triggered.
The computation of tire slip does not any longer try to artificially keep the slip low for cases where the longitudinal speed is low but wheel rotation speed is high. As a consequence, vehicles might accelerate more aggressively than previously in which case the tire longitudinal stiffness (longitudinalStiffness attribute of the PhysxVehicleTireAPI API schema) can be reduced to get closer to the legacy behavior. Furthermore, there is also a higher probability to encounter instabilities if a large tire longitudinal stiffness is chosen and at the same time a large simulation timestep is used. In such a case two options can be considered: either reducing the stiffness or increasing the number of vehicle simulation substeps (lowForwardSpeedSubStepCount and highForwardSpeedSubStepCount vehicle attributes). It is also possible to decrease the overall simulation timestep size (increasing timeStepsPerSecond of the physics scene), this, however, affects the whole simulation, thus increasing the vehicle simulation substep count is preferable as a first thing to try.
Using sweeps to detect collisions of the wheels with the ground does not require the wheels to have a collider any longer. The wheel radius and width will define the collision geometry that is used internally for the sweep.
The lowForwardSpeedSubStepCount and highForwardSpeedSubStepCount vehicle attributes are limited to a max mumber of 255.
The Vehicle Creation Wizard will set the targetGear attribute of the PhysxVehicleControllerAPI API schema to 1 for basic drive vehicles and to 255 (automatic gear change mode) for standard drive vehicles now (previously, 0 was used for those types).
The vehicle autobox will no longer kick in unless the target gear is set to automatic gear change mode (often referred to as “DRIVE” in automatic transmissions. Use the special value 255 for this purpose). If the transmission is in reverse or neutral gear, switching to automatic mode will have the same effect as switching to first gear.
Vehicles with basic drive will not accelerate any longer if the target gear is set to 0. Use a positive value for target gear to have a forward torque being applied to the wheels.
Part of the vehicle update logic will now run in parallel on multiple threads if available and if there are enough vehicles to simulate.
The local pose of the wheel collision shape prim with respect to its parent wheel prim will be accounted for in the computation of the local pose given to the PxShape instance that represents the wheel’s collision shape.
Fixed
The effect of camber was not implemented properly. If the effect should be ignored, it is now important to set the camberStiffness attribute to 0.
Added
Many new features and parameters have been added. See the USD Schemas section for more details.
Wheel based tank vehicles are now available (see USD API schemas PhysxVehicleTankDifferentialAPI and PhysxVehicleTankControllerAPI). The Vehicle Creation Wizard has an additional option “Tank Mode” to create such a vehicle type.
The Vehicle Creation Wizard has now an option to make use of Ackermann correction for a pair of steered wheels.
USD Schemas
Changed
PhysxVehicleTireAPI API schema
The longitudinalStiffnessPerUnitGravity attribute will now be set to 500 if not specified.
The longitudinalStiffnessPerUnitGravity attribute has been deprecated and will be removed in the future. Please use the new attribute longitudinalStiffness instead. When migrating code/assets, multiply the old value by the gravitational acceleration.
The camberStiffnessPerUnitGravity attribute will now be set to 0 if not specified.
The camberStiffnessPerUnitGravity attribute has been deprecated and will be removed in the future. Please use the new attribute camberStiffness instead. When migrating, multiply the old value by the gravitational acceleration.
The latStiffX and latStiffY attributes have been deprecated and will be removed in the future. Please use the new lateralStiffnessGraph attribute instead. When migrating code/assets, latStiffX can be used as the first entry of lateralStiffnessGraph. The second entry can be approximated using (latStiffY x sprung mass x gravitational acceleration).
PhysxVehicleAutoGearBoxAPI API schema
The upRatios attribute must not contain an entry for neutral gear any longer (there will be no automatic shift from neutral to first gear anymore).
PhysxVehicleSuspensionAPI API schema
The maxDroop attribute can now be set to a negative number to indicate that the value should be computed automatically.
The maxDroop and maxCompression attributes have been deprecated and will be removed in the future. Please use the new travelDistance attribute instead (set it to maxDroop + maxCompression when migrating your code/assets).
The camberAtRest, camberAtMaxCompression and camberAtMaxDroop attributes have been deprecated and will be removed in the future. Please use the new PhysxVehicleSuspensionComplianceAPI API schema instead to specify a non-zero camber angle.
PhysxVehicleDriveBasicAPI API schema
The peakTorque attribute will now be set to 1000 if not specified. Furthermore, 0 is now a valid value too.
PhysxVehicleWheelAttachmentAPI API schema
The driven attribute will be removed in the future. Please use the new PhysxVehicleMultiWheelDifferentialAPI API schema instead to describe the wheels that are driven by the engine.
The wheelCenterOfMassOffset attribute is deprecated and will be removed in the future. Please use the new attributes suspensionFramePosition and suspensionFrameOrientation instead. For more details see the entry in the “Added” section about these new attributes.
The suspensionForceAppPointOffset and tireForceAppPointOffset attributes have been deprecated and will be removed in the future. Please use the new PhysxVehicleSuspensionComplianceAPI API schema instead to specify the force application points or else leave it up to omni.physx to choose the points.
PhysxVehicleWheelAPI API schema
The maxBrakeTorque and maxHandBrakeTorque attributes have been deprecated and will be removed in the future. Please use the new PhysxVehicleBrakesAPI API schema instead to specify the wheels that encounter a brake torque and to define the maximum torque that can be applied. See entry about PhysxVehicleBrakesAPI for more details.
The maxSteerAngle attribute has been deprecated and will be removed in the future. Please use the new PhysxVehicleSteeringAPI API schema instead to specify the wheels that are steerable and to define the maximum steer angle that can be applied. See entry about PhysxVehicleSteeringAPI for more details.
The toeAngle attribute has been deprecated and will be removed in the future. Please use the new PhysxVehicleSuspensionComplianceAPI API schema instead to specify a non-zero toe angle.
PhysxVehicleControllerAPI API schema
The brake and handbrake attributes have been deprecated and will be removed in the future. Please use the attributes brake0/brake1 instead. See entry about PhysxVehicleBrakesAPI for more details.
The steerLeft and steerRight attributes have been deprecated and will be removed in the future. Please use the attribute steer instead (see corresponding entry under the Added section).
PhysxVehicleContextAPI API schema
The upAxis and forwardAxis attributes have been deprecated and will be removed in the future. Please use the new attributes verticalAxis and longitudinalAxis instead. Note that these new attributes expect token values instead of vectors to make it very explicit that only the main axis directions are supported.
PhysxVehicleAPI API schema
The minLongitudinalSlipDenominator attribute has been deprecated and will be removed in the future. Please use the new attribute minPassiveLongitudinalSlipDenominator instead.
PhysxVehicleEngineAPI API schema
The attributes peakTorque, maxRotationSpeed, dampingRateFullThrottle, dampingRateZeroThrottleClutchEngaged and dampingRateZeroThrottleClutchDisengaged now also accept 0 as a valid value.
Added
PhysxVehicleEngineAPI API schema
Has a new attribute idleRotationSpeed to define the minimum rotation speed of the engine.
PhysxVehicleTireAPI API schema
Has a new attribute restLoad that allows to explicitly specify the rest load of the tire. The attribute has a default value of zero which means it gets computed automatically using (sprungMass x gravity) as an approximation.
Has a new attribute lateralStiffnessGraph which replaces the deprecated attributes latStiffX and latStiffY.
Has a new attribute longitudinalStiffness which replaces the deprecated attribute longitudinalStiffnessPerUnitGravity.
Has a new attribute camberStiffness which replaces the deprecated attribute camberStiffnessPerUnitGravity.
PhysxVehicleAPI API schema
Has a new set of attributes to give some control over the sticky tire mode. See attributes longitudinalStickyTireThresholdSpeed, longitudinalStickyTireThresholdTime, longitudinalStickyTireDamping, lateralStickyTireThresholdSpeed, lateralStickyTireThresholdTime, lateralStickyTireDamping.
Has new attributes minPassiveLongitudinalSlipDenominator, minActiveLongitudinalSlipDenominator and minLateralSlipDenominator to define minimum values for the denominator when computing tire slip. The attribute minPassiveLongitudinalSlipDenominator replaces the deprecated attribute minLongitudinalSlipDenominator.
PhysxVehicleWheelAttachmentAPI API schema
Has new attributes suspensionFramePosition and suspensionFrameOrientation to define the transform of the suspension at max compression relative to the vehicle’s center of mass frame. These attributes replace the deprecated wheelCenterOfMassOffset attribute. Note that as mentioned, these new attributes define the suspension transform at max compression while wheelCenterOfMassOffset used to define the local space wheel position at rest. For migrating old assets/code, the suspensionFramePosition can be set to: wheelCenterOfMassOffset - (suspensionTravelDirection x physxVehicleSuspension:maxCompression).
Has new attributes wheelFramePosition and wheelFrameOrientation to define an additional transform of the wheel relative to the suspension frame. This allows to, for example, have the steering axis not go through the wheel center or to introduce a fixed toe angle.
Has a new attribute “index” which will be used to reference wheel attachments as well as to order the wheel attachments within a vehicle.
PhysxVehicleMultiWheelDifferentialAPI API schema (new)
This new API schema has been introduced to define which wheels are driven by the engine. It also allows to specify how torque should be distributed among the driven wheels. This API schema is meant to replaces the “driven” attribute of the PhysxVehicleWheelAttachmentAPI API schema and will take precedence if used.
PhysxVehicleTankDifferentialAPI and PhysxVehicleTankControllerAPI API schemas (new)
These new API schemas have been introduced to set up a vehicle as a wheel based tank.
PhysxVehicleBrakesAPI API schema (new)
This new API schema has been introduced to specify the wheels that will encounter a brake torque when the brake control fires. The maximum brake torque as well as wheel specific multipliers can be defined too. To allow for up to two sets of brake configurations, PhysxVehicleBrakesAPI has been defined as a multiple apply API schema. The instance names “brakes0” and “brakes1” are used to distinguish between the two configurations. This is a generalization of the previous brake/handbrake split that was rather rigid. As a consequence, the brake controls that go with the two configurations are called brake0 and brake1 and can be found in the PhysxVehicleControllerAPI API schema.
PhysxVehicleControllerAPI API schema
Has two new attributes brake0/brake1 that replace the deprecated brake/handbrake attributes. See previous entry for more info.
Has a new attribute steer that replaces the deprecated steerLeft/steerRight attributes. The equivalent of a steerLeft/steerRight value pair of 1/0 is steer=1 and the equivalent of 0/1 is steer=-1.
PhysxVehicleSteeringAPI API schema (new)
This API schema has been introduced to specify the wheels that are affected by the steer control (see PhysxVehicleControllerAPI). The maximum steer angle as well as wheel specific multipliers can be defined too.
PhysxVehicleAckermannSteeringAPI API schema (new)
This API schema can be used to steer a pair of wheels with Ackermann correction applied.
PhysxVehicleSuspensionAPI API schema
Has a new attribute travelDistance to define the distance the suspension can travel from max compression to max droop. This attribute replaces the deprecatd maxDroop, maxCompression attributes.
PhysxVehicleSuspensionComplianceAPI API schema (new)
This API schema has been introduced to specify toe angle, camber angle and force application points. These properties can either be set to fixed values or denote fixed sized graphs where the values depend on the suspension jounce.
PhysxVehicleTireFrictionTable IsA schema
Has a new attribute defaultFrictionValue to specify what friction value to use if the material of the ground surface is not listed in physxVehicleTireFrictionTable:groundMaterials.
PhysxVehicleContextAPI API schema
Has two new attributes verticalAxis and longitudinalAxis that replace the deprecated upAxis and forwardAxis attributes.
PhysxCharacterControllerAPI API schema
All CharacterControllerAPI properties were moved to PhysxCharacterControllerAPI.
PhysxTriangleMeshCollisionAPI API schema
Added new attributes to set up and control sparse SDFs. The new attributes are sdfResolution, sdfSubgridResolution, sdfBitsPerSubgridPixel, sdfNarrowBandThickness and sdfMargin.
Removed
PhysxVehicleControllerAPI API schema
The automatic attribute has been removed. To enable automatic gear change mode, the targetGear attribute has to be set to the special value 255 instead. Note that a vehicle still needs PhysxVehicleAutoGearBoxAPI configured to enable automatic mode.
PhysxVehicleContextAPI API schema
The sweepRadiusScale and sweepWidthScale attributes are not supported any longer and have been removed.
CharacterControllerAPI API schema
CharacterControllerAPI was removed and its properties moved to PhysxCharacterControllerAPI.
PhysxTriangleMeshCollisionAPI API schema
Custom attribute physxsdfcollision:resolution got removed and replaced by physxTriangleMeshCollision:sdfSubgridResolution
Python Bindings API
Changed
The IPhysxVehicle.get_drive_data method has been deprecated and will be removed in the future. Please use IPhysx.get_vehicle_drive_state of the omni.physx extension instead.
The IPhysxVehicle.set_wheel_rotation_speed and IPhysxVehicle.set_wheel_rotation_angle methods have been deprecated and will be removed in the future. Please use IPhysx.set_wheel_rotation_speed and IPhysx.set_wheel_rotation_angle of the omni.physx extension instead.
The IPhysxVehicle.get_wheel_query_results and IPhysxVehicle.get_wheel_data methods have been deprecated and will be removed in the future. Please use IPhysx.get_wheel_state of the omni.physx extension instead. Please read the corresponding bullet point in the C++ API section for some more details.
The IPhysxVehicle.compute_sprung_masses method now returns an empty list if the computation failed.
The IPhysxVehicle.compute_wheel_simulation_transforms method has been deprecated and will be removed in the future. Please use IPhysxVehicle.compute_suspension_frame_transforms instead. More details can be found in the corresponding bullet point in the C++ API section.
Added
The variable VEHICLE_AUTOMATIC_TRANSMISSION_GEAR_VALUE (import from omni.physx.bindings._physx) can be used to avoid hardcoding the special value for automatic gear change mode.
The IPhysxVehicle.compute_suspension_frame_transforms method has been added as a replacement for compute_wheel_simulation_transforms. More details can be found in the corresponding bullet point in the C++ API section.
C++ API
Changed
The IPhysxVehicle.getDriveDynData and IPhysx.getVehicleDriveData methods have been deprecated and will be removed in the future. Please use IPhysx.getVehicleDriveState of the omni.physx extension instead.
The IPhysxVehicle.setWheelRotationSpeed and IPhysxVehicle.setWheelRotationAngle methods have been deprecated and will be removed in the future. Please use IPhysx.setWheelRotationSpeed and IPhysx.setWheelRotationAngle of the omni.physx extension instead.
The IPhysxVehicle.getWheelQueryResults and IPhysxVehicle.getWheelDynData methods have been deprecated and will be removed in the future. Please use IPhysx.getWheelState of the omni.physx extension instead. Some more detailed changes are listed below:
The returned suspension jounce value is now in range [0, maxCompression + maxDroop] (used to be [-maxDroop, maxCompression])
The returned suspension force is now a vector
The IPhysxVehicle.computeSprungMasses method now returns a boolean to denote success or failure.
If IPhysx.getWheelTransformations is used with addVehicleTransform=false, then the transforms will now be relative to the vehicle rigid body center of mass frame and not the vehicle frame.
The IPhysxVehicle.computeWheelSimulationTransforms method has been deprecated and will be removed in the future (because it is operating on deprecated USD attributes). Please use IPhysxVehicle.computeSuspensionFrameTransforms instead. Note that this replacement method will set the suspension frame transform which is basically the transform of the suspension at full compression (and not wheel rest position like in the old method). Furthermore, the suspension force and tire force application points will not be set by the replacement method any longer (those are part of the new PhysxVehicleSuspensionComplianceAPI API schema now).
Added
The constant expression VehicleControllerDesc::automaticGearValue in the PhysxUsd header file can be used to avoid hardcoding the special value for automatic gear change mode.
The IPhysxVehicle.computeSuspensionFrameTransforms method has been added as a replacement for computeWheelSimulationTransforms. It computes and sets the newly introduced suspensionFramePosition and suspensionFrameOrientation USD attributes of the PhysxVehicleWheelAttachmentAPI API schema. The suspension frame transform is the transform of the suspension at full compression (relative to the vehicle’s center of mass frame). The method will treat the current Xform transform of the wheel attachment prim as the transform at full suspension compression and derive the suspension frame transform from that. More information can be found in the API description of the method.
Removed
The IPhysx.getWheelQueryResult method has been removed. Please use IPhysx.getWheelState as a replacement.
Omni PhysX Bundle 1.4.19-5.1 - 2022-09-02
Version: 31722217
Core
General
Fixed
Transformation reset for referenced rigid bodies.
Physics material assignment issues.
Prismatic joint visualization clipping issue.
Omni PhysX Bundle 1.4.18.2-5.1 - 2022-08-16
Version: 31691169
Core
General
Update to include optimizations for pairs filtering.
Omni PhysX Bundle 1.4.18.1-5.1 - 2022-08-08
Version: 31655032
Core
General
Fixed
Crash in simulation for stages without a PhysicsScene and with CollisionGroups.
Exclusive shape error when PointInstancer is used.
Cloth wireframe fix for visualization in debug viz.
Added
Lego buggy and teddy on ice demo.
Omni PhysX Bundle 1.4.17.1-5.1 - 2022-07-28
Version: 31624704
Core
General
Fixed
Transformation xformOp stack reset with a suffix xformOp.
Transformation xformOp stack and velocities attributes are cleared on stop if simulated in a layer without an opinion.
Viewport2 and viewport legacy physics compatibility fixes.
Omni PhysX Bundle 1.4.16.1-5.1 - 2022-07-25
Version: 31602073
Core
General
Added
Support for viewport2.
Visualization for physics picking while simulation is running.
Omni PhysX Bundle 1.4.15.1-5.1 - 2022-07-20
Version: 31588921
Core
General
Added
Exposed armature for articulated joints through PhysxJointAPI.
Exposed constraint-force-mixing scale term for articulated bodies through PhysxRigidBodyAPI.
Support for setting particle cloth points and velocities during simulation (to implement reset)
TensorAPI updates
Omni PhysX Bundle 1.4.14-5.1 - 2022-06-20
Version 31475809
Core
General
Fixed
Joint localPose parsing fix.
Point instancer debug visualization.
Particle post processing enable/disable fix.
Mass computation for rigid bodies with triggers.
Changed
Zero gravity button is disabled when simulation is running.
Omni PhysX Bundle 1.4.13-5.1 - 2022-06-01
Version 31412806
Core
General
Fixed
Joint icons will refresh properly when omni.physx.ui is enabled after a stage was already loaded.
Joint error icons selection fix.
Joint localPose computation if bodies had scale.
Changed
When creating joints with createJoint(s) util with two selected prims the prim that was selected first is assigned to body 0 and the one selected second to body 1 instead of vice versa.
Omni PhysX Bundle 1.4.12-5.1 - 2022-05-27
Core
General
Fixed
Materials assigned to instanced colliders
Fixed performance issues with collision groups on linux
Added
Setting physics/cudaDevice to define preferred cudaDevice for PhysX SDK
Omni PhysX Bundle 1.4.11-5.1 - 2022-05-20
Version 31370036
Core
General
Fixed
Crashes when articulations miss contacts due to inadequate contact offsets
Omni PhysX Bundle 1.4.10-5.1 - 2022-05-17
Version 31350991
Core
General
Fixed
Crash when setting transform scale to zero on attached deformable body
Attachment debug visualization out of sync with updated attachments
Tensor API error logging code
Omni PhysX Bundle 1.4.9-5.1 - 2022-05-11
Version 31325511
Core
General
Fixed
Crash when adding particles to an empty particle system while sim is running
Memory leak in isosurface generation
Bug causing inaccurate particle-solid collisions
Crash in poisson sampling
Crash when using contact reports with SDF tri-mesh collision preview feature
Articulation force sensors force reporting uninitialized memory forces on first stage update after timeline play when no sim steps were run
Spherical joint hard vs soft limit.
Static collider transformation for instanced prims.
Added
Spherical and Prismatic joints with disjointed body transforms will simulate and produce a warning.
NaN validation check for USD transformation writes.
Omni PhysX Bundle 1.4.8-5.1 - 2022-05-04
Version 31296124
Core
General
Fixed
Removed assumptions in the code that particles will always be rendered using USD spheres.
Rigid static and kinematic bodies transforms are not reset on simulation stop/reset.
Fixes in particle debug visualization.
Fix mass computation for scaled particle cloth
Fix crash when adding deformable body component to mesh with time sampled points. Added warings for collider, particle cloth, particle sampler components.
Added
OverlapShape/OverlapShapeAny added, takes arbitrary UsdGeomGPrim and uses that for overlap queries.
Omni PhysX Bundle 1.4.7-5.1 - 2022-04-27
version 31270438
Core
General
Fixed
CollisionAPI applied to a prim in a hierarchy creates correctly static bodies.
Fix maximal-coordinate joints limits being clamped inside [-90, 90] range
Changed
Parsing optimizations and runtime update loop optimizations.
Added
Use PhysX unwrapped joints on revolute joints without limits to avoid infinite spinning with drive targets outside [-360, 360]
JointStateAPI - support for saving and restoring joint states (articulated joints are supported only atm). Changes to joint state position and velocities is possible only during simulation.
Omni PhysX Bundle 1.4.6-5.1 - 2022-04-19
Version 31229710
Core
General
Fixed
Attribute arrays dimension mismatch crash for user manually instanced actors.
Particle cloth pulled to orgin bug
Changed
Detected closed articulation loops will print all looped joints and will not create the loop joint by default.
Show warning when the particle cloth contains vertices with too many adjacent triangles to fully support lift and drag
Revolute and Fixed joints with disjointed body transforms will simulate and produce a warning.
Omni PhysX Bundle 1.4.5-5.1 - 2022-04-08
Version 31184222
Core
General
Fixed
Tensor API fixes.
Joint visualization for invisible joints.
Particle cloth cooking crash fix.
Changed
Improved behavior of particle fluids near solid boundaries.
Reduced default collision filtering radius for deformable body and particle cloth attachments.
Increased welding tolerance for particle cloth cooking to support default mesh primitives.
Added
Revolute and Fixed joints with disjointed body transforms will not simulate. Error marker will appear over joint helpers of joint with such body transforms.
Added interface and Python bindings for physics interaction API.
“Particle Postprocessing” and “Particle Sampler” tutorial snippets.
Omni PhysX Bundle 1.4.4-5.1 - 2022-04-04
Version 31161611
Core
General
Added
Particles debug visualization: Debug-window option to display render-geometry radius in addition to offsets.
Per Rigid Body local velocity / global velocity switch.
Changed
Deformables brush: Disabled by default.
Attachments: Only support two targets, attaching to world not supported
Active actors available only if required.
Fixed
Gizmo UID free fix.
CPU Dispatcher can be now correctly created with zero threads.
Joint helpers visibility fix after start/stop has been pressed.
Local space velocities fixed.
PhysXSDK fixes for custom geometries.
Transform standardization of physics objects on simulation start correctly handles presence of a scale attribute in case there is no scale op in the XformOps stack.
Particle Sampler:
No more crash when removing particles relationship
Improved feature behavior when editing particles relationship
No more resampling when a stage is saved or loaded from file
Fixes for particle system surface extraction and anisotropy with multiple particle systems.
Asynchronous deformable body cooking is now triggered when changing the scale of a mesh with deformable body component.
Fix crash when removing a particle system referenced by a primitive with particle cloth component.
Support on a physics scene to disable scene queries.
Omni PhysX Bundle 1.4.3-5.1 - 2022-03-25
Core
General
Changed
Debug visualization does not anymore toggle async rendering flag.
Fixed
Flatcache extension proper shutdown.
PhysXSDK fixes for gyroscopic forces.
Omni PhysX Bundle 1.4.2-5.1 - 2022-03-14
Internal Version 31077407
Core
General
Added
New items in Demos/Particles and Tutorials: Cloth Deck Chair, Fluid Isosurface Glass Box, Paint Ball Emitter demos; and Particle Cloth and Particle Inflatable tutorials
Demos extension defines demo asset server base URL in extension toml, see physics.demoAssetsPath
Fixed
Kinematic body target velocity fix, the inertia is not set to infinity during contact
Corrected visualization for Spherical Joint Axis on Y and Z
Fixes for particle debug visualization
Fix visibility issues for non-fluid particle sets when surface extraction is on
Changed
PhysXDevice update
Particle System: change default particleContactOffset to 5cm instead of autocomputation
Particle Cloth: Mesh welding is enabled on by default. Mesh welding ensures that duplicate vertices and triangle indices are removed to enable the correct simulation of a piece of cloth. This option can be turned off if the mesh is deliberately designed to have duplicate vertices or triangle indices. For example, simulating a broken or torn particle cloth.
Fixed Tendon: Dynamics were updated and a new attribute was added that can be used to tune the tendon response per axis
Omni PhysX Bundle 1.4.1-5.1 - 2022-03-07
Internal Version 31050168
Core
General
Changed
Removed PhysxParticleSystem.MaxParticles attribute.
Renamed PhysxSchema.PhysxParticlePoissonSamplingAPI to PhysxSchema.PhysxParticleSamplingAPI.
Improved PhysxParticleSystem property UI.
Fixed
Xform reset for RigidBody, CCT, DeformableBody and ParticleCloth.
Duplication of UsdGeom.Mesh with PhysxSchema.PhysxParticleSamplingAPI, and other particle sampling fixes.
Issues and crashes with Particle Isosurface, Smoothing and Anisotropy components.
Mass/density parsing for DeformableBodyAPI.
Attachment of ParticleCloth (with UsdGeom.Mesh that requires welding for simulation).
Vehicles
General
Fixed
A regression in the Vehicle Creation Wizard caused the second page of the wizard to be inaccessible.
Omni PhysX Bundle 1.4.0-5.1 - 2022-02-21
Internal Version 31013585
Core
General
Added
Support for flat cache change tracking mechanism.
IPhysxSimulation:flushChanges function to flush pending physics updates.
Physics Debug Window now has buttons to remove UsdPhysics and PhysxSchema from selected prims.
Exposed isReadbackSuppressed and /physics/suppressReadback setting for direct GPU access functionality.
Exposed PhysX SDK profile data into carb profiler, can be disabled through a physics setting.
Exposed raycast_any, sphere_sweep_any and overlap_any functions on IPhysxSceneQuery interface.
Exposed raycast/sphere cast collider material information
Button to Physics debug window - Save scene to PhysX SDK RepX format.
Kinematic vs Kinematic contact reporting, enabled when Report Kinematic Kinematic Pairs attribute on a PhysicsScene is set to True (default False)
Kinematic vs Static contact reporting, enabled when Report Kinematic Static Pairs attribute on a PhysicsScene is set to True (default False)
Exposed transformationUpdateFn for IPhysxSimulation callback structure. The function is called right after fetchResults.
Exposed maxBiasCoefficient used in the constraint solver on physics scene.
Exposed Mass Information section into Physics Debug Window.
Joint selection will now outline the rigid bodies it connects to (dynamic body is green, static is red).
Exposed resume flatcache change tracking through IPhysxSimulation callback.
All physics attributes hooked up for runtime changes are now registered automatically to flatcache change tracking mechanism.
Exposed material0 and material1 in contact data event stream.
Added PhysxSchemaPhysxArticulationAPI::ArticulationEnabled attribute that does enable/disable articulation definition.
Added an option to the Visibility (Eye Icon) > Physics > Show By Type > Colliders > Normals that toggles the surface normals.
Added Gear and Rack and Pinion joints to the Create menu.
Added Physics default material binding UI for PhysicsScene prims.
Added stage_id to contact notification events.
Added batched contact reporting through a callback system (IPhysxSimulation::subscribePhysicsContactReportEvents) or through immediate API (IPhysxSimulation::getContactReport) in both cases python binding exist.
Added protoIndex support for raycasts/sweeps/overlaps.
PhysicsScene min/maxIterationCount that limits individual actors (rigidbody, softbody, particles) iteration counts.
Added support for point instancer scale indices.
Added support for UsdGeom hole indices.
Added PhysX CPU dispatcher setting, by default carbonite CPU dispatcher is used, its possible to override this behavior through a physics preferences setting.
Added new attachment type which can be used to attach deformable bodies to colliders, rigid bodies or other deformable bodies or the world frame.
New Menu option Create > Physics > Attachment (based on the selection of one or two suitable primitives)
New visualization option (Eye Icon) > Physics > Show By Type > Attachments
New property window to control the auto generation of attachment points and filters based on two geometrically overlapping primitives
New deformable brush extension for erasing, painting attachment points and collision filters
Added new position based dynamics particle system type - supporting fluid, granular, cloth and inflatable simulations
New Menu option Create > Physics > Particle System (particle system creation is automatic on addition of corresponsing components)
New Option in Create > Physics > Physics Material: PBD Particle Material
New visualization option (Eye Icon) > Physics > Show By Type > Particles
New Particle Cloth component that can be added to mesh prims.
New Particle Set component that can be added to points or point instancer prims.
New Particle Sampler component that can be added to mesh prims. (Autogeneration of points or point instancer).
New Anisotropy, Smoothing and Isosurface components that can be added to a Particle System prim.
New Diffuse Particles component that can be added to a Particle System prim.
Added IPhysxSceneQuery::reportCollisionShapes functions to query created collision shapes in PhysX.
Added support for surface velocity for kinematic bodies. If a kinematic body does have linear velocity set, it is converted into surface velocity. This is useful for example for conveyor belt.
Added custom logging channel omni.physx.logging.robotic. Turned off by default and togglable through /physics/logRobotics setting.
Added support for joint drives on D6 joints that are part of articulations.
Added Attach/Detach StageUpdateNode into Physics debug window, this allows omni.physx simulation attach/detach.
Changed
IPhysxSimulation:simulate: the elapsedTime parameter gets passed to the PhysX simulation directly, no substepping happens anymore. It’s the caller’s responsibility to provide reasonable elapsedTime.
Gear joint GearRatio can be now a negative value and can be changed in runtime.
Rack and Pinion joint Ratio can be now a negative value and can be changed in runtime.
Backward compatibility will check for deprecated schema also after the processing is done and advise if there’s still some deprecated schema found.
Convex hull vertex limit maximum changed from 60 to 64.
IPhysx:getObjectId will now return a valid ID even if there is no directly accessible internal physics representation available (since these IDs might still be used to indirectly access internal data and state through other APIs).
Character controller extension was heavily rewritten on both the python and C++ side.Please see docs and the Character Controller/Arena demo for details on the new usage and utils.
Grouped physics-related widgets in the Property window under a common “Physics” frame.
IPhysx::getSimulationEventStream is deprecated and getSimulationEventStreamV2 should be used instead. For contact reports please use IPhysxSimulation::subscribePhysicsContactReportEvents
For omni.physx release configuration PhysX SDK Checked configuration is used instead of Profile
For elapsed time less or equal to zero, physics update step is skipped completely.
D6 joint definition in articulation hierarchy will have by default all rotation DOF free.
The following Physics settings originally residing in the Preferences window were changed from persistent to per-stage and are now saved to USD and changeable through the Physics Settings window: whole Update group, whole Mouse interaction group and Zero Gravity speed, Min Simulation Frame Rate and Enable Anisotropy for Fluid Rendering settings. Convex decomposition and mesh simplification settings were deprecated alltogether.
If a parent xform of a PhysicsJoint changes scale, linear limits (PrismaticJoint limits for example) are scaled too.
When a joint is created from single selection the prim will be set as body1. A drive target added to it will then define a world to body transformation instead of vice versa when body0 was used. Changed for all joint types to keep consistency.
Joints, presets and rigid body and collider component Add menu options are now always shown, but disabled whenever the prim has alread applied any conflicting APIs (instead of not being shown at all).
Options in the Add menu are now shown/enabled whenever that menu option is usable for at least one of the prims in the current selection and not only when usable for all the prims in the selection.
SimulationOwner property for Rigid Bodies and Colliders is hidden until multiscene support is implemented.
Joint helper 3d models replaced with billboards.
Default rigid body maximum depenetration velocity has been changed to 5 m/s.
Fixed
USD physics resync operation on rigid bodies will restore joints connections.
All joint widgets will now properly include properties from PhysxJointAPI.
PhysxPhysicsRackAndPinionJoint ratio attribute is now in deg/distance (from incorrect rad/distance)
UI widgets limits for physxConvexHullCollision:hullVertexLimit and physxConvexHullCollision:minThickness.
Detecting closed circuits in articulations.
Properties that are authored on a prim, present in UsdPhysics or PhysxSchema schemas, but without these being applied to that prim, will produce a warning. Fixed crashes in property widgets.
Raycast/sweep sphere cast report correct USD face index
Materials are taken correctly if applied within a hierarchy
Rigid body with Colliders Preset or Colliders Preset added to a selection will now undo correctly in one undo step.
Contact report for meshes with convex decomposition approximation does now correctly send only one report per collider.
Gear joint and Rack and Pinion joint are now compatible with articulations.
Removed limits for prismatic joint’s lower and upper limit property widgets.
Distance limit API applied to a D6 joint will now get correctly applied.
Fixed point instancer transformations when point instancer prims did have additional transformation.
Revolute joint Y axis transformation.
Revolute joint velocity drive sign.
Joint authoring rotate gizmo fix.
Random crash during property changes in runtime.
Debug Stop resets time to start time instead of zero when timeline is stopped.
Rigid body with Colliders Preset and Colliders Preset use only one command now and can be safely used on large selections.
Reset transformation non determinism issue.
Articulation drives and limits respect the USD joints body order.
Articulation spherical joint is 3DOF instead of 2DOF to be consistent with max. coordinate spherical joint.
D6 joint limits can be udpated after simulation is started.
Point instancer prototype parsing, if the prototype was outside of the point instancer scope.
Point instancer prototype parsing, if the prototype was scene instanced and nested.
Kinematic rigid bodies compute correctly their mass properties.
Rigid bodies transformation reset now resets correctly if structural changes were made during simulation.
Scaling of rotational joint drive damping and stiffness (Revolute and D6) not part of articulations.
Spherical joint limit order when joint axis is not X, and updating joint limits for spherical joints in articulations from USD after simulation start.
Sign of maximal-coordinate revolute and D6 rotational velocity drive targets to be consistent with articulation directions
Body order assignment when creating a joint on two prims fixed back to first prim to Body 0 rel and second to Body 1.
Refreshing Create main menu on selection change to properly refresh the Joint submenu.
C++ API
Added
The IPhysicsObjectChangeCallback structure has been added to get notifications about internal object creation and destruction.
New IPhysxAttachment interface with attachment functionality needed by attachment visualization and brush, for example.
New IPhysxParticles interface for particle authoring, currently exposing functionality for isosurface, anisotropy and smoothed positions pre-view.
Vehicles
General
Fixed
Having a vehicle camera in a layer with a stronger opinion than the authoring layer could cause a crash.
The Vehicle Creation Wizard did not compute the chassis mass correctly for very small vehicles if the stage meters per unit value was not set to 1.
Removing the PhysicsRigidBodyAPI on a vehicle prim while the simulation is running could cause a crash.
The Vehicle Creation Wizard did not properly scale camber stiffness for small sized vehicles.
The gamepad triggers had to potentially be pressed twice to go into auto-reverse.
Changed
All cameras were removed from the Vehicle extension and moved into a new Camera extension.
Python Bindings API
Changed
The IPhysxVehicle.set_to_rest_state method has been deprecated and will be removed in the future. Please use IPhysx.set_vehicle_to_rest_state of the omni.physx extension instead.
The get_update_all_cameras, set_update_all_cameras, add_follow_camera, add_drone_camera and process_pending_usd_changes methods were removed. Use the new Camera extension and the get_camera_interface to create and setup cameras that track vehicles.
The method IPhysx.compute_vehicle_velocity has been added as a helper to compute the vehicle speed along a given local direction.
C++ API
Added
The method IPhysx.getWheelTransformations has been added to read wheel transformations after the simulation has started.
The method IPhysx.computeVehicleVelocity has been added as a helper to compute the vehicle speed along a given local direction.
Changed
The IPhysxVehicle.setToRestState method has been deprecated and will be removed in the future. Please use IPhysx.setVehicleToRestState of the omni.physx extension instead.
The getUpdateAllCameras, setUpdateAllCameras, addFollowCamera, addDroneCamera and processPendingUsdChanges methods were removed. Please use the methods in IPhysxCamera.h to create and setup cameras that also track vehicles.
Force Field
General
Added
New Force Field extensions that applies forces to Rigid Body objects that make them move in interesting ways. Available force fields include, Planar, Linear, Spherical, Spin, Wind, Drag and Noise. Additional force fields can be added upon request. Refer to the app_create/prod_extensions/ext_force-fields.html documentation for additional details and implementation instructions.
Python Bindings API
Added
Use acquire_physx_force_fields_interface() to acquire the interface and the CreateForceFieldCommand, AddPrimsToForceFieldCommand and RemovePrimsFromForceFieldCommand to add force fields to prims and Rigid Bodies they affect. Use the add_force_field, remove_force_field, set_force_field_xxx, and enable_force_field methods to add, remove and set up the force fields. The prefered method is to create prims and use the GUI. The attach_stage and detach_stage methods are used to set up the force fields without pressing Play in Kit.
C++ API
Added
The IPhysxForceFields.h header lists all of the interface methods.
Camera
General
Added
New camera extension created that provides three cameras to track Rigid Body objects and animated Xforms. A Look Follow Camera follows objects that always stay upright, like vehicles, and points along the look vector direction. A Velocity Follow Camera follows behind any object that can tumble aligns with the velocity vector. A Drone Camera tracks objects from above.
Python Bindings API
Added
Use the PhysXAddFollowCameraCommand, PhysXAddVelocityCameraCommand and PhysXAddDroneCameraCommand to add cameras that respond the Undo and Redo commands. Use the get_camera_interface to get the camera interface, get_update_all_cameras, set_update_all_cameras, add_follow_camera and add_drone_camera methods to add cameras in Python along with the attach_stage, detach_stage, update_controllers and process_pending_usd_changes methods to run the camera without pressing Play in Kit.
C++ API
Added
Use the getUpdateAllCameras, setUpdateAllCameras, addFollowCamera, addVelocityCamera and addDroneCamera methods to add cameras in Python along with the attachStage, detachStage, updateControllers and processUSDNotifyUpdates methods to run the camera without pressing Play in Kit.
Character Controller
General
Fixed
Character capsule pose does reset correctly when stop is pressed.
Omni PhysX Bundle 1.3.15-5.1 - 2021-12-??
Core
General
Fixed
Omni.physx.ui initialization if viewport window failed to be initialized.
Pseudoroot resync USD notification results in a full physics reparse, fixes save as functionality while simulation is running.
CCT requirement check prim validation check added.
Physics debug view synchronization of visualization flags fixed.
Omni PhysX Bundle 1.3.14-5.1 - 2021-11-05
Core
General
Fixed
Two way coupling between softbodies and articulations.
Removed slowdown of stage update by Fixed-Tendon Debug Visualizer on stages with many prims
Possible asynchronous cooking threading issue.
Omni PhysX Bundle 1.3.13-5.1 - 2021-10-15
Core
General
Fixed
RigidBody Max linear velocity default value was changed to infinity.
Kinematic rigid bodies without shapes dont trigger mass related warnings.
ArticulationRootAPI defined on a static rigid body will get ignored and a warning is send to the user.
Removed incorrect layer check for transformation sanitation.
Added Deformable Hand and Deformable Poisson Ratio demo into omni.physx.preview extension.
Fixed mass computation for convex decomposition approximation.
Omni PhysX Bundle 1.3.12-5.1 - 2021-10-05
Core
General
Fixed
Fixed PhysX SDK debug visualization for articulations.
Setting joint body rel will recompute joint poses.
Fixed collider being applied to bodies hidden from the stage window.
Rigid body transformation setup on prims in a layer without edit spec will issue warning.
Exposed new triangle mesh collision parameter - Weld tolerance used for PhysX Cooking welding.
Omni PhysX Bundle 1.3.11-5.1 - 2021-09-22
Core
General
Fixed
PhysX SDK issue related to aggregates broadphase.
PhysX SDK issue related to articulations sleeping.
Added validity check for newly added prims before they are processed in physics update.
Omni PhysX Bundle 1.3.10-5.1 - 2021-09-01
Core
General
Changed
PhysX GPU Cuda context manager crash will stop the simulation. Next simulation will attempt to recreate the Cuda context manager or fall back to CPU.
Fixed joint authoring visualization when joint gizmos were disabled.
Articulation D6 joint is not anymore internally decomposed into several revolute joints, one spherical joint is used instead. Translate DOF is not supported in the D6 joint.
Physics flatcache update fixed a crash with a scene reload.
Fixed crash in Softbody debug visualization when stage got released.
Omni PhysX Bundle 1.3.9-5.1 - 2021-08-22
Core
General
Fixed
Fixed crash bug when deformable bodies come in contact with kinematic rigid bodies.
Improved deformable body collision behavior at small scales.
Crash if point instancer index was out of prototype bounds.
Improved PhysX SDK determinism.
Clamping values in physics preferences after ctrl+clicking a slider and entering a value outside of valid range.
Changed
Convex hull mesh thickness now does not produce a large hull if the original mesh was very tiny.
Omni PhysX Bundle 1.3.8-5.1 - 2021-08-10
Core
General
Added
Backward compatibility on a folder GUI improvements.
Fixed
Backward compatibility on a folder now supports paths on a nucleus server and will not crash on read-only files.
Collision debug visualization now skips camera changes.
Contact report lost is send when objects get deleted.
Joints created with instanceable objects dont issue python errors.
Omni PhysX Bundle 1.3.7-5.1 - 2021-08-05
Core
General
Fixed
Added missing IPhysXCooking interface dependency for omni.physx.ui extension.
Any prim can be now chosen as a Filtered pairs target.
Physics numeric property widgets will not call listeners on each digit change.
Added additional prim validation for range traversals.
CCT’s MoveTarget attribute is now reset to its initial value when simulation stops.
Fixed articulation parsing for disabled joints.
Property widgets min/max and step values are now scaled with stage’s metersPerUnit value where appropriate.
Default state UI will now reset to metersPerUnit scaled value instead of the original one and show correctly when the value is changed from default.
Changed
Triangle mesh collisions are not supported for dynamic rigid bodies by PhysX simulation. Current error was replaced by a warning and collision approximation will fall back to a convexHull approximation.
Physics debug visualization does temporary disable async rendering.
Added
Exposed convex mesh cooking functions to python. Its now possible to get resulting convex cooking data in runtime to python. Added sample for this functionality.
Improved collision between deformable bodies, self-collision, and collision versus articulations.
Changed
Replaced mesh simplification approximation for colliders with better algorithm, and simplified parameters.
Vehicles
General
Omni PhysX Bundle 1.3.6-5.1 - 2021-07-16
Core
General
Added
Process backward compatibility on a folder. Access from Preferences/Physics.
Vehicles
General
Fixed
Deleting a prim with PhysxVehicleWheelAttachmentAPI applied while in play mode could cause a crash.
Vehicles referenced into a stage during play did not work properly if the referenced prim was an ascendant of the vehicle prim (device input to control the vehicle was ignored, for example).
Changed
For vehicles with standard drive, setting the transmission to automatic will be ignored if no auto gear box has been defined. In addition, an error message will get sent.
The property window will hide certain relationships if the corresponding API schemas have been applied instead.
Omni PhysX Bundle 1.3.5-5.1 - 2021-07-08
Core
General
Added
Improved Deformable Body collision mesh simplification. Better mesh simplification algorithm and parameterization, support for remeshing and faster tetrahedral mesh generation.
Vehicles
General
Fixed
The Vehicle Creation Wizard kept the forward axis option locked even if an undo removed the PhysxVehicleContextAPI from the physics scene prim.
Changed
Negative max steer angles are supported now. This allows to create vehicles with a very small turning radius, for example.
Character Controller
General
Omni PhysX Bundle 1.3.4-5.1 - 2021-07-02
Core
General
Added
Adding Deformable Body component during play
Backward compatibility check now reports a list of deprecated attributes and types. This is shown either in the backward compatibility dialog or in console, depending on settings.
IPhysxCooking interface - moved cooking related function from IPhysx and marked them deprecated on IPhysx.
Exposed CreateConvexMesh function on IPhysxCooking.
Changed
Joint visualization is disabled on play and reappear when stopped is pressed (did appear on pause before).
Removed “Command” from command execution strings.
Fixed
Gear joint and rack and pinion joint create order. If the joint was created before the required revolute/prismatic joint, application would crash.
Issue with single body articulation.
Property window refresh when APIApply commands were processed was not working sometimes (e.g. when some components were added or removed).
Crash when material prim did not existed.
Vehicles
General
Fixed
The Vehicle Creation Wizard did not position the wheels correctly if the scan feature was used for the chassis dimensions but not for the wheel dimensions.
Small scale vehicles generated via the Vehicle Creation Wizard did fall asleep too easily.
Changed
The Vehicle Creation Wizard now adjusts the contact offset values for collision geometry based on the vehicle size.
Omni PhysX Bundle 1.3.3-5.1 - 2021-06-22
Core
General
Changed
Using custom PhysxSchemaTokens->physxCollisionCustomGeometry for custom geometry definition.
Default restOffset is -inf - value is computed automatically, its 0.0f for rigid bodies and 2.0cm for deformables (For small deformables, tweaking the rest offset might be required).
Default solver iteration count for rigid bodies was increased from 4 to 16.
Improved bounding sphere for symmetric objects.
Fixed
Issue with materials and convexDecomposition colliders.
RigidBody enabled attribute can be changed in runtime and joints will correctly update.
Added
Deformable CCD (enabled by default when a mesh is set as a deformable)
Adding Deformable Body component during play
Vehicles
General
Fixed
The auto-reverse logic could fail due to the vehicle rigid body falling asleep and it looked like the vehicle got stuck.
Changed
The Vehicle Creation Wizard command does not open message dialog windows anymore to provide warning or error feedback. Instead, a list of message strings is returned.
The Vehicle Creation Wizard has changed thresholds such that it will warn more aggressively about setups that will likely need more simulation steps per second to be stable.
General
Omni PhysX Bundle 1.3.2-5.1 - 2021-06-15
Core
General
Added
Overlap mesh query with a python demo.
Omni.physx.preview extension to showcase PhysX SDK technology that is not yet fully integrated.
Deformable Body collision mesh simiplification. Can be controlled through Deformable Body property widget.
Changed
Tendons authoring improvements.
Physics material does search for purpose physics token, then it falls back to non purpose binding.
Deformable Body collision and simulation mesh visualization improvements.
Fixed
Debug visualization for triangle meshes with various scales was incorrect.
Debug visualization for triangle mesh normals with a negative scale was incorrect.
Point instancer reset transformations when velocities arrays were not provided.
Articulation definition now takes a joint to world correctly as a fixed based articulation.
Removed
Create Deformable Body dialog. Use component add button instead.
Create Deformable Material, was replaced by create physics material.
Python API
Changed
omni.physx.utils
setCollider will correct approximation shape from none (trimesh) to convexHull when the prim is a part of a rigid body.
Vehicles
General
Added
Revolutions per minute can now be specified in the Vehicle Creation Wizard for standard drive vehicles. This gives a bit more control over top speed of the created vehicle.
Fixed
The wheel mass field in the Vehicle Creation Wizard discarded changes unless some other fields were changed first.
Changed
The Vehicle Creation Wizard has been modified to avoid some instabilities if small vehicles are created. As a consequence, the generated parameters might vary a lot compared to the previous version.
The tire prims generated by the Vehicle Creation Wizard are now placed under the vehicle root prim instead of under the shared data root prim.
USD Schemas
Changed
The required APIs that need to be applied to prims such that they can be used as vehicle components have changed.
vehicle prim: instead of PhysxRigidBodyAPI, the existence of UsdPhysics RigidBodyAPI is verified.
vehicle wheel collision prim: instead of PhysxCollisionAPI, the existence of UsdPhysics CollisionAPI is verified.
tire friction table material prims: instead of PhysxMaterialAPI, the existence of UsdPhysics MaterialAPI is verified.
Python Bindings API
Changed
The helper method compute_wheel_simulation_transforms() (computeWheelSimulationTransforms() in C++) sets the tire force application point offset close to the wheel center now.
Character Controller
General
Fixed
Character controller capsule orientation fix
Omni PhysX Bundle 1.3.1-5.1 - 2021-06-04
Core
General
Changed
Raycast/Sweep all demo does create three pyramids by default, the number of pyramids and the size was added as a parameter
Character controller API takes move target as a parameter. Improved Character controller snippet.
PhysxScene solver type TGS is now default.
PhysxCookedDataAPI was changed to be multiple applied API. This changed together with the PhysxMeshCollisionAPI changes ensure that multiple mesh approximations can be authored and precomputed resulting in fast collision switch in runtime.
Added
Added RigidBody Enabled Gyroscopic Force flag, it is enabled by default. (flag is in advanced section).
Softbodies
Articulation tendons
Joint break event into simulation event stream, added a snippet Joint Break to showcase feature.
Default material can be applied to PhysicsScene, Restitution Demo was modified to showcase this usage.
Removed
PhysxMeshCollisionAPI was removed. It was replaced by PhysxConvexHullCollisionAPI, PhysxConvexDecompositionCollisionAPI and PhysxTriangleMeshSimplificationCollisionAPI. Based on the UsdPhysicsMeshCollisionAPI:approximation attribute the matching schema is used. Base on the approximation only those relevant attributes show in the property window. The irrelevant attributes are in the inactive group.
Vehicles
General
Fixed
The vehicle creation wizard transformed the horsepower field to values of engine peak torque that were too high.
Character Controller
General
Added
Character controller collision event steam.
Omni PhysX Bundle 1.3.0-5.1 - 2021-05-28
Core
General
Added
Reset Physics Settings button to reset all physics settings to their default values.
Joint localPose can be changed in runtime, time varied attribute changes are supported.
Added support for articulation force sensors.
Omni.physx.flatcache extension for fast rigid body transformation updates.
Fixed
ConvexDecomposition collision removal in runtime does now correctly trigger mass recomputation.
Remove
Fast cache option was removed. It was replaced by omni.physx.flatcache extension.
Python API
Added
omni.physx.utils
addDeformableBodyMaterial, addDeformableSurfaceMaterial.
omni.physxcommands
AddDeformableBodyMaterialCommand, AddDeformableSurfaceMaterialCommand.
Changed
omni.physx.utils
addMaterial renamed to addRigidBodyMaterial, material params are now optional.
Vehicles
General
Fixed
Optional USD relationships were falsely treated as an invalid setup, if they were authored but set to an empty list.
On simulation stop, attribute values of PhysxVehicleControllerAPI and PhysxVehicleWheelControllerAPI prims were not reset to the pre-simulation-start values.
USD Schemas
Added
The attribute sprungMass has been added to the PhysxVehicleSuspensionAPI API schema and allows the user to set custom values if desired (by default, the values will be computed automatically based on vehicle mass and wheel center-of-mass offsets).
Omni PhysX Bundle 1.2.0-5.1 - 2021-05-05
Core
General
Added
RigidBody CCD demo.
RigidBody Kinematics demo.
Error message if a distance joint should be a part of an articulation.
Rigid Body and Collider to Sub-tree in the Property window’s Add menu.
RigidBody retain accelerations flag exposed. Rigid body carry over forces/accelerations between frames, rather than clearing them.
Option to explicitly create a D6 joint.
Support for transformation changes through flat cache.
TimeStepsPerSeconds simulation parameter per scene. The final number of steps is based on this per scene value and simulation min frame rate persistent setting.
Setting to automatically create a temporary default PhysicsScene when simulation is started and none is available.
Support for RigidBody point instancer position/orientation/velocity/angularVelocity changes in runtime.
Multiple materials per triangle mesh support through UsdGeomSubset - demo added.
Fixed
StartAsleep was not working correctly.
ContactOffset, restOffset runtime changes were not correctly updated.
Joint authoring X trans axis was not visible.
Joints/Articulation are now created with consistent order.
RackAndPinionJoint and GearJoint are now properly created.
ArticulationJoint changes in runtime.
Soft vs hard joint limits.
Static rigid body with a triangle mesh.
Point instanced rigid bodies initial velocity reset.
Static body is considered for joint creation.
Articulation parsing optimizations.
Physics objects are correctly removed when a prim is deleted in runtime.
Contact reports for Point Instancers.
Joint helpers movement when parent xform moved.
Debug visualization now respects collisionEnabled attribute.
Changed
Physics demos are now in a separate extension.
Physics commands are now in a separate extension.
Physics schema is now in a separate extension.
Hidden “Asynchronous Simulate/Render” setting UI if not in Physics Development Mode.
Applying/adding colliders (through components, presets or scripting) now also work with instanced prims.
Issue warning and not create rigid body on an instance proxy.
Optimized NoticeHandler in favor of Flat Cache integration.
Physics Settings (except PVD) moved to the main Preferences window. PVD settings moved to the Physics Debug window.
Joint helpers are displayed only for 100 closest joints.
Instead of running a full upgrade process a backward compatibility check on scene open is now enabled by default and a prompt will be presented to run the upgrade on demand. This check can be disabled, only warn or run the upgrade without prompting in Preferences.
/persistent/physics/backwardCompatibilityCheck setting has been renamed to backwardCompatibilityCheckMode to indicate the aformentioned change in functionality.
Python API
Added
omni.physx
reset_settings() will reset all physics settings to their default values.
Changed
omni.physx.utils
setCollider, setColliderSubtree and removeCollider now also work with instanced prims.
C++ API
Added
IPhysx.h
resetSettings() will reset all physics settings to their default values.
Vehicles
General
Added
Some debug visualization for vehicle suspension has been added. See the new option in the Physics Debug window.
Sample for how to use vehicles to set up a semi-trailer truck.
The PhysxVehicleContextAPI schema can be applied to a UsdPhysicsScene prim through the Add button in the property window.
Tire friction tables (PhysxVehicleTireFrictionTable) can now be added through the Create menu.
The Vehicle Creation Wizard scales physics settings so smaller vehicles are stable down to centimeter scales.
Fixed
Deletion of vehicles after simulation start can now happen through a parent prim (so far, explicit deletion of the vehicle prims was required).
Changed
The API schemas of the vehicle USD representation have undergone some major changes. Please read the USD Schemas section.
Due to the changes mentioned above, the vehicle creation wizard outputs are more compact representation by default now. To get the previous output, where all vehicle components have their own prim, an option has been added to the first page (Create Shareable Components).
It is now allowed to add tire friction tables (PhysxVehicleTireFrictionTable) after the simulation has started.
The Vehicle Creation Wizard reads the forward and up vehicle axes from the VehicleContextAPI prim, if one exists. Otherwise, the up axis is read from the stage and the forward axis can be specified in the wizard.
USD Schemas
Changed
Many IsA schemas have been converted to API schemas. This allows for a more compact (fewer prims) vehicle setup for cases where there is no intent to share vehicle components among vehicle instances. Please have a look at the vehicle setup samples for examples. The following IsA schemas have been converted to API schemas:
PhysxVehicleGlobalSettings => PhysxVehicleContextAPI. In addition, this API has to be applied to a PhysicsScene prim.
The following changes add the option to apply the APIs directly to the prim that has PhysxVehicleWheelAttachmentAPI applied. The relationships to wheel, tire and suspension prim can then be omitted.
PhysxVehicleWheel => PhysxVehicleWheelAPI
PhysxVehicleTire => PhysxVehicleTireAPI
PhysxVehicleSuspension => PhysxVehicleSuspensionAPI
The following changes add the option to apply the APIs directly to the prim that has PhysxVehicleDriveStandardAPI applied. The relationships to engine, gears, auto-gear-box and clutch prim can then be omitted.
PhysxVehicleEngine => PhysxVehicleEngineAPI
PhysxVehicleGears => PhysxVehicleGearsAPI
PhysxVehicleAutoGearBox => PhysxVehicleAutoGearBoxAPI
PhysxVehicleClutch => PhysxVehicleClutchAPI
The following changes add the option to apply the APIs directly to the prim that has PhysxVehicleAPI applied. The relationship to the drive prim can then be omitted.
PhysxVehicleDriveBasic => PhysxVehicleDriveBasicAPI
PhysxVehicleDriveStandard => PhysxVehicleDriveStandardAPI
It is now legal to not define a tire friction table relationship in PhysxVehicleTireAPI. In such a case, any available table will be used (and if none exists, a default will be provided). It is still highly recommended to define a tire friction table and set the relationship but this change allows to reference a vehicle asset after the simulation has started and postpone the tire friction table setup.
Python Bindings API
Added
The methods set_vehicle_visualization() and get_vehicle_visualization() can be used to enable debug visualization for vehicles (note: this is part of the omni.physx.ui extension).
To support add/remove of vehicles while explicitly stepping the simulation, the process_pending_usd_changes() method has been introduced.
The helper method compute_sprung_masses() has been introduced to compute sprung masses for a given wheel arrangement.
C++ API
Added
The methods setVehicleVisualization() and getVehicleVisualization() can be used to enable debug visualization for vehicles (note: this is part of the omni.physx.ui extension).
The helper method computeSprungMasses() has been introduced to compute sprung masses for a given wheel arrangement.
Omni PhysX Bundle 1.1.0-5.1 - 2021-03-17
General
Fixed
Fixed RigidBody CCD
Omni PhysX Bundle 1.1.0-5.1 - 2021-02-05
General
Added
IPhysxSceneQuery::raycastAll function to support multiple hits per raycast, hits are reported through a hit callback RaycastAll demo was added to the physics samples. Python bindings for this function are exposed.
IPhysxSceneQuery::sweepSphereAll function to support multiple hits per sphere sweep, hits are reported through a hit callback SweepSphereAll demo was added to the physics samples. Python bindings for this function are exposed.
ISimulationCallback and SimulationFlag were added to the IPhysxSimulation interface. It is possible to register a callback and get notified about physics transformations. (C++ code only)
Point instancer support for shapes only, while rigid body API is on the instancer itself or above in hierarchy
Support for mesh winding orientation, please check debug visualization for triangle normal orientation
PhysX PVD connection settings exposed in Physics setting menu
Disable button in the character controller (CCT) window to disable CCT on a Capsule without the need to remove it
Pair Collision Filter removal added to stage and viewport context menus under Physics/Remove Preset
Fixed
Removing convexDecomposition approximation, shapes are properly released from PhysX SDK.
Async simulation when provided timestep was smaller than 1.0/60.0
Point instancer with static rigid bodies
Articulation parsing fixes - better determination of articulation root, fixes when bodies 0,1 were in different order
Joint visibility fixed
Primitives under joints can be now selected
Triggers with script buffer type dont try to preload a script
Simulation events are not send from async thread, resolves issues when stepping manually from python
Issues with transformation matrix and scale during physics simulation initialization
KaplaArena sample does not collapse anymore
Removing shapes from compounds in runtime properly
Removing a character controller (CCT) enabled Capsule will properly remove it from the CCT manager and disable CCT camera
Changed
IPhysx::subscribeToPhysicsStepEvents and IPhysx::unsubscribeToPhysicsStepEvents were renamed to subscribePhysicsStepEvents/unsubscribePhysicsStepEvents to match python names
IPhysx::subscribeToPhysicsSimulationEvents and IPhysx::unsubscribeToPhysicsSimulationEvents were renamed to subscribePhysicsSimulationEvents/unsubscribePhysicsSimulationEvents
omni.physx.core renamed to omni.physx.bundle
Centralized base geometry creation utilities into the omni.physx.scripts.physicsUtils module
Physics/Create main menu items moved to stage and viewport context menus under Create/Physics and to the Create/Physics main menu
Physics/Set and Physics/Remove main menu items moved to stage and viewport context menus under Physics/Apply Preset and Physics/Remove Preset
Vehicle changes
General
Added
Vehicles can be added and removed while the simulation is running using a script. There are certain restrictions about how this is done. Please refer to the documentation for details.
Support for sweep queries has been added to detect collision with the ground surface.
Changed
The auto-reverse feature will not get applied anymore if accelerator and brake are controlled through USD directly. The brake value will always be treated as brake and the accelerator value always as accelerator. If a vehicle is controlled through device input (keyboard, gamepad etc.), auto-reverse should behave the same way as before.
USD Schemas
Added
To support sweep queries, the attributes sweepRadiusScale, sweepWidthScale and suspensionLineQueryType have been added (see classes PhysxVehicleGlobalSettings and PhysxVehicleAPI).
Removed
The attributes physxVehicleController:shiftUp and physxVehicleController:shiftDown have been removed. Please use physxVehicleController:targetGear instead (see class PhysxVehicleControllerAPI).
Python Bindings API
Changed
The get_drive_data API call now follows the Vehicle USD schema definition for steerLeft and steerRight as well as gear numbering (reverse = -1, neutral = 0 etc.).
Omni PhysX Bundle 1.0.0-5.1 - 2020-10-28
General
Changed:
PhysX SDK 5.1 integrated
Update UsdPhysics and PhysxSchema to use default values
Physics menu Add was renamed to Create
Physics settings updated to new omni.ui
Physics properties window replaced by omni.kit.property.physx
Update USD velocities is enabled by default
Interfaces renamed:
carb::physics::usd::Physics.h –> omni::physx::PhysxUsd.h
carb::physics::IPhysicsAuthoring.h –> omni::physx::IPhysicsAuthoring.h
carb::physics::IPhysicsSimulation.h –> omni::physx::IPhysicsSimulation.h
carb::physics::IPhysicsUsdLoad.h –> omni::physx::IPhysxUsdLoad.h
carb::physics::physx.h –> omni::physx::IPhysx.h
carb::physics::physxInternal.h –> omni::physx::IPhysxCooking.h
carb::physics::physxSceneQuery.h –> omni::physx::IPhysxSceneQuery.h
carb::physics::physxSceneQueryHit.h –> omni::physx::IPhysxSceneQuery.h
carb::physics::physxUI.h –> omni::physx::IPhysxUI.h
Python bindings moved to a subfolder bindings
Added:
Addeed IPhysicsSimulation
Physics cooked meshes local cache
Asynchronous mesh cooking
Cached getters for omni.physx interfaces
Physics demos can be now opened with a double click
Exposed rigid body transformation through an API, exposed to Python
Added overlap_box and overlap_sphere functions, exposed to Python though new PhysXSceneQuery interface, demos added.
Pvd IP settings and profile/debug/memory instrumentation checkbox
Fixed:
Regression in USD notice handlers when an API was applied in runtime
Fixed traversal to support scene graph instancing
Removed:
Raycast_closest and sweep_closest from physx interface, moved into PhysXSceneQuery interface
PSCL demos were removed, separate extension with these demos was created, they will be published to extension repository
Python Bindings API
Added:
New PhysXSceneQuery interface. Overlap_sphere, overlap_box together with existing raycast_closest and sweep_closest (the query functions on PhysX interface were marked as deprecated).
Vehicle changes
General
Added
The recommended way to fetch the python vehicle interface is now to use omni.physxvehicle.get_physx_vehicle_interface().
Changed
Fixed a bug which reset vehicle Inputs Enabled every time the simulation started.
Fixed a bug that made the vehicle properties window unresponsive in certain cases while in play mode.
Renamed interface carb::physics::physxVehicle.h –> omni::physx::IPhysxVehicle.h
The vehicle specific property window has been removed. The functionality is now part of the common property window.
Python bindings moved to a subfolder bindings
C++ API
Changed:
The vehicle object ID parameter has been removed from getWheelIndex() as it is no longer needed.
USD Schemas
Added:
The attribute vehicleEnabled has been added to the PhysxVehicleAPI. If false, the vehicle simulation update loop will not run for a vehicle.
Removed
The sprungMass parameter of PhysxVehicleSuspension has been removed. The values will be automatically computed based on the mass parameter of the MassAPI schema as well as the wheelCenterOfMassOffset parameters of the PhysxVehicleWheelAttachmentAPI schema.
Vehicle Creation Wizard
Added:
Added a Scan button to each page of the Vehicle Wizard that fits a bounding box around the selected prims in order to measure the Length, Width and Height of the mesh or shape. This information is used on the Basic page to find the dimensions of the chassis and compute the forward direction and vehicle mass. On the Axles page, the dimensions are used to position each of the tires and measure their width and radius. This feature makes it much faster to set up a vehicle.
Added a forward axis drop down to make it easier to orient the vehicle.
Added position inputs for the chassis so it can be positioned around the vehicle mesh. The Scan button will set the position to the center of the bounding box.
Added a third page of documentation to provide some of the “Next Steps” to be completed to finish setting up a vehicle.
Changed:
All of the vehicle components are now created as children of the defaultPrim.
Fixed the calculation of the tire and suspension force positions and position the center of mass as a function of the weight distribution settings.
Moved the default locations of the tires inboard from the edge of the vehicle.
Tires can now be positioned, and tire radii and widths can be set for each tire individually instead of on a per axle basis.
Initialized the tire radii and width as a function of the chassis length so tires are not too large or small.
Python Bindings API
Added:
Two new methods, get_update_all_cameras and set_update_all_cameras(bool updateAllCameras) were added. When updateAllCameras is true, all vehicle cameras are updated continuously, which allows seamless cuts from camera to camera. However, this can lower performance for stages with many cameras. To increase performance, set updateAllCameras to false. In this state, only the active vehicle camera is updated, but switching to a new camera will cause the new camera to reinitialize.
attach_stage(), detach_stage() and update_controllers() have been added to the vehicle interface and can be used to update the vehicle controllers explicitly (instead of being triggered by the stage update loop)
Changed:
The compute_wheel_simulation_transforms API call now positions the tire forces at the bottom of the tire, where the rubber meets the road, instead of at the center of the tire. Since the Vehicle Authoring transforms autocompute tool calls this API function, it also takes advantage of this change.
Removed:
create_controllers() and update_controllers() have been removed from the vehicle testing interface. The new attach_stage(), update_controllers() etc. on the vehicle interface can be used as a replacement.
Omni PhysX Vehicle pre 1.0.0
General
Added:
Support for PhysX vehicles
Default input device support to drive a vehicle
Custom camera types
Special property windows
Vehicle creation wizard
Samples
Python Bindings API
Changed:
add_follow_camera() and add_drone_camera() now require a second argument specifying the USD path for the camera to create. Furthermore, True/False is returned to indicate success/failure of the operation.