Release Notes#

6.1.0 GA#

Release highlights#

General#

  • Updated Isaac Sim to Kit SDK 110.3.0.

  • Added active_cuda_gpus to SimulationApp for selecting renderer GPUs by CUDA device order, and reduced the default CPU thread limit from 32 to 16.

PhysX and Newton#

  • Updated the experimental Newton integration to Newton 1.5.0.

  • Added support for Newton solvers, including Vertex Block Descent (VBD) and Extended Position-Based Dynamics (XPBD).

  • Added support for hydroelastic contacts.

  • Added UI workflows for authoring robots with MuJoCo and Newton schemas.

  • Expanded the tensor APIs to improve parity with the PhysX backend and interoperability between PhysX and Newton.

  • Fixed usability issues and narrowed behavioral gaps between the Newton and PhysX backends.

Synthetic data generation#

Perception data generation (Replicator)#
  • Added a synthetic data generation (SDG) example that uses NVIDIA 3D Object Reconstruction assets.

  • Migrated the UR10 palletizing and behavior-randomizer examples to Replicator functional APIs and isaacsim.core APIs.

Action and event data generation#
  • Actor simulation and synthetic data generation (isaacsim.replicator.agent)

    • Added explicit spawn positions and orientations for pinning character and robot start poses. You can edit these values in the group panels.

    • Made sensor-group placement optional and added the push_cart sample configuration.

    • Added a visual-noise and image-degradation example that uses RTX post-processing.

    • Updated robot animation through Fabric with isaacsim.anim.robot.

  • Object simulation and synthetic data generation (isaacsim.replicator.object)

    • Improved bin packing with gravity-stable placement, more diverse layouts, and an optional fill ratio.

    • Improved annotator output stability and compatibility with Kit SDK 110.

  • Physical-space event generation (isaacsim.replicator.incident)

    • Included spill liquids in semantic-segmentation output.

  • Vision language model (VLM) scene captioning (isaacsim.replicator.caption)

    • Improved camera selection and exposed caption-model settings in both the UI and CaptionAPI.

  • AI-based behavior tree generation (omni.ai.behavior_tree_gen)

    • Improved scenario-planning and tree-generation accuracy and stability.

  • AI-based scene generation (omni.ai.langchain.agent.chat_iro)

    • Added support for user-supplied models and endpoints, including OpenAI-compatible endpoints and self-hosted NVIDIA NIM deployments.

  • Sensor placement and calibration (isaacsim.sensors.rtx.placement and isaacsim.sensors.rtx.calibration)

    • Improved the accuracy of maximum-coverage camera placement.

  • Added eleven Action and Event Data Generation agent skills under skills/ for run planning, configuration sweeps, camera placement, incident events, bin packing, and scene captioning.

  • Added telemetry to the Action and Event Data Generation toolsets for monitoring system efficiency and behavioral trends.

Teleoperation synthetic data generation#
  • Added physics-velocity locomotion, MCAP recording and replay, configuration-driven floating grippers, shared Kit OpenXR and CloudXR sessions, and Windows support for non-VR and debug workflows.

  • Added typed live and MCAP input providers and cross-platform capability discovery.

Robots#

  • Added the SO-101 System Identification (SysID) and Clearpath A300, J100, and DO100 robots.

  • Expanded the URDF and MJCF importers to import additional Newton parameters.

  • Improved URDF Exporter reliability through numerous bug fixes.

  • Expanded the Gain Tuner to support the PhysX and Newton backends, tune Newton actuators, and edit advanced joint-drive parameters.

  • Added beta System Identification tools for headless and interactive optimization of robot simulation parameters.

  • Expanded exported robot-policy deployment with ONNX support, exported actuator configurations, observation history, and PhysX and Newton examples.

  • Added the Virtual Gantry runtime, schema, and UI for suspending robots during bring-up and policy testing with PhysX or Newton.

Sensors#

Cameras and depth sensors#
  • Added a camera-authoring tutorial that demonstrates how to create a reusable camera asset with lens distortion, tick rate, resolution, and supported outputs. You can add the resulting asset to robots or environments for synthetic data generation and software-in-the-loop (SIL) workflows.

  • Updated SingleViewDepthSensor to wrap depth sensors that use existing, user-defined render products.

  • Expanded the sensor-catalog documentation for SICK and Luxonis assets.

  • Fixed several issues in the RtxCamera and CameraSensor APIs.

RTX non-visual sensors#
  • Added the Sensor Processing Graph (SPG) authoring API.

  • Added viewport coloring of RTX LiDAR and Radar point clouds by metadata, such as intensity and radial velocity.

  • Reduced or eliminated CUDA errors when running different sensor modalities or tick rates and during extended simulations.

  • Fixed several issues in the isaacsim.sensors.experimental.rtx APIs.

  • Added Newton support for inertial measurement unit (IMU) and contact sensors and improved the correctness and performance of contact, effort, and inertial sensors.

Bridges#

ROS 2#
  • Added ROS 2 Control support with the new isaacsim.ros2.control extension. Its in-process, physics-driven Controller Manager supports ROS 2 Humble and Jazzy, PhysX and Newton, multiple robots, sensors, mimic joints, and generated URDFs.

  • Added aggregation of compatible transform (TF) publishers into a single merged TFMessage per frame, reducing the number of ROS 2 publish calls.

  • Added automatic bundled ROS 2 environment setup to Python launchers. Use --no-ros-env to opt out.

  • Added ROS 2 High Efficiency Video Coding (HEVC)/H.265 compressed RGB image publishing with hardware-accelerated encoding.

  • Added public point-cloud utilities.

Isaac Sim ROS Workspaces repository#
  • Migrated repository-owned launch files from Python to XML.

  • Expanded Pixi support to include ROS 2 Humble, AArch64, example interfaces, and Greenwave Monitor.

  • Added ROS 2 Control and MoveIt 2 demos for the UR10 with ROS 2 Humble and Jazzy.

  • Added launch-time Isaac Sim Python scripting.

  • Added automatic H.264 and HEVC image decoding.

  • Fixed Ackermann conversion, H1 IMU integration, ROS 2 Control startup, Windows scripts, and Pixi environment isolation.

  • Upgraded Docker builds, ROS key handling, dependencies, and continuous integration coverage across supported ROS and Ubuntu combinations.

ZeroMQ#
  • Added an example extension that demonstrates communication between Isaac Sim and an external process through ZeroMQ.

  • Added ZeroMQ OmniGraph publish and subscribe nodes and moved the shared protobuf schemas to isaacsim.zmq.protos.

Docker#

  • Added an opt-in workflow for hot-reloading bind-mounted Python extensions during container development.

  • Added a persistent Kit shader-cache mount across container runs.

  • Added guidance for configuring writable host bind mounts for the rootless container user.

Live streaming#

  • Updated the Docker Compose WebRTC viewer to use the React-based Omniverse Web SDK sample.

Motion generation#

  • Ported the differential-drive, Ackermann, and holonomic controllers in isaacsim.robot_motion.controllers to the BaseController API for a consistent controller interface.

  • Added reusable Franka and UR10 manipulation examples.

SimReady asset catalog#

  • Expanded the SimReady asset library to 1,533 assets, including a large collection of hospital assets.

  • Added license-attribution files to most assets to define their supported uses.

  • Added Asset Region Profiles for faster and easier access to SimReady assets, and updated the default asset root for the Isaac Sim 6.1 catalog.

  • Added license and owner metadata to asset packages.

Common changes#

The following repository-wide changes affect many extensions and are listed once instead of being repeated in every extension entry:

  • Migrated robot asset references from Isaac/Robots/ to the multiphysics-ready assets under Isaac/Robots_Multiphysics/.

  • Renamed C++ headers from .h to .hpp. Update downstream include directives.

  • Defined supported package-root Python APIs explicitly, removed lifecycle implementation classes from generated API documentation, and updated cross-extension imports to use supported public entry points.

  • Split several reusable components into independently packaged wheels or extensions, including Asset Transformer, robot schemas, robot-motion schemas, Gain Tuner UI, Python Server UI, and ZeroMQ protobuf schemas.

Breaking changes and deprecations#

Change

Action required

Removed in

Renamed C++ headers from .h to .hpp.

Update downstream include directives.

6.1.0

Removed Robot Poser kinematics, math, and inverse kinematics APIs from isaacsim.robot.schema.

Import these APIs from isaacsim.robot.poser.

6.1.0

Replaced PolicyController and the articulation-owning policy classes in isaacsim.robot.policy.examples.

Use PolicySpec, RobotPolicyRunner, and the matching bundled policy specification. The old import paths remain as migration shims, but constructing the classes raises a RuntimeError with replacement code. See the Robot Policy Examples migration guide.

6.1.0

Moved the physics, joint, drive, robot-schema, and material validation rules out of isaacsim.asset.validation.

Use the corresponding SimReady foundation validation tiers, which are now the single source of truth for these rules.

6.1.0

Changed teleoperation grasp-target units to degrees for revolute joints and stage linear units for prismatic joints.

Convert revolute grasp-target values that previously used radians to degrees.

6.1.0

Changed the Gain Tuner natural-frequency conversion APIs to require is_angular and renamed *_revolute_position functions to *_position_drive.

Pass the drive’s stored-gain convention through is_angular and update calls to use the new function names.

6.1.0

Moved the ZeroMQ protobuf schemas and generated bindings out of isaacsim.zmq.core.

Import message classes from isaacsim.zmq.protos.

6.1.0

Removed the ROS 1 transform listener from isaacsim.ros2.tf_viewer.

Use the ROS 2 transform listener.

6.1.0

Removed schema-backed fields from MuJoCoSolverConfig and XPBDSolverConfig.

Configure solver properties on the Newton physics scene.

6.1.0

Deprecated the read_gravity argument on IMUSensor.get_sensor_reading and IMUSensor.get_data and the matching readGravity OmniGraph input.

Remove the argument or input and consume the specific force reported by the IMU.

Not specified.

Deprecated EffortSensor.update_dof_name and EffortSensor.change_buffer_size.

Construct a new EffortSensor for the target joint path.

7.0.0

Removed the retired SICK TiM781 sensor asset.

Use the SICK picoScan100 family.

6.1.0

Known issues#

For known issues, see Known Issues.

Kit SDK version#

Changed: 110.1.2 -> 110.3.0

Kit SDK dependency version changes#

Added#

  • omni.cip.deploy.ui: 1.3.1

  • omni.cip.mega.deploy.ui: 1.1.2

  • omni.cip.mega.mcp: 2.1.4

  • omni.cip.mega.mcp.pip_prebundle: 0.1.0

  • omni.cip.waypoints: 2.1.4

