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.