Changed#

  • isaacsim.anim.robot.core: 1.4.2 -> 1.4.4

  • isaacsim.app.compatibility_check: 1.1.4 -> 1.1.6

  • isaacsim.exp.full: 6.0.1 -> 6.1.0

  • isaacsim.kit.xr.teleop.bridge: 1.1.2 -> 1.1.4

  • isaacsim.replicator.agent.core: 1.6.8 -> 1.7.9

  • isaacsim.replicator.agent.ui: 1.0.36 -> 1.2.0

  • isaacsim.replicator.caption.core: 0.7.10 -> 0.7.13

  • isaacsim.replicator.incident.core: 0.11.8 -> 0.11.11

  • isaacsim.replicator.object.core: 0.11.12 -> 0.11.16

  • isaacsim.sensors.rtx.calibration: 0.3.10 -> 0.3.11

  • isaacsim.sensors.rtx.placement: 0.16.10 -> 0.16.14

  • isaacsim.util.debug_draw: 3.2.3 -> 3.2.6

  • isaacsim.xr.input_devices: 1.0.4 -> 1.1.4

  • omni.ai.behavior_tree_gen.bridge: 1.0.4 -> 1.0.8

  • omni.ai.behavior_tree_gen.core: 1.0.2 -> 1.0.6

  • omni.ai.langchain.agent.chat_iro: 2.2.11 -> 2.2.15

  • omni.anim.asset: 110.1.0 -> 110.3.0

  • omni.anim.behavior.bundle: 110.1.0 -> 110.3.0

  • omni.anim.behavior.core: 110.1.4 -> 110.3.5

  • omni.anim.behavior.schema: 110.1.0 -> 110.3.0

  • omni.anim.behavior.tree: 110.1.3 -> 110.3.0

  • omni.anim.behavior.ui: 110.1.4 -> 110.3.0

  • omni.anim.curve.core: 1.6.0 -> 1.6.1

  • omni.anim.graph.bundle: 110.1.1 -> 110.3.0

  • omni.anim.graph.core: 110.1.2 -> 110.3.0

  • omni.anim.graph.schema: 110.1.1 -> 110.3.0

  • omni.anim.graph.ui: 110.1.2 -> 110.3.0

  • omni.anim.navigation.bundle: 110.1.0 -> 110.3.0

  • omni.anim.navigation.core: 110.1.4 -> 110.3.0

  • omni.anim.navigation.schema: 110.1.0 -> 110.3.0

  • omni.anim.navigation.ui: 110.1.1 -> 110.3.0

  • omni.anim.retarget.bundle: 110.1.0 -> 110.3.0

  • omni.anim.retarget.core: 110.1.0 -> 110.3.0

  • omni.anim.retarget.preview: 110.1.0 -> 110.3.1

  • omni.anim.retarget.ui: 110.1.0 -> 110.3.0

  • omni.anim.skelJoint: 110.1.0 -> 110.3.1

  • omni.asset_validator.core: 1.19.3 -> 1.20.1

  • omni.asset_validator.ui: 1.19.3 -> 1.20.1

  • omni.behavior.scripting.bundle: 110.1.0 -> 110.3.0

  • omni.behavior.scripting.core: 110.1.0 -> 110.3.0

  • omni.behavior.scripting.ui: 110.1.0 -> 110.3.0

  • omni.behavior.tree.bundle: 110.1.0 -> 110.3.0

  • omni.behavior.tree.core: 110.1.9 -> 110.3.0

  • omni.behavior.tree.schema: 110.1.0 -> 110.3.0

  • omni.behavior.tree.ui: 110.1.12 -> 110.3.0

  • omni.cip.core: 2.0.23 -> 2.1.5

  • omni.cip.mega: 2.0.18 -> 2.1.4

  • omni.cip.mega.occupancy_map_ui: 2.0.7 -> 2.1.2

  • omni.cip.mega.scenario_payload_ui: 2.0.6 -> 2.1.1

  • omni.cip.mega.ui: 2.0.18 -> 2.1.4

  • omni.cip.mega.waypoints_ui: 2.0.5 -> 2.1.4

  • omni.cip.pip: 2.0.5 -> 2.1.2

  • omni.cip.ui: 2.0.5 -> 2.1.2

  • omni.cip.workspace: 2.0.3 -> 2.1.2

  • omni.cip.wrapp_ui: 2.0.2 -> 2.1.1

  • omni.convexdecomposition: 110.1.13 -> 110.3.2

  • omni.cuopt.examples: 1.4.2 -> 1.4.4

  • omni.cuopt.service: 1.3.3 -> 1.3.5

  • omni.cuopt.visualization: 1.4.2 -> 1.4.3

  • omni.flowusd: 110.0.3 -> 110.0.4

  • omni.graph.window.core: 3.10.4 -> 3.10.5

  • omni.kit.asset_converter: 6.0.1 -> 6.0.5

  • omni.kit.browser.folder.core: 2.0.2 -> 2.0.3

  • omni.kit.browser.material: 1.6.5 -> 1.6.6

  • omni.kit.converter.cad: 209.4.0 -> 209.5.2

  • omni.kit.converter.common: 510.1.3 -> 511.0.0

  • omni.kit.converter.dgn: 510.1.5 -> 510.1.7

  • omni.kit.converter.dgn_core: 512.3.3 -> 513.0.0

  • omni.kit.converter.gsplat: 0.1.14 -> 0.1.16

  • omni.kit.converter.hoops: 510.3.0 -> 510.4.1

  • omni.kit.converter.hoops_core: 511.3.2 -> 512.0.0

  • omni.kit.converter.jt: 509.1.2 -> 509.1.4

  • omni.kit.converter.jt_core: 510.1.1 -> 511.0.0

  • omni.kit.environment.core: 1.4.2 -> 1.4.3

  • omni.kit.graph.delegate.default: 1.2.5 -> 1.2.6

  • omni.kit.livestream.app: 10.1.1 -> 10.3.1

  • omni.kit.livestream.core: 10.2.1 -> 10.4.0

  • omni.kit.livestream.messaging: 1.3.0 -> 1.3.3

  • omni.kit.livestream.rtsp: 10.2.3 -> 10.4.1

  • omni.kit.livestream.webrtc: 10.3.2 -> 10.7.0

  • omni.kit.pointclouds: 1.6.14 -> 1.6.15

  • omni.kit.profiler.tracy: 1.2.0 -> 1.2.1

  • omni.kit.property.physics: 110.1.13 -> 110.3.2

  • omni.kit.stage_column.variant: 1.0.20 -> 1.0.21

  • omni.kit.thumbnails.mdl: 1.0.28 -> 1.2.0

  • omni.kit.timeline.minibar: 1.2.13 -> 1.3.1

  • omni.kit.tool.asset_importer: 6.0.1 -> 6.0.2

  • omni.kit.tool.measure: 200.0.12 -> 200.0.14

  • omni.kit.tool.remove_unused.controller: 0.2.0 -> 0.3.1

  • omni.kit.variant.editor: 107.5.8 -> 107.5.10

  • omni.kit.waypoint.core: 1.6.9 -> 1.6.10

  • omni.kit.widget.timeline: 107.0.2 -> 107.0.4

  • omni.kit.widgets.custom: 1.1.2 -> 1.1.3

  • omni.kit.window.material_graph: 2.2.0 -> 2.2.1

  • omni.kit.window.movie_capture: 3.0.1 -> 3.0.9

  • omni.kit.window.section: 107.1.4 -> 107.2.0

  • omni.mega.schema: 2.0.5 -> 2.1.0

  • omni.metropolis.agent_registry: 0.1.2 -> 0.1.4

  • omni.metropolis.utils: 1.1.2 -> 1.1.3

  • omni.physics: 110.1.13 -> 110.3.2

  • omni.physics.isaacsimready: 110.1.13 -> 110.3.2

  • omni.physics.physx: 110.1.13 -> 110.3.2

  • omni.physics.physx.ui: 110.1.13 -> 110.3.2

  • omni.physics.stageupdate: 110.1.13 -> 110.3.2

  • omni.physics.tensors: 110.1.13 -> 110.3.2

  • omni.physics.ui: 110.1.13 -> 110.3.2

  • omni.physx: 110.1.13 -> 110.3.2

  • omni.physx.asset_validator: 110.1.13 -> 110.3.2

  • omni.physx.bundle: 110.1.13 -> 110.3.2

  • omni.physx.camera: 110.1.13 -> 110.3.2

  • omni.physx.cct: 110.1.13 -> 110.3.2

  • omni.physx.commands: 110.1.13 -> 110.3.2

  • omni.physx.cooking: 110.1.13 -> 110.3.2

  • omni.physx.demos: 110.1.13 -> 110.3.2

  • omni.physx.fabric: 110.1.13 -> 110.3.2

  • omni.physx.foundation: 110.1.13 -> 110.3.2

  • omni.physx.gpu: 110.1.13 -> 110.3.2

  • omni.physx.graph: 110.1.13 -> 110.3.2

  • omni.physx.pvd: 110.1.13 -> 110.3.2

  • omni.physx.supportui: 110.1.13 -> 110.3.2

  • omni.physx.tensors: 110.1.13 -> 110.3.2

  • omni.physx.tests: 110.1.13 -> 110.3.2

  • omni.physx.tests.visual: 110.1.13 -> 110.3.2

  • omni.physx.ui: 110.1.13 -> 110.3.2

  • omni.physx.vehicle: 110.1.13 -> 110.3.2

  • omni.replicator.core: 1.13.27 -> 1.13.36

  • omni.replicator.nv: 1.1.1 -> 1.1.6

  • omni.scene.optimizer.analysis: 110.1.0 -> 110.2.1

  • omni.scene.optimizer.bundle: 110.1.0 -> 110.2.1

  • omni.scene.optimizer.core: 110.1.0 -> 110.2.1

  • omni.scene.optimizer.ui: 110.1.0 -> 110.2.1

  • omni.scene.optimizer.validators: 110.1.0 -> 110.2.1

  • omni.services.client: 0.5.6 -> 0.5.9

  • omni.services.convert.asset: 510.0.2 -> 510.0.4

  • omni.services.convert.cad: 508.0.4 -> 508.0.6

  • omni.services.core: 1.11.0 -> 1.12.0

  • omni.services.facilities.monitoring.metrics: 0.3.1 -> 0.3.2

  • omni.services.pip_archive: 0.18.7 -> 0.18.14

  • omni.simready.content.browser: 0.3.7 -> 0.3.8

  • omni.usd.fileformat.pts: 110.0.2 -> 110.0.3

  • omni.usd.metrics.assembler.physics: 110.1.13 -> 110.3.2

  • omni.usd.schema.physx: 110.1.13 -> 110.3.2

  • omni.usdex.libs: 2.2.2 -> 2.3.0

  • omni.usdphysics: 110.1.13 -> 110.3.2

  • omni.usdphysics.ui: 110.1.13 -> 110.3.2

  • omni.warp.core: 1.13.0 -> 1.16.0

Extensions#

This section lists notable functional changes—new APIs, behavior changes, deprecations, removals, and bug fixes that affect users. All new extensions are listed; internal maintenance, documentation-only changes, and test-only changes to existing extensions are omitted.

  • isaacsim.asset.exporter.urdf (2.0.5 -> 2.2.6)

    • Added

      • Export NewtonMassAPI newton:inertia tensor directly to URDF <inertia>, taking precedence over principal-axis reconstruction.

      • Material export: read OmniPBR/MDL parameters (diffuse, roughness, metallic, emissive) from the .mdl source (resolved against its authoring layer) when not authored as USD shader inputs; USD inputs take precedence.

      • Write roughness/metallic to .mtl (Pr/Pm) and bake a diffuse texture’s average color into Kd, so material appearance round-trips on reimport.

      • UsdToUrdfConverter.convert: add a callback for modifying the completed URDF XML before it is written.

      • UsdToUrdfConverter: optionally export colliding site ghost links with numeric suffixes.

    • Changed

      • Pinned usd-exchange to 2.3.0 for reproducible standalone installs.

    • Fixed

      • Apply composed parent and robot scale to exported primitive geometry dimensions.

      • Classify visual/collision meshes by computed (inherited) purpose.

      • Export X-axis and Y-axis cylinder and capsule orientations correctly.

      • Export native USD joint effort limits using PhysX DriveAPI maxForce when available, falling back to the urdf:limit:effort attribute otherwise.

      • Export unbounded USD revolute joints (±inf limits) as URDF continuous joints.

      • Ignore unauthored or non-finite PhysX DriveAPI maxForce values when exporting URDF joint effort limits.

      • Imported joint friction as newton:friction instead of physxJoint:jointFriction.

      • Re-apply the root prim’s world scale (the component that GetInverse() removes) to the frame-relative transforms, so it propagates to all links.

      • Read joint velocity limits from canonical newton:velocityLimit metadata while preserving finite legacy urdf:limit:velocity values for backward compatibility.

      • Rebase the physical root link’s transform relative to the robot prim so ancestor Xform offsets no longer leak into exported joint origins.

      • Reconstruct products of inertia correctly from rotated USD principal axes.

      • Robustness: strip scale from stored link frames, so an inherited scale cannot cancel the re-applied root scale.

      • Skip geometry-bearing Xforms spuriously tagged IsaacSiteAPI.

      • Skip site ghost links whose resolved name matches an existing URDF link (for example, multiphysics UR10e base_link/base_link).

      • _fmt: use significant-figure formatting so tiny valid inertias (~1e-10) are preserved instead of rounded to 0.

      • export_duplicate_ghost_links: rename site links that collide with their parent link name instead of always skipping them.

  • isaacsim.asset.exporter.urdf.ui (1.0.2 -> 1.0.6)

    • Fixed

      • Preserve temporary PhysX-computed mass properties until URDF conversion completes.

  • isaacsim.asset.gen.omap (2.3.3 -> 2.3.5)

    • Fixed

      • Clear the octree before the generation guards so a failed run cannot return the previous run’s data.

      • Log an error instead of crashing when generating a map or updating the visualization with no stage attached.

      • Raise a Python error instead of crashing when constructing a Generator with an unknown stage id.

      • Re-resolve the physics scene on each generate2d/generate3d call so a generator survives stage replacement.

      • Reference count the scripting interface so one holder’s release no longer invalidates others.

  • isaacsim.asset.gen.omap.ui (2.6.2 -> 2.6.5)

    • Changed

      • Replaced omni.physx.scripts.utils (setCollider/removePhysics) usage with isaacsim.core.experimental.utils.physics helpers.

    • Fixed

      • Skip image generation when the occupancy map is empty, so a stale image or ROS config cannot be saved.

  • isaacsim.asset.importer.mjcf (3.10.1 -> 3.12.1)

    • Changed

      • Updated MuJoCo to 3.11.0, newton-usd-schemas to 0.4.1, and mujoco-usd-converter to 0.5.0, and pinned usd-exchange to 2.3.0.

  • isaacsim.asset.importer.mjcf.ui (1.4.4 -> 1.4.7)

    • Added

      • Added an option to reference imported USDs into the current stage via stage_utils.add_reference_to_stage.

  • isaacsim.asset.importer.urdf (3.11.2 -> 3.11.10)

    • Changed

      • Updated urdf-usd-converter to 0.3.2.

      • Pinned usd-exchange to 2.3.0 for reproducible standalone installs.

    • Fixed

      • Author a playback range when an imported robot provides no time-code range.

      • Imported joint friction as newton:friction instead of physxJoint:jointFriction.

      • Preserve XML comments during fixed-joint merging and relative mesh path rewriting.

      • Removed the standalone dependency on isaacsim.core.experimental when authoring default time-code ranges.

      • Resolve package mesh URIs after fixed-joint merging.

  • isaacsim.asset.importer.urdf.ui (1.4.3 -> 1.4.6)

    • Added

      • Added an option to reference imported USDs into the current stage via stage_utils.add_reference_to_stage.

  • isaacsim.asset.importer.utils (1.8.1 -> 1.9.1)

    • Added

      • Added MjcJointAPI support to joints.

      • PhysX-to-MJC conversion now completes joints that already have MjcJointAPI applied (previously skipped): it authors the mjc:* attributes and (re)creates the MjcActuator, keeping re-runs idempotent.

      • MjcActuator names no longer collide when joints share a leaf name across the hierarchy (for example /robot/arm/joint1 and /robot/leg/joint1). The colliding actuator is now given a unique full-path-based name with a warning instead of being silently dropped or overwritten.

    • Changed

      • Load isaacsim.asset.importer.utils from its own projected prebundle of the shared isaacsim-asset wheel.

      • Updated the pip wheel to use usd-optimize 1.1 without requiring Kit.

      • Added support for Scene Optimizer Core 110.2.1 when merging meshes.

      • Updated imports from omni.scene.optimizer to usd_optimize.

    • Removed

      • Removed deprecated urdf:limit:velocity to physxJoint:maxJointVelocity conversion. The upstream converter now authors newton:velocityLimit directly.

    • Fixed

      • Fixed-base detection treats a joint as a world anchor when body1 is an articulation rigid body and body0 is unset or non-rigid; joints with body1 empty are ignored.

      • Preserve inherited collision purposes during mesh merging and use world-anchoring joints (any physics joint type) as fixed-base articulation roots.

  • isaacsim.asset.transformer (1.2.5 -> 6.1.0)

    • Changed

      • Load isaacsim.asset.transformer from the independently built isaacsim-asset wheel while preserving existing imports.

  • isaacsim.asset.transformer.rules (1.7.10 -> 1.7.18)

    • Added

      • New URL-safe path helpers in utils for omniverse:// handling.

      • InterfaceConnectionRule: new clear_default_variant_sets param to leave listed variant sets unselected. isaacsim_structure.json uses it for Physics.

      • PhysxToMjcConversionRule converts PhysX joints and articulations to MuJoCo/Newton schemas with the physx_to_mjc_conversion.json profile. It edits the working stage in place or authors the conversion into a separate overlay layer when destination is a USD file.

    • Changed

      • Updated isaacsim_structure.json so it does not select a default PhysX variant.

      • Pinned usd-exchange to 2.3.0 for reproducible standalone installs.

      • physx_asset_to_mjc no longer expands D6/spherical joints; it warns and leaves them untouched to preserve the articulation structure.

    • Fixed

      • Preserve relationship target order during prim routing, keeping MuJoCo fixed-tendon coefficients associated with the correct joints.

      • Removed routed PhysX drive and joint-state schemas from MuJoCo overlays.

      • FlattenRule no longer leaks source paths into generated layers.

      • InterfaceConnectionRule._generate_folder_variants now only sets a default variant selection when the requested variant exists in the variant set.

      • MaterialsRoutingRule now downloads and embeds UDIM texture families locally.

      • VariantRoutingRule no longer leaks identity-only Xformable opinions onto targets.

      • VariantRoutingRule now resolves variant dependencies from remote Nucleus URLs.

      • utils.norm_path and resolution helpers now handle remote URLs safely.

  • isaacsim.asset.validation (1.3.6 -> 2.2.0)

    • Added

      • Added RGBSensorUsdRule for validating authored RGB sensor USD assets.

      • Exposed SimReady foundation tier rules in the Asset Validator interface.

    • Changed

      • Dropped the omni.asset_validator.core dependency; physics and robot-schema Kit dependencies are retained for tier validators that need the runtime.

      • The extension now provisions simready-validate and the SimReady foundation-tier packages through [python.pipapi] instead of registering rules with the Omniverse Asset Validator.

    • Removed

      • Removed the in-extension physics, joint, drive, robot-schema, and material validation rules. Use the corresponding SimReady foundation validation tiers, which are now the single source of truth.

    • Fixed

      • Register RGBSensorUsdRule explicitly on startup so it survives the Asset Validator registry reset.

  • isaacsim.asset.validation.ui (1.0.0)

    • Added

      • Added profile-driven validation for the current stage and selected USD assets.

  • isaacsim.code_editor.python_server (1.3.1 -> 1.4.0)

    • Added

      • Added a small immutable runtime status API for companion extensions.

      • Added temporary listener stop/start and transactional IPv4 host/port restart with rollback.

  • isaacsim.code_editor.python_server.ui (0.1.0)

    • Added

      • Added a top-right Python server status indicator with runtime listener controls.

  • isaacsim.code_editor.vscode (1.2.3 -> 1.2.5)

    • Fixed

      • Resolve the Python server’s live state and bound endpoint when VS Code is launched.

  • isaacsim.common (6.2.0)

    • Added

      • Added shared Kit-integrated logging services and C, C++, and Python profiling APIs.

  • isaacsim.core.deprecation_manager (0.4.2 -> 0.4.4)

    • Added

      • Added a public deprecated decorator for Python API compatibility shims.

    • Fixed

      • Avoid accessing invalidated prims while migrating deprecated OmniGraph nodes.

  • isaacsim.core.experimental.actuators (0.1.2 -> 0.1.6)

    • Changed

      • Used joint_target_q / joint_target_qd on Newton actuator control adapters.

    • Fixed

      • ArticulationActuators.from_actuators now accepts device argument instead of using the wp default device.

  • isaacsim.core.experimental.materials (0.7.1 -> 0.10.0)

    • Added

      • Declare the rtx.materialDb.nonVisualMaterialSemantics.prefix setting, defaulting to omni:simready:nonvisual.

    • Changed

      • Fixed base material spelling calibration_lambertion -> calibration_lambertian.

      • NonVisualMaterial.decode_material_ids: return the decoded attributes as a list of strings instead of a single string.

      • NonVisualMaterial: author a minimal UsdPreviewSurface connected to outputs:surface when the material has no shader, so non-visual material IDs resolve after a cold stage load (not only when authored live). Materials that already have a shader are left untouched.

      • NonVisualMaterial: author attributes using the SimReady spec USD types (base/coating as token, attributes as token[]), and support multiple attributes per material combined into the material-ID bitfield.

    • Fixed

      • NonVisualMaterial: fall back to the default attribute prefix when the RTX setting is unset, instead of building attribute names from None.

  • isaacsim.core.experimental.objects (0.8.1 -> 0.9.0)

    • Added

      • Added Stage object.

  • isaacsim.core.experimental.primdata (0.3.3 -> 0.3.6)

    • Changed

      • Create articulation and rigid-body tensor views for both PhysX and Newton (previously PhysX-only).

      • Gate DOF field callbacks on maxDofs > 0 so 0-DOF articulations still expose root transforms.

    • Fixed

      • Allocate PhysX rigid-body and articulation field buffers on the simulation view’s resolved device when the reader is initialized with automatic device selection.

      • Detect and recreate invalid simulation views, releasing stale tensor handles on physics reset.

      • Extract DOF names from the tensor-reported path string directly.

      • Leave dof_efforts unavailable on Newton since it does not expose getDofProjectedJointForces, preventing a semantically different actuation force or valid zero from being reported as measured joint effort.

      • Match getDofIndex by exact full path first, then fall back to leaf-name match.

  • isaacsim.core.experimental.prims (1.8.9 -> 1.10.8)

    • Added

      • Added lateral friction-force support to tensor contact data.

      • GeomPrim.remove_collision_apis() to remove the collision APIs (and, for meshes, the mesh-approximation and PhysX cooked-data APIs) applied by apply_collision_apis(). Maintained replacement for omni.physx.scripts.utils.removeCollider.

      • RigidPrim.remove_physics_apis() to remove the UsdPhysics.RigidBodyAPI / PhysxSchema.PhysxRigidBodyAPI applied at construction. Maintained replacement for omni.physx.scripts.utils.removePhysics.

      • XformPrim.apply_physics_materials() for binding physics materials at transform roots while controlling descendant binding precedence.

    • Fixed

      • XformPrim.reset_xform_op_properties: preserve poses authored with rotation or transform operations.

      • Added get_world_scales().

      • get_local_scales() returns unit scaling when the scaling attribute does not exist.

  • isaacsim.core.experimental.utils (0.17.2 -> 0.23.0)

    • Added

      • Added USD support to xform.set_local_pose, including prims with non-canonical transform operation stacks.

      • Added compute_bound_range to bounds utils for axis-aligned bound midpoint and size in world, local, or untransformed coordinates.

      • Added compute_bound_volume to bounds utils for bound volume via GetVolume() in world, local, or untransformed frames.

      • Added join_prim_paths to prim utils for joining prim path segments into a single validated (USD-compatible) prim path.

      • Added a physics utilities module with apply_collision, remove_collision, apply_rigid_body, and remove_rigid_body authoring helpers as maintained replacements for omni.physx.scripts.utils.

      • Added rotate_vectors_by_quaternion and transform_local_to_world to transform utils for frame-aware vector and point transforms.

      • Added set_prim_attribute_value, delete_prim_attribute, and is_prim_valid helpers with USD, USDRT, and Fabric support.

      • Added a space parameter to compute_aabb for computing bounds in world, local, or untransformed coordinate frames.

      • Added transform_world_to_local as the inverse point-frame transform to transform_local_to_world.

      • Added a space parameter to compute_obb for computing bounds in world, local, or untransformed coordinate frames.

      • Added multi-apply schema instance queries to prim.has_api through the optional instance_name argument.

    • Fixed

      • Align input dtypes in quaternion_multiplication when the second quaternion is NumPy float64 and the first is Warp float32.

      • Compute child-inclusive local and untransformed AABBs in the root prim’s coordinate frame.

      • Make apply_collision update existing collision enablement and mesh approximation state instead of returning early.

  • isaacsim.core.includes (2.9.1 -> 2.9.4)

    • Fixed

      • Guard Fabric transform lookups when a prim exists in USD but is missing from USDRT.

  • isaacsim.core.nodes (5.10.6 -> 5.10.13)

    • Added

      • IsaacAttachHydraTexture can optionally define requested RenderVars as direct children of the attached RenderProduct instead of under /Render/Vars.

      • IsaacReadCameraInfo: added a cameraIntrinsics output (3x3 intrinsics matrix) computed from the camera’s focal length, apertures, and resolution.

    • Changed

      • IsaacMapScalarsToColors: apply log-scaling to unnormalized inputs, clamping non-positive scalars at bottom of range.

    • Fixed

      • IsaacArticulationController: jointIndices=[0] no longer broadcasts the command to all DOFs instead of selecting DOF 0.

      • IsaacGetViewportRenderProduct: no longer raises AttributeError when the named viewport is missing; it now logs the viewport name and reports failure.

  • isaacsim.core.rendering_manager (0.4.3 -> 0.5.1)

    • Added

      • Added an opt-in ViewportManager.optimize_render_products() API to balance camera render products across active GPUs.

  • isaacsim.core.simulation_manager (1.15.6 -> 1.17.1)

    • Added

      • Added Newton solver-specific physics scene wrappers and scene-object resolution.

      • Added the enable_default_callbacks setting to disable default timeline and stage lifecycle callbacks at startup.

    • Changed

      • onPhysicsStep: cache the physics steps-per-second value in a single slot keyed by (scene, simulation) instead of querying the physics backend every step. Some backends resolve the query by walking stage prims, which dominated per-step time on large stages; the cache is invalidated on play-state, simulation-registry, and stage attach/detach changes. Interleaved stepping of several (scene, simulation) pairs falls back to the per-step query (the previous behavior).

    • Fixed

      • Avoid repeated errors after Newton initialization fails.

      • Used the supported Carb warning logger when Newton initialization fails.

      • PhysicsScene.get_gravity: normalize manually authored gravity directions before computing the gravity vector.

      • PhysicsScene.get_gravity: report the effective default gravity for unauthored USD gravity attributes.

      • SimulationManager.get_device: use cuda:0 after recovering from an unset CUDA-device setting.

  • isaacsim.core.throttling (2.3.5 -> 2.3.7)

    • Added

      • Warn when timeline playback starts without an authored time-code range.

  • isaacsim.core.version (2.1.1 -> 2.2.1)

    • Changed

      • Register Isaac Sim build metadata for crash reports from isaacsim.core.version.

  • isaacsim.examples.base (1.3.2 -> 1.3.4)

    • Fixed

      • BaseSampleUITemplate: cancel in-flight load/reset work on shutdown and skip callbacks after teardown.

  • isaacsim.examples.interactive (4.16.1 -> 4.16.8)

    • Changed

      • Used isaacsim.robot_motion.examples for shared manipulation examples.

      • Used core articulations and robot-motion controllers in RoboParty.

    • Fixed

      • Improve RoboParty spawn layout so Kaya does not drive into the UR10 workspace, and tighten Franka/UR10 cube and place poses.

      • Reset pick/place task state when starting the RoboParty so stacking recovers after Reset.

      • Surface Gripper: raise GPU broadphase foundLostAggregatePairsCapacity to avoid dropped contact events.

      • Surface Gripper: release stage reference on reload to prevent resident-stage warnings.

      • Surface Gripper: remove spurious custom qualifier from physics:filteredPairs on Gripper_Cones.

  • isaacsim.gui.components (1.8.5 -> 1.8.9)

    • Added

      • Added a public ParamWidget.set_value() method for programmatic field updates.

    • Fixed

      • Clamps the float input for combo_floatfield_slider_builder, as would be expected given the min/max inputs.

  • isaacsim.gui.content_browser (0.4.3 -> 0.5.1)

    • Added

      • Added the Isaac Sim asset collection to File > Open dialogs.

    • Changed

      • Used the current File Picker collection API without the deprecated protocol argument.

    • Fixed

      • Show configured folders with the same final name in the Isaac Sim collection.

  • isaacsim.gui.menu (2.10.5 -> 2.10.12)

    • Added

      • Registered System Identification in the Tools menu.

    • Fixed

      • Fixed screenshot capture, missing-path warnings for saved selections, and clipped buttons in the Create Selection Set dialog.

  • isaacsim.gui.sensors.icon (2.2.1 -> 2.2.4)

    • Fixed

      • Avoid global USDRT sensor-type queries on every frame; refresh cached sensor paths only after structural USD changes.

      • Read the icon label setting from the documented exts/omni.kit.prim.sensor/showTitle path instead of the legacy omni.kit.prim.icon path.

      • add_sensor_icon now applies a custom icon_url to auto-discovered sensors and preserves it after viewport refreshes; calls without icon_url leave the current icon unchanged.

  • isaacsim.hsb.core (1.0.1 -> 1.2.0)

    • Added

      • Multi-sensor stereo support: HSBSender``s sharing the same ``ipAddress now share one underlying HSBEmulator, matching real Leopard Eagle topology (one board, multiple VB1940 imagers).

      • VB1940 calibration EEPROM served over I²C from the shared HSBEmulator at peripheral 0x51, so hololink receivers get real intrinsics + stereo extrinsics via the standard code path (no sim-aware fallbacks in the receiver).

      • CameraCalibration struct and HSBSender::setCalibration() API to stage values from the OGN layer; applied at connect().

      • HSBSender::~HSBSender disconnects on destruction.

    • Changed

      • HSBSender::connect() rejects duplicate sensorId on the same IP, and bumps hsb_ip_version past the current hololink MINIMUM_HSB_IP_VERSION.

  • isaacsim.hsb.nodes (1.0.3 -> 1.1.0)

    • Added

      • OgnHSBCameraHelper.py: reads the parent USDA Camera prim to compute fx/fy/cx/cy and packs them into the new OgnHSBSend inputs, with a default Eagle stereo baseline.

      • OgnHSBSend: optional calibrationIntrinsics (double[]) and calibrationTranslation (double[3]) inputs, forwarded to HSBSender::setCalibration and programmed into the emulated VB1940 rig EEPROM (I²C peripheral 0x51).

  • isaacsim.physics.newton (0.8.1 -> 1.0.6)

    • Added

      • Added CollisionConfig and HydroelasticConfig on NewtonConfig for collision pipeline and hydroelastic contact runtime settings.

      • Added configure_newton() and get_newton_config() Python entry points for runtime configuration before play.

      • Added solver-selection APIs and VBD solver configuration.

      • Build and reuse an explicit CollisionPipeline with hydroelastic support when hydroelastic shapes are present.

      • /exts/isaacsim.physics.newton/load_textures setting. Enable it when using Newton’s own viewer.

      • CollisionConfig.rigid_contact_max to set the contact capacity of the collision pipeline.

      • HydroelasticConfig.buffer_mult_broad, buffer_mult_iso, and buffer_mult_contact to resize the hydroelastic collision buffers reported in overflow warnings.

    • Changed

      • Updated the Newton Python package to 1.5.0, MuJoCo to 3.11.0, mujoco-warp to 3.11.0, and newton-usd-schemas to 0.4.1.

      • Newton no longer loads material textures by default. They feed only Newton’s viewer, and loading them dominated stage initialization.

      • Removed MuJoCoSolverConfig.ls_parallel; Newton 1.5 no longer accepts it.

      • Selected and configured Newton solvers through physics scene schemas.

      • Used Control.joint_target_q / joint_target_qd (Newton 1.5 rename).

      • Used ModelFlags for Newton 1.5 solver refresh notifications.

      • Used pyramidal MuJoCo friction cones for stable policy locomotion with Newton 1.5.

    • Deprecated

      • Stopped exporting the legacy Python tensor implementation as isaacsim.physics.newton.tensors; use the dedicated extension instead.

    • Removed

      • Removed schema-backed fields from MuJoCoSolverConfig and XPBDSolverConfig; configure them on the physics scene.

    • Fixed

      • Cache rigid-body center-of-mass data at view indices to prevent out-of-bounds writes for subset views.

      • Emit an error when the USD stage metersPerUnit is not 1.0.

      • Fixed stale XPBD contact data in Newton tensor contact queries.

      • Improve the MuJoCo error for rigid bodies without joints.

      • Initialize from the first physics scene declaring exactly one Newton solver API.

      • Initialize joint coordinates from authored rigid-body poses before forward kinematics, while preserving the nearest equivalent revolute-angle branch.

      • Made Newton respect the resetOnStop setting.

      • Pre-play articulation property queries now report link/DOF/joint metadata matching the runtime Newton view regardless of where ArticulationRootAPI is authored (rigid-body Xform, fixed root joint, or container).

      • Preserve composed USD world scales when writing Newton body transforms to Fabric.

      • Preserve nested rigid-body transforms when stopping MuJoCo with Reset Simulation on Stop disabled by safely authoring the final simulation pose to USD. XPBD and VBD now warn and leave USD unchanged for this unsupported mode.

      • Recapture the simulation CUDA graph when the physics timestep changes, keeping simulation dynamics and reported simulation time consistent.

      • Report Newton USD parser warnings at warning severity in Isaac Sim logs.

      • Scale Newton body transforms to the USD stage units when updating Fabric.

      • Sibling articulations no longer leak into a queried articulation’s results.

      • Used the supported Carb warning logger when Newton initialization is skipped.

      • omniverse:// texture paths no longer fail to load. Remote URLs resolve through the local cache.

  • isaacsim.physics.newton.tensors (0.1.9 -> 0.6.4)

    • Added

      • get_friction_data support for Newton rigid-contact tensor views.

    • Changed

      • Updated the Newton Python package to 1.5.0.

      • Used Control.joint_target_q / joint_target_qd (Newton 1.5 rename).

      • Used ModelFlags for Newton 1.5 solver refresh notifications.

    • Fixed

      • Added Jacobian and mass-matrix computation to the tensor API.

      • Apply off-center and local-frame rigid-body and articulation wrenches correctly on CPU and GPU.

      • Avoid repeated Newton initialization attempts after failure.

      • Fixed get/set gravity crash with simulation tensor view.

      • Resolve rigid contact sensor body paths with prefix and shape matching, including shapes under the sensor USD path.

      • Return empty raw contact buffers instead of failing when Newton contact forces are not yet available.

  • isaacsim.physics.newton.ui (1.3.1 -> 1.6.1)

    • Added

      • Added MuJoCo and XPBD solver selection to the Newton scene UI.

      • Added a Create > Physics > MuJoCo menu to instantiate the concrete MuJoCo typed prims (MjcActuator, MjcKeyframe, MjcTendon) that are standalone prim types rather than applied API schemas.

      • Added a pop-up array editor for MuJoCo numeric array attributes (keyframe/actuator/tendon vectors) that lists every entry by index, shows the attribute name and a scrollable description, supports per-row remove and a single append control, and commits edits to USD as one undoable change only on OK (Cancel discards them).

      • Added a type-filtered Physics > MuJoCo menu for applying MuJoCo API schemas and their required Newton API dependencies.

      • Enforce MuJoCo’s fixed vector lengths (for example, mjc:gear = 6, mjc:gainPrm/mjc:biasPrm/mjc:dynPrm = 10, solver solref/solimp families) in the array editor: the append control disables at the limit and OK pads any removed trailing entries with the attribute’s MuJoCo per-index defaults so the written array stays a valid length.

      • Route every MuJoCo numeric array attribute through the pop-up editor, including joint/tendon solver arrays, scene contact overrides, collision/equality solimp/solref, and mjc:springlength.

    • Changed

      • Hide the MJCF angle conversion setting from USD scene properties.

      • Stopped the PhysX UI from displaying Newton UI schemas.

    • Fixed

      • Added remove-schema controls to Newton Scene, Joint, XPBD, and Kamino property frames.

      • Preserve resolver-aware property builders, property ordering, and private ownership for schemas rendered by custom Apply widgets.

      • Reject invalid unsigned-array values safely and restore unauthored array state on undo.

      • Render the pop-up array editor for MuJoCo arrays on applied API schemas (MjcJointAPI, MjcSceneAPI, MjcCollisionAPI, MjcEquality*API), which the custom Apply widgets own and therefore never resolved through the physics property-builder database; they previously fell back to a read-only text field.

      • Added UI menus for applying Newton API schemas.

  • isaacsim.pip.newton (0.7.0 -> 0.11.0)

    • Changed

      • Updated Newton to 1.5.0, MuJoCo to 3.11.0, mujoco-warp to 3.11.0, mujoco-usd-converter to 0.5.0, and newton-usd-schemas to 0.4.1.

  • isaacsim.pip.nv (1.0.2)

    • Added

      • Added a Linux-only archive of the nvidia-*-cu12 CUDA runtime wheels and cuda-bindings required by PyTorch.

  • isaacsim.replicator.behavior (1.5.4 -> 1.6.2)

    • Changed

      • Exposed the documented behavior classes and behavior script helpers from the package root.

      • Migrated behavior scripts toward Replicator functional transforms, attributes, and rigid-body configuration plus isaacsim.core.experimental prim, material, object, stage, transform, bounds, and physics APIs.

      • Reduced scene_utils.py to PhysX simulation helpers that have no equivalent compatible with the behavior’s manual simulation loop.

    • Fixed

      • Account for asset transform scale when calculating volume-stack drop margins.

      • Clamp VolumeStackRandomizer drop area to the surface center when an asset is larger than the target prim.

      • Guard TextureRandomizer material teardown when the USD stage is already closed.

      • Guard asset-root resolution in TextureRandomizer and VolumeStackRandomizer so relative CSV paths skip instead of crashing offline.

      • Recreate the randomizer RNG when the USD seed changes on play, resume, or setup.

      • Skip LightRandomizer writes on prims that no longer have UsdLux.LightAPI.

      • Skip cached prim handles invalidated when another behavior rebuilds a managed subtree, and avoid stateful tensor wrappers when toggling temporary rigid bodies.

      • Swap inverted min/max range bounds in the location, rotation, light, and texture randomizers.

  • isaacsim.replicator.episode_recorder (0.1.4 -> 0.1.6)

    • Changed

      • Replay pose writes that fail on a singular transform now report the affected prims and the likely cause (zero scale or malformed xform ops) instead of a bare matrix-inversion error.

    • Fixed

      • Allow recordable classes to re-register after their defining extension is reloaded.

  • isaacsim.replicator.episode_recorder.ui (0.1.3 -> 0.1.5)

    • Changed

      • Subscribe to stage closing through Events 2.0 instead of the deprecated stage event stream.

  • isaacsim.replicator.examples (1.11.7 -> 1.12.4)

    • Changed

      • Increase rt subframes to 8 for the sphere scan capture randomizer example.

    • Fixed

      • Make custom sphere randomizer nodes reproducible with the Replicator global seed.

  • isaacsim.replicator.experimental.domain_randomization (1.2.5 -> 1.2.10)

    • Fixed

      • Connect numSamples only when the distribution node exposes that input so sequence distributions can author graphs.

      • Export the extension IExt so stage close clears physics-view registries and the randomization context.

      • Skip tendon attribute randomization on reset for articulations with no fixed tendons so later writes on the same view still apply.

      • get_reset_inds: raise RuntimeError when the domain-randomization context is not initialized.

  • isaacsim.replicator.experimental.mobility_gen (0.2.10 -> 0.3.0)

    • Added

      • Module.missing_modalities, Module.named_missing_modalities, and Module.format_missing_modalities: report the modalities a module could not capture during the last update_state().

      • Added shared replay-output and dropped-step policy helpers for the replay scripts.

    • Changed

      • MobilityGenCamera.update_state: clear the buffers of a modality whose annotator returned no frame, rather than leave the previous one for the writer to re-serialize as a byte-identical duplicate under a moved pose. Applies to RGB, to an RGB buffer in neither layout the camera reads, and to a camera prim that has gone invalid, which clears its pose along with its images.

      • adding_a_robot.md: document the build_policy() hook that PolicyMultiSensorRobot now requires, replacing the removed policy_class attribute and its policy-controller classes.

      • replay_directory.py / replay_directory_for_nurec.py: re-render an incomplete step up to 3 times, then drop it whole — images and common .npz — so every recorded step keeps exactly one image per modality. Such a replay is shorter than its source recording (a legal index gap, as with --render_interval above 1), logs the dropped step indices, and exits non-zero.

      • setup_for_replay: raise when a stage’s launch prerequisites are unmet, rather than returning a flag and letting rendering proceed into a native crash. Callers catch it to decide; replay_directory.py and replay_directory_for_nurec.py skip that recording and exit non-zero.

    • Fixed

      • Export Point2d, already the parameter and return type of OccupancyMap.pixel_to_world.

      • Keyboard teleoperation: held movement keys stay held instead of stuttering under X11 key auto-repeat.

      • MobilityGenRobot.write_replay_data: name the missing state buffers instead of raising TypeError.

      • OccupancyMap.from_ros_yaml: name the missing image and the YAML that references it when the map image cannot be opened.

      • OccupancyMap: write the ROS YAML origin as a sequence, not a tuple repr that reloaded as a string and broke pixel_to_world_numpy. origin is now normalized at construction.

  • isaacsim.replicator.grasping.ui (1.1.3 -> 1.1.4)

    • Changed

      • Used experimental stage utils for current-stage access.

    • Fixed

      • Preserve per-phase joint drive targets when loading a grasping configuration.

  • isaacsim.replicator.mobility_gen.examples (0.3.4 -> 0.4.1)

    • Changed

      • Migrated sensor-rig generation to the current stage utilities.

      • Replaced the local _join_sdf_paths helper (and the direct pxr import) with join_prim_paths from isaacsim.core.experimental.utils.

      • Run the H1 and Spot policy robots through RobotPolicyRunner; correct Spot’s physics timestep to 0.002 seconds.

      • PolicyMultiSensorRobot.build_sensor_rig: mount the configured front_camera_type before building the rig, since the H1 and Spot assets carry no cameras to bind.

      • h1.yaml, spot.yaml: capture a stereo pair, renaming their sensors to front_camera_left and front_camera_right; jetbot.yaml’s is front_camera.

    • Fixed

      • Robot classes no longer resolve the Isaac assets root at import time, so an unreachable assets server no longer makes the extension (and the MobilityGen UI) fail to load.

      • jetbot.yaml, h1.yaml, spot.yaml: point each sensor rig at camera prims that exist. The old paths did not, so those robots attached no cameras and recorded no images.

  • isaacsim.replicator.synthetic_recorder (2.4.5 -> 2.4.7)

    • Fixed

      • Accept Sdf.Path camera paths (for example prim.GetPath()) when validating render products.

      • Clear the recorder on stage CLOSED instead of CLOSING.

      • Failed recorder start no longer reports a successful write or leaves a partial recorder.

      • Reject writers that do not accept backend instead of passing an unsupported argument.

  • isaacsim.replicator.teleop (0.3.6 -> 0.4.3)

    • Added

      • Added the built-in floating_xarm_dex3_retargeted.yaml profile for xArm and Dex3 teleoperation.

      • Config-driven floating-gripper functions that discover xArm and Dex3 YAML definitions, build articulation-safe floating roots, and configure floating, trigger-driven grasp, marker, and visual-cue controllers through an opaque context.

      • Cross-platform capability discovery that keeps debug input, scripted motion, and supported controllers available when the Linux-only Isaac Teleop and PINK packages are absent.

      • Live teleop checks external CloudXR readiness via prepare_live_cloudxr_env() before opening an OpenXR session.

      • Pause caller-paced MCAP consumption with the Kit timeline, rewind it on teleop reset, and suppress replayed controller buttons from toggling a new HDF5 recording.

      • Poll Isaac Teleop DeviceIOSession.update() unconditionally; its None return no longer causes every live input frame to be discarded.

      • Stateless scripted-motion helpers for pose trajectories with quaternion slerp and tolerance-gated execution; these helpers are separate from the live teleop path.

      • Typed TeleopFrame input boundary with live OpenXR, debug-marker, and headless MCAP providers. TeleopManager.connect() accepts MCAP replay and optional live MCAP recording paths while preserving existing controller/head snapshot observers.

      • LocomotionController: velocity drive mode via LocomotionDriveMode (AUTO/TELEPORT/VELOCITY). Velocity commands a physics velocity on a dynamic rigid-body base (real contacts; jointed payloads follow); Teleport keeps the kinematic pose writes that carry parented children. AUTO picks Velocity for a dynamic non-kinematic rigid body and Teleport otherwise; an incompatible Velocity request falls back to Teleport. New linear_speed/angular_speed (m/s, rad/s) settings tune Velocity mode.

    • Changed

      • Align the scripted Dex3 grasp center with the marker offset validated by the teleop SDG pick-and-place scenario.

      • Allow optional per-joint grasp drive-property overrides.

      • Anchor scripted visual cues and TCP cameras to the named TCP frame instead of the gripper base link.

      • Grasp configurations now use degrees for revolute targets and stage linear units for prismatic targets. Convert revolute target values that previously used radians to degrees.

      • Create a named, base-link-local TCP Xform for every scripted floating gripper and expose its resolved path.

      • Keep custom tracking-space prims read-only. Locomotion carry is unavailable when a custom prim lacks a safely writable translate/orient/scale xform stack.

      • Load the Isaac Teleop pip prebundle and PINK dependency only on Linux x86_64; live and MCAP connection attempts now report an actionable unavailable-capability status on other platforms.

      • Removed omni.ui dependency; UI remains in isaacsim.replicator.teleop.ui.

      • Replaced the in-process CloudXRManager lifecycle with cloudxr_env.py readiness and environment helpers; the CloudXR runtime is started externally.

      • Resolve one canonical anchor transform for Kit XR, teleop head/controller poses, and live frame markers. Fixed rotation now preserves the custom prim’s initial absolute yaw; follow modes use absolute yaw, offsets use anchor-local axes, and fixed height applies to the shared transform.

      • Simplify each visual cue to one shadow-free emissive cylinder with 0.5 default opacity.

      • Subscribe to timeline play/stop through Events 2.0 instead of the deprecated timeline event stream.

      • Treat TeleopManager.connect() as the transport-only API; command-driven Connect owns the complete marker, tracking-space, and XR-anchor lifecycle.

    • Fixed

      • Apply XR anchor offset, rotation, smoothing, and fixed-height settings configured before connecting, and preserve them across reconnects.

      • Author generated /World/XRAnchor output in an anonymous session layer, reject collisions with user-owned prims, and remove it exactly on disconnect.

      • Convert angular grasp targets from USD degrees to tensor radians when controlling an articulation.

      • Hold the last valid shared anchor pose while a custom prim is temporarily unavailable, and restore the configured XR near plane on disconnect.

      • Honor the full configured rotation-smoothing time constant instead of imposing a per-frame interpolation floor.

      • Keep 2D live controller tracking independent of Kit XR profile settings, and discover XR APIs lazily when the XR experience loads after Teleop.

      • Make the extension discoverable on Windows without the optional Isaac Teleop and PINK backends.

      • Preserve live input status reporting across command-driven disconnect/reconnect cycles.

      • Release visual-cue update state when its USD stage closes or is replaced, preventing stale anonymous-layer edit-target errors.

      • Report actionable retargeting errors when profile aliases do not resolve against TriHand semantics, the grasp config, or controllable USD joints.

      • Roll back partially connected sessions when marker, tracking-space, or XR-profile setup fails.

      • Share Kit’s active OpenXR session through isaacsim.kit.xr.teleop.bridge during stereo VR, and fail safely instead of creating a competing session when the bridge is unavailable.

      • Stop velocity-driven locomotion when tracking or the input session is disconnected, and preserve the final physics-integrated base pose when disabling Velocity mode.

      • get_kit_xr_runtime_state: try the remaining Kit XR display/enabled probe when the first one raises, instead of reporting INACTIVE and letting Teleop open a competing OpenXR session while stereo rendering is actually active.

  • isaacsim.replicator.teleop.ui (0.3.4 -> 0.4.4)

    • Added

      • Visual Cues panel with a single shadow-free cylinder per controller, configurable reference height and appearance, optional prim overrides, and profile persistence.

      • Debug squeeze sliders for controller-driven multi-finger grasp input.

      • Partial-support UI for platforms without Isaac Teleop: live Connect is disabled while frame markers, Debug Mode, profiles, and supported controllers remain available.

    • Changed

      • Live Connect expects CloudXR to be started in a separate terminal; there are no in-process CloudXR lifecycle controls.

      • Subscribe to timeline play/stop through Events 2.0 instead of the deprecated timeline event stream.

    • Fixed

      • Loading a teleop profile now clears omitted IK and floating prim paths instead of keeping the previous profile’s values.

      • Make the debug-mode UI discoverable on Windows without the optional Isaac Teleop package.

      • Release the extension instance when the Teleop UI shuts down.

      • Route desktop Connect and Disconnect through the complete teleop command lifecycle so markers, tracking space, controllers, and the XR anchor are set up and torn down consistently.

  • isaacsim.replicator.writers (1.5.4 -> 1.5.6)

    • Fixed

      • PoseWriter: write frames for non-class semantic types in idToLabels instead of aborting the capture.

  • isaacsim.robot.experimental.wheeled_robots (0.2.11 -> 0.2.14)

    • Fixed

      • Reject negative wheel-velocity, steering-angle, acceleration, and steering-rate limits instead of silently converting them to positive values.

      • Reject zero or non-finite wheel_base values in AckermannController.

  • isaacsim.robot.policy.examples (5.2.12 -> 7.2.0)

    • Added

      • A standalone and interactive example per shipped robot, and migration shims at the 6.x import paths.

      • Added Franka drawer-policy deployment on Newton using an engine-specific exported policy and task configuration.

      • Added DelayedDCMotor actuator composition for exported Isaac Lab policies.

      • Added a standalone Unitree H2 custom-policy deployment example.

      • Added env-config-driven actuator deployment for PhysX and Newton through isaacsim.core.experimental.actuators.

      • Added exported observation-history deployment.

      • Added hosted Newton policy and environment configuration files for ANYmal C.

      • Added Cartpole policy-transfer support across PhysX and Newton, CPU and CUDA, and Linux and Windows.

      • Binary joint-position actions that map one policy channel to multiple joints.

      • Support exported ActuatorNetLSTM, ActuatorNetMLP, DCMotor, IdealPDActuator, DelayedPDActuator, and RemotizedPDActuator configurations.

      • CartpolePolicy: add Isaac Lab ONNX policy deployment from exported policy.onnx and env.yaml files.

      • PolicyController.load_policy: support ONNX policies and exported env configuration for pre-import rigid-body, articulation, and joint-drive properties.

      • PolicySpec and PolicyArtifact, with a get_<robot>_spec factory per robot in isaacsim.robot.policy.examples.bundled.

      • RobotPolicyRunner: deploys any bundled robot through one spawn/initialize/step/close lifecycle, driven from the caller’s physics callback.

      • RobotPolicyRunner.restart_from_default_state() for atomic policy restarts from the robot’s default state.

      • derive_binding/bind_policy for non-bundled policies.

      • get_robot_joint_names_expr() and match_joint_names() in config_loader to select a policy’s own joints from a shared articulation.

    • Changed

      • Added physics-engine and simulation-device selection to the H1, ANYmal, and Spot standalone examples.

      • Terms bind by literal joint name, so the Newton H1 example now deploys h1_minimal.usd.

      • The exported IO descriptor is the policy-interface source; a deployment must carry IO_descriptors.yaml or an explicit binding hook.

      • Update the hosted PhysX and Newton policy and environment configuration files for Spot.

      • Used isaacsim.pip.onnx for ONNX Runtime while retaining Torch policy support.

      • PolicyController.initialize: replace set_articulation_props with reset_to_default_state; articulation properties are now authored before articulation creation.

      • parse_env_config: preserve tagged YAML values and support exact, regex, glob, and legacy prefix joint-name matching.

    • Removed

      • Removed the legacy LstmSeaNetwork helper now that exported actuator configurations use isaacsim.core.experimental.actuators.

      • OnnxRuntimeModel and the generic ONNX/array utilities, absorbed by OnnxPolicyModel.

      • PolicyController and the six articulation-owning policy classes; use the matching bundled spec.

      • controllers.config_loader, whose parsing helpers live in env_config.

    • Fixed

      • Improve Franka drawer-policy deployment parity using exported task state and current physics poses.

      • Improve Go2 and H1 Newton deployment parity with robot-local physics defaults, preserved authored armatures, and clean policy reset and priming after timeline restarts.

      • Make ONNX Runtime and its CUDA library bootstrap available in isaacsim-robot pip and source installations.

      • Preserve imported joint effort and velocity limits when an exported actuator config leaves effort_limit_sim or velocity_limit_sim unset.

      • Support partial initial joint-position maps and policies that reference a subset of the robot’s actuator groups.

      • Used the same ANYmal C, Spot, and Go2 USD assets as the Isaac Lab policy training configurations.

      • PolicyController.initialize(): scope all per-DOF configuration, including simulation effort and velocity limits, to the policy’s own joints, fixing the shape-mismatch ValueError and misapplied limits when another robot shares the same articulation. No-op for single-robot articulations.

    • Security

      • Require and verify trusted SHA-256 digests before loading TorchScript policy artifacts.

  • isaacsim.robot.poser (1.1.3 -> 2.0.0)

    • Changed

      • Own the kinematics, math, and IK APIs previously shipped by isaacsim.robot.schema.

  • isaacsim.robot.poser.ui (1.1.1 -> 1.1.4)

    • Changed

      • Used Robot Poser’s public kinematics imports.

    • Fixed

      • Named pose table and property panel no longer log “Widget[] was destroyed during event or draw” errors.

  • isaacsim.robot.schema (6.3.7 -> 7.0.2)

    • Changed

      • Load the Robot schema Python packages and USD resources from the independently built isaacsim-robot-schema wheel.

    • Removed

      • Removed Robot Poser kinematics, math, and IK modules; import them from isaacsim.robot.poser.

    • Fixed

      • Recover rigid links and joints from disconnected components behind non-rigid frames.

  • isaacsim.robot.schema.ui (0.3.5 -> 0.3.7)

    • Fixed

      • Robot Inspector hierarchy generation no longer emits global USD object-change notices for live-stage paths.

  • isaacsim.robot.wheeled_robots.nodes (0.1.5 -> 0.1.12)

    • Fixed

      • CheckGoal2D: compare wrapped yaw error with the target orientation.

      • QuinticPathPlanner: extract signed yaw from targetPrim instead of the unsigned rotation angle, which mirrored negative or off-axis goal headings.

  • isaacsim.robot_motion.controllers (0.3.2)

    • Added

      • Added portable differential-drive, Ackermann, and holonomic controllers with configurable robot geometry, command limits, and CUDA graph capture.

  • isaacsim.robot_motion.cumotion (1.3.1 -> 1.4.0)

    • Changed

      • Added panda_hand as a supported Franka tool frame.

      • CumotionWorldInterface: replace debug-visualization constructor settings with an injected visualizer.

    • Fixed

      • TrajectoryGenerator: return None when task-space path conversion fails.

  • isaacsim.robot_motion.cumotion.examples (0.4.1 -> 0.5.1)

    • Changed

      • Expand the Run Scenario panel by default.

      • Move the interactive examples into Robotics Examples > Motion Generation > cuMotion.

      • Update collision-debug examples for injected visualizers.

  • isaacsim.robot_motion.examples (0.2.6)

    • Added

      • Added robot-independent Franka and UR10 manipulation examples, reusable behavior-tree nodes, and feedback-driven pick-and-place controllers.

  • isaacsim.robot_motion.experimental.motion_generation (6.1.3 -> 7.1.2)

    • Changed

      • Replaced checking local scaling to checking global uniform scaling.

      • Used core experimental bounds utilities for world AABB and untransformed OBB collision approximations.

      • Used core experimental prim helpers for prototype filtering, attribute access, and mesh topology reads.

      • WorldBinding reads obstacle geometry, scale, and collision-enabled state during initialization and synchronizes only transforms at runtime.

      • get_shape_type and scene-query plane detection use USD Usd.Prim.IsA(<type name>) instead of the shape are_of_type classifier.

    • Removed

      • Removed USDRT property change tracking and the WorldBinding.synchronize and WorldBinding.synchronize_properties methods. Use synchronize_transforms for runtime pose updates.

  • isaacsim.robot_motion.pink (0.1.3 -> 0.1.7)

    • Fixed

      • Support continuous revolute joints in Isaac Sim-to-Pinocchio configuration and controller-output mappings.

      • load_pink_robot: accept URDF exporter output that omits urdfdom-only joint limit attributes.

  • isaacsim.robot_motion.pink.examples (0.1.2 -> 0.2.0)

    • Changed

      • Move the interactive examples into Robotics Examples > Motion Generation > PINK.

  • isaacsim.robot_motion.schema (0.2.1 -> 0.2.2)

    • Changed

      • Load the Robot Motion schema Python package and USD resources from the independently built isaacsim-robot-motion-schema wheel.

  • isaacsim.robot_setup.collision_detector (0.2.1 -> 0.2.2)

    • Fixed

      • Halt subtree traversal at nested RigidBodyAPI prims so a body’s collision list, viewport highlight, and stage selection no longer include the geometry of child rigid bodies.

  • isaacsim.robot_setup.gain_tuner (3.5.3 -> 3.10.0)

    • Added

      • Added multi-backend gain sources for PhysX DriveAPI, MuJoCo-native, and Newton actuator gains, with source-aware editing and saving.

      • Added step, sinusoidal, snap-to-limits, stress, and discretization-sweep modes with multi-joint result tables and charts.

      • Added natural-frequency conversions, effective-inertia queries, and backend-aware armature, friction, and velocity-limit controls.

      • Added APIs for ingesting sweep results, clearing results, resolving the selected robot, and snapshotting recorded trajectories.

    • Changed

      • Split the interactive UI into isaacsim.robot_setup.gain_tuner.ui so the core tuning library can run headlessly.

      • Backend-specific parameters now write only to the active backend’s schema; you can explicitly copy values between PhysX and Newton.

      • Natural-frequency conversion APIs now require an is_angular argument, and the *_revolute_position functions are renamed to *_position_drive.

      • Re-author gains previously saved through the Natural Frequency or Damping Ratio fields because the angular conversion is now corrected. Importer-authored gains are unaffected.

    • Fixed

      • Corrected stiffness and damping unit conversions for revolute, prismatic, and D6 joints.

      • Saved gains now target the asset layer’s native prim paths and apply the required API schemas.

      • Recognized Newton mimic joints and refreshed backend-specific state when the active physics engine changes.

      • Improved plots for diverging responses, multiple joints, command and observed traces, effort data, and pointer value readouts.

  • isaacsim.robot_setup.gain_tuner.ui (2.2.0)

    • Added

      • Split the interactive Gain Tuner UI from the headless tuning library.

      • Added a scalable multi-select gain table, per-joint detail editor, backend source selection, and backend-aware save targets.

      • Added step, sinusoidal, snap-to-limits, stress, and discretization-sweep result views with interactive charts.

      • Added controls for comparing and copying advanced actuator parameters between PhysX and Newton.

  • isaacsim.robot_setup.sysid (2.2.3)

    • Added

      • Added a beta headless system-identification runtime with differentiable and simulation-based rollouts, optimizer services, standalone tools, and USD parameter writeback.

  • isaacsim.robot_setup.sysid.ui (1.2.2)

    • Added

      • Added a beta interactive System Identification workflow for configuring telemetry, optimization parameters, solver settings, result analysis, and USD writeback.

  • isaacsim.robot_setup.virtual_gantry (0.3.0)

    • Added

      • Added an engine-agnostic spring-damper rope runtime that suspends an articulation from an anchor prim during robot bring-up and policy testing.

  • isaacsim.robot_setup.virtual_gantry.ui (1.0.0)

    • Added

      • Added Create menu, property panel, and keyboard controls for Virtual Gantry.

  • isaacsim.robot_setup.virtual_gantry_schema (1.0.1)

    • Added

      • Added the IsaacVirtualGantry USD schema in a dedicated extension.

  • isaacsim.robot_setup.xrdf_editor (3.6.3 -> 3.7.0)

    • Added

      • Added support for nested links.

    • Fixed

      • Clearing or scaling a link’s collision spheres no longer affects links whose names extend it, such as link10 or link1_tip for link1.

      • Exported XRDF and robot description files no longer include spheres from a separate robot whose root path extends the exported robot’s path.

      • Selecting a link no longer highlights the collision spheres of links whose names extend it as belonging to the selection.

  • isaacsim.ros2.bridge (5.1.2 -> 5.1.4)

    • Fixed

      • carter_stereo.py: update Nova Carter stereo camera graph paths and enable separate CameraInfo render products for the current scenario asset layout.

  • isaacsim.ros2.control (0.1.0 -> 0.1.6)

    • Fixed

      • Avoid a teardown-side update that can deadlock controller switching.

      • Fill effort and velocity limits for continuous joints in synthesized URDF.

      • Load each ROS 2 Control backend only from its distribution-specific lib directory, preventing duplicate plugin registration after archive extraction.

      • Propagate controller YAML parameters to dynamically loaded controllers on ROS 2 Humble.

      • Reject unsupported ROS 2 distributions with an explicit diagnostic instead of searching for a nonexistent C++ backend.

      • Replaced non-finite effort and velocity limits in synthesized URDFs so controller initialization succeeds.

      • Stop the idle controller executor when no managers remain, avoiding a race with ROS shutdown.

      • Used the Jazzy controller-manager trigger clock to prevent negative time deltas during controller switching.

  • isaacsim.ros2.core (1.9.4 -> 1.11.0)

    • Added

      • Ros2ContextHandle.getDomainId: add an API for querying the effective ROS domain ID.

      • python.sh and python.bat now match isaac-sim.sh and isaac-sim.bat by automatically configuring bundled ROS 2 libraries when no ROS environment is set; pass --no-ros-env to disable this behavior.

    • Changed

      • Staged ROS 2 package metadata and vendor libraries required by ros2_control.

  • isaacsim.ros2.examples (1.2.4 -> 1.2.9)

    • Fixed

      • Updated MoveIt sample with Franka to use new gripper variant.

      • Waypoint follower: preserve waypoint orientation when creating Nav2 goals.

  • isaacsim.ros2.nodes (1.18.13 -> 1.22.7)

    • Added

      • Added example interface packages to the bundled ROS 2 libraries on Windows.

      • Public Python config helpers for creating ROS 2 clock, generic publisher, joint states, TF, odometry, camera, RTX lidar, and RTX radar action graphs.

      • Shared graph shortcut option constants, warning messages, and radar_supports_basic_aux_output.

      • OgnROS2CameraHelper: add rgb_hevc compressed RGB publishing and pass the selected codec through the compressed image writer.

      • OgnROS2PublishCompressedImage: allow hevc values for input_format.

      • ROS2ControlManager OmniGraph node for configuring the in-process ros2_control ControllerManager.

      • ROS2PublishTransformTree and ROS2PublishRawTransformTree: aggregate TF submissions by ROS domain, topic, static/dynamic mode, and QoS so each group publishes one merged TFMessage after OmniGraph evaluation.

      • exts."isaacsim.ros2.nodes".tfAggregation.enabled: add a setting for toggling the aggregated TF publisher path.

      • interleave_point_cloud / fill_point_cloud2_message helpers and fill_point_cloud_buffer binding: build sensor_msgs/PointCloud2 data from separate per-point arrays with the parallel C++ interleave.

      • set_isaac_namespace and set_isaac_name_override helpers for authoring Isaac robot schema names used by TF frame generation.

    • Changed

      • fillPointCloudBufferHost: xyz is now const float*, declared in the CUDA-free FillPointCloudBufferHost.hpp.

    • Fixed

      • Generic ROS 2 service nodes now fail cleanly when requested dynamic service types or native type-support libraries are unavailable instead of dereferencing invalid messages.

      • Only signal ROS 2 service responses after receiving them.

      • Preserve nested message arrays in ROS 2 service requests and responses.

      • Prevent standard ROS 2 GPU image and point-cloud publishers from reading expired inputs or reusing active message buffers.

      • Respect rotary lidar valid-arc and azimuth-offset attributes when publishing ROS 2 LaserScan messages.

      • Update the Carter stereo ROS 2 example for the current Nova Carter camera and CameraInfo graph layout.

      • CompressedImageManager now includes the codec in every compressed image writer name, avoiding writer reuse across codecs with matching annotator template names.

      • SetPrimAttribute now rejects invalid matrix JSON values without terminating Isaac Sim.

      • create_ros2_joint_states_graph now creates the migrated IsaacReadJointState publisher path.

      • set_rotate now accepts Gf.Rotation values for prims that store transforms in xformOp:transform.

  • isaacsim.ros2.tf_viewer (2.3.3 -> 2.3.8)

    • Removed

      • Removed the ROS 1 transform listener (transform_listener_ros) and the ROS-version dispatch; the extension now targets ROS 2 only.

  • isaacsim.ros2.ui (1.6.5 -> 1.9.2)

    • Added

      • New Tools > Robotics > ROS 2 OmniGraphs > RTX Radar menu shortcut that builds an OmniGraph publishing RTX Radar detections as sensor_msgs/PointCloud2 via ROS2RtxRadarHelper. Exposes per-point Radial Velocity, Intensity, and Timestamp metadata as checkboxes; warns when Radial Velocity is selected without the OmniRadar prim advertising the BASIC auxiliary output channel.

      • Optional render product prim selection in the ROS 2 camera, RTX lidar, and RTX radar graph shortcut dialogs. When specified, the graph uses IsaacAttachHydraTexture instead of IsaacCreateRenderProduct and reuses the existing render product path without retargeting its camera, resizing it, or authoring RenderVars on it.

    • Changed

      • Camera graphs include a ROS2CameraInfoHelper node when creating a new camera graph.

      • ROS 2 graph shortcut dialogs now delegate graph construction to shared helper code.

      • ROS 2 graph shortcut dialogs now import the public graph construction helpers from isaacsim.ros2.nodes.

      • Removed the isaacsim.ros2.ui graph helper API; use isaacsim.ros2.nodes instead.

      • Sensor graph shortcut dialogs reuse option and warning constants from isaacsim.ros2.nodes.

      • ROS2 Camera Graph shortcut adds an RGB compression dropdown for raw, H.264, and HEVC publishing.

    • Fixed

      • Errors in the “Add to an existing graph” checkbox selection flow for Ros2CameraGraph, Ros2RtxLidarGraph, and the new Ros2RtxRadarGraph when the existing graph was missing its IsaacCreateRenderProduct node or different camera prim is present for existing IsaacCreateRenderProduct node: stage_utils.generate_next_free_path was called with two positional arguments, but prepend_default_prim is keyword-only. The call now passes prepend_default_prim=False explicitly, matching every other callsite in og_rtx_sensors.py.

      • ROS 2 OmniGraphs > Joint States now creates the migrated joint-state publisher graph.

      • ROS2 Camera Graph now updates the RGB topic field through the public ParamWidget.set_value() API when the compression dropdown changes.

  • isaacsim.ros2.urdf (2.3.7 -> 2.3.9)

    • Fixed

      • Cancel stale robot description requests when changing ROS 2 nodes.

  • isaacsim.sensors.experimental.physics (3.0.2 -> 3.3.0)

    • Added

      • Enable IMU sensor support with the Newton physics engine.

    • Changed

      • Bind IXformDataView to the parent rigid body and pass the active engine type.

      • Compute radius-filtered sensor position from the parent body’s runtime pose plus a cached local offset.

      • Replaced IPrimDataReader::getContactReport with per-sensor IRigidContactView from the physics tensor API so the contact sensor works on both PhysX and Newton.

      • Skip PhysxContactReportAPI when the active engine is Newton.

      • Used getNetContactForces for unfiltered sensors so multi-point contacts report the correct magnitude.

      • EffortSensor.change_buffer_size validates its size, rejecting 0 and booleans (previously accepted) and accepting numpy integers.

      • IMUSensor.get_data and ContactSensor.get_data now return a frame independent of later calls; code that fetched the frame once and re-read it every step must call get_data each step.

    • Deprecated

      • The read_gravity argument on IMUSensor.get_sensor_reading and IMUSensor.get_data, still honored, as the IMU settles on the specific force a real accelerometer reports.

      • EffortSensor.update_dof_name and EffortSensor.change_buffer_size, to be removed in Isaac Sim 7.0. Construct a new EffortSensor with the target joint path instead.

    • Fixed

      • Avoid traversing the entire USD stage after every physics step when no contact sensors are present.

      • Cache contact-sensor USD configuration for each simulation run instead of rereading it on every physics step.

      • Convert Newton raw-contact body indices to encoded SdfPath tokens via getOtherActorPathsFromIds.

      • Prevent native and Python post-step callbacks from sampling the same contact sensor more than once per simulation step.

      • Query raw contact tensors only for radius filtering or explicit raw-data requests, and copy only the populated contact range to the host instead of the full tensor capacity.

      • Recreate raycast sensor physics views after pause/resume so raycast and IMU sensors can share an articulation safely.

      • Refresh effort and joint state sensor prim-data readers before recreating articulation views.

      • Report effort readings as invalid on Newton, which does not expose projected joint forces, instead of returning a semantically misleading valid zero or commanded actuation force.

      • Report radius-filtered contact readings as invalid when the sensor position cannot be reconstructed instead of silently treating every raw contact as in range or reporting a valid no-contact result.

      • IMUSensor acceleration now includes the omega x v transport term, so a body that rotates while it translates no longer loses its centripetal acceleration.

      • IMUSensor now normalizes an authored gravityDirection and falls back to the negative stage up axis when it is unauthored, as the USD Physics specification requires; a scene authoring a non-unit direction such as (0, 0, -2) previously measured twice gravity and now measures gravityMagnitude.

  • isaacsim.sensors.experimental.rtx (1.4.7 -> 1.9.0)

    • Added

      • Runtime sensors now accept per-annotator initialization parameters via annotator_init_params at construction time and attach_annotators(..., annotator_init_params=...) after construction.

      • Standalone examples spg_grayscale.py and spg_grayscale_invert.py demonstrating single-shader and chained SPG authoring, and reading custom output AOVs back via omni.replicator.core register_annotator_from_aov.

      • SPGNode and SensorAuthoring.author_spg (for example, RtxCamera.author_spg) to author RTX Sensor Processing Graph (SPG) prim structure — one UsdShade.Shader per node plus the required RenderProduct/RenderVar AOVs — from user-authored CUDA kernels and their co-located Lua launch scripts. Wiring uses an omni.graph-style declarative (src, dst) connection list. Structural validation only; SPG semantics remain owned by omni.rtx.spg. An optional copy_to vendors the kernel sources alongside a sensor asset.

      • SensorAuthoring.asset_root_path exposes the reference root of the USD asset a sensor was loaded from (None when not loaded from an asset).

      • has_data() on SensorRuntime, reporting render completion with annotator output while the render product still exists and annotators are attached. This lets callers bound an annotator warm-up wait without repeatedly fetching data when no render engine could be bound. It is a render-product-level gate, so it does not guarantee that a specific annotator has a frame ready.

    • Changed

      • Depend on omni.kit.hydra_texture to observe Hydra render-completion events, which is what lets has_data() report readiness without fetching annotator data.

      • Promote _SensorAuthoring / _SensorRuntime to public abstract bases SensorAuthoring / SensorRuntime (do not instantiate directly). Shared APIs such as author_spg are documented on the public bases.

      • CameraSensor.get_data and TiledCameraSensor.get_data: information reported alongside an empty warm-up payload (for example, frameId) is now preserved instead of being dropped. The payload itself is still None during warm-up.

      • CameraSensor: disable RTX post anti-aliasing on sensor-owned render products smaller than 300 pixels in either dimension, where DLSS returns buffers that do not match the requested resolution.

      • RtxCamera, Lidar, Radar, Acoustic (and their sensor runtime classes): wrapping an existing prim of the expected type that lacks the sensor’s API schema now applies the schema instead of raising ValueError.

      • SUPPORTED_CAMERA_CONFIGS: prefix the SICK (Inspector83x, InspectorP61x, safeVisionary2, Visionary-T Mini) and Stereolabs (ZED_X) camera display_name values with their vendor, so menu labels and derived action IDs are consistent with the other vendors.

      • SensorAuthoring._create_from_usd now returns the constructed sensor instance instead of the sensor prim path, and accepts the transform and constructor arguments it forwards. Existing keyword arguments keep their names and meaning; usd_path is now optional.

      • SensorRuntime subclasses may set _ALLOW_MULTIPLE_AUTHORING_OBJECTS to wrap more than one prim, as batched runtimes require.

      • SingleViewDepthCameraSensor now attaches to a pre-authored RenderProduct in a loaded USD asset when one exists, deriving resolution and annotators from it (both now optional), instead of always creating a new one. Requires omni.replicator.core >= 1.13.28.

      • TiledCameraSensor now derives from SensorRuntime and shares the annotator and render product lifecycle with the other sensor runtimes instead of duplicating it. The tiled-specific properties are unchanged, and the class additionally exposes the inherited authoring_object property, attach_writer/detach_writer, annotator_init_params and writers constructor arguments, and an annotator_init_params argument on attach_annotators. Setting render_vars now logs a warning, since tiled render products ignore it.

    • Removed

      • Removed the retired SICK TiM781 asset from SUPPORTED_LIDAR_CONFIGS; use the SICK picoScan100 family instead.

    • Fixed

      • Prevent SPG Lua launch scripts from being rejected by the sandbox validator.

      • Retain aliased input buffers for the lifetime of parsed generic model output structures.

      • CameraSensor.get_data: raise a descriptive error when an annotator returns an unexpected element count, instead of failing in the reshape.

      • CameraSensor and SingleViewDepthCameraSensor now attach the pointcloud annotator with includeUnlabelled=True by default, matching the deprecated camera API and allowing point clouds from unlabeled geometry.

      • Lidar.create, Radar.create, Acoustic.create, RtxCamera.create: author positions / translations / orientations / scales on the loaded asset’s reference root instead of the sensor prim nested inside it. Previously the transform detached the sensor origin from the housing geometry and overwrote the vendor’s mounting offset (for example, the Ouster OS1 z-offset, the TI IWRL6432AOP three-axis offset). Assets whose sensor prim is the reference root, and sensors created without an asset, are unaffected.

      • Lidar, Radar, Acoustic now record the asset reference root like RtxCamera did, so pre-authored render-product discovery is scoped to the asset subtree rather than the whole stage.

  • isaacsim.sensors.physics.examples (1.2.4 -> 1.2.7)

    • Changed

      • Keep contact reporting active after the ant settles.

      • Updated the ant_colored asset path to isaacsim/Assets/Ant/ant_colored.usd.

      • Used a compatible ant asset in the contact and IMU sensor examples.

  • isaacsim.sensors.physics.nodes (1.5.3 -> 1.6.2)

    • Changed

      • Updated the ant_colored asset path to isaacsim/Assets/Ant/ant_colored.usd.

    • Deprecated

      • The readGravity input on IsaacReadIMU, still honored, as the IMU settles on the specific force a real accelerometer reports.

    • Fixed

      • Updated the ant asset drives so contact reporting works after the robot settles.

  • isaacsim.sensors.rtx.ui (1.5.1 -> 1.5.3)

    • Removed

      • Removed the Create menu action for the retired SICK TiM781 asset.

    • Fixed

      • Used USD-authored defaults for Create menu sensor variant selections.

  • isaacsim.simulation_app (2.18.4 -> 2.19.0)

    • Added

      • Added active_cuda_gpus launch option for renderer selection using CUDA device ordering.

    • Changed

      • Default value of limit_cpu_threads reduced from 32 to 16. Carbonite’s task scheduler sees diminishing returns beyond 16 threads; users who need more can override explicitly via the SimulationApp constructor.

      • SimulationApp.close(exit_code=...) now runs the same cleanup regardless of the exit code: the nonzero fast-shutdown path previously exited before any cleanup, while the graceful path always terminated the process with status 0. A nonzero status is now applied where fast shutdown would otherwise exit with 0, so callers no longer have to choose between cleanup and a truthful exit status (for example, SIGTERM-terminated workers reporting success to distributed launchers).

    • Fixed

      • _flush_stdio() no longer raises on Windows; it now loads the Universal CRT explicitly and treats the flush as best-effort.

      • _flush_stdio() now also flushes the C stdio streams: native output such as IApp.print_and_log is buffered on the C/C++ side, which os._exit abandons, so the tail of the shutdown log (including the Simulation App Shutting Down marker) was lost on every _exit path.

  • isaacsim.storage.native (1.9.3 -> 1.11.0)

    • Added

      • Ship a regional profile that serves reads from a regional CDN while list and stat go direct to object storage, and that sets the asset root and USD Search endpoint.

      • Support selecting an asset region profile via the ISAACSIM_ASSET_REGION_PROFILE environment variable.

    • Changed

      • Update the default Isaac Sim asset root to the production 6.1 URL.

      • Update the regional asset profile to the Isaac Sim 6.1 asset root.

      • Adopted Asset Region Profile naming for regional asset routing and added an explicit default profile.

    • Fixed

      • Accept configured asset roots when the Storage provider does not support directory metadata checks.

      • Asset-root validation accepts roots containing either the Isaac or NVIDIA asset tree.

      • verify_asset_root_path: validate versioned HTTP asset roots when version.txt is unavailable.

  • isaacsim.test.action_event_sdg (1.0.1, internal)

    • Added

      • Added internal downstream integration coverage for registry-delivered Action and Event Data Generation extensions.

  • isaacsim.util.camera_inspector (1.2.2 -> 1.2.5)

    • Fixed

      • Rebuild the camera list when the selected camera is deleted instead of clearing the dropdown.

      • Reset cached camera wrappers on New Stage so the live stats callback does not raise.

  • isaacsim.util.physics (1.2.2 -> 1.2.5)

    • Changed

      • Replaced omni.physx.scripts.utils (setCollider/removeCollider/hasSchema) usage with isaacsim.core.experimental.utils.physics helpers and direct USD schema checks; drop the omni.physx dependency.

  • isaacsim.zmq.core (1.0.0 -> 1.2.1)

    • Added

      • Pose proto carrying a prim’s world-space position and orientation.

    • Changed

      • The protobuf message schemas moved to the new isaacsim.zmq.protos extension; isaacsim.zmq.core is now purely the ZeroMQ socket transport. Import message classes from isaacsim.zmq.protos (for example, from isaacsim.zmq.protos import Clock) instead of isaacsim.zmq.core.

    • Removed

      • Protobuf codegen, the bundled protobuf/pyzmq runtime, and the Clock/Image/Pose/JointStates/JointCommand/UpdatePrimAttribute re-exports (now in isaacsim.zmq.protos).

      • CameraParams and Bbox2D/BBox2DItem/BBox2DInfo protos — unused by the ZMQ bridge example.

  • isaacsim.zmq.nodes (1.1.1)

    • Added

      • Added ZeroMQ OmniGraph nodes for publishing clock, image, pose, and joint-state data and subscribing to joint commands and prim-attribute updates.

  • isaacsim.zmq.protos (1.0.0)

    • Added

      • Added a dedicated extension for the ZeroMQ bridge protobuf schemas and generated C++ and Python bindings.

  • omni.isaac.core_archive (5.3.1 -> 5.4.0)

    • Added

      • Added py_trees, pydot, and transitions for the state-machine tutorials.

  • omni.pip.cloud (1.5.4 -> 1.5.5)

    • Security

      • Updated MSAL to 1.38.0.

      • Updated cryptography to 50.0.1.

  • omni.pip.compute (1.9.2 -> 1.9.5)

    • Changed

      • Replaced opencv-python-headless 4.13.0.90 with the FFmpeg-free opencv-python-headless-noffmpeg 4.14.0.94rc1 package.

  • omni.usd.schema.mujoco (1.1.1 -> 1.1.4)

    • Fixed

      • Log an error when the mjcPhysics plugin fails to register instead of failing silently.

      • Ship the mjcPhysics schema resources inside the extension (copy instead of linking to target-deps) so the plugin no longer goes missing when the Newton prebundle is refreshed or deployed without target-deps.

  • omni.usd.schema.newton (1.2.1 -> 1.4.0)

    • Changed

      • Updated newton-usd-schemas to 0.4.1.