From 0603cb1710dcda13087665f63abf9ac483b63c05 Mon Sep 17 00:00:00 2001 From: "isaaclab-bot[bot]" <282401363+isaaclab-bot[bot]@users.noreply.github.com> Date: Fri, 11 Sep 2026 05:11:25 +0000 Subject: [PATCH] [CI][Auto Version Bump] Compile changelog fragments (schedule) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumped packages: - isaaclab: 6.1.17 → 6.1.18 - isaaclab_mimic: 1.3.4 → 1.3.5 - isaaclab_newton: 0.13.6 → 0.13.7 - isaaclab_ovphysx: 3.0.2 → 3.0.3 - isaaclab_physx: 1.1.3 → 1.1.4 --- .../changelog.d/fabric-local-poses.rst | 31 ------- .../changelog.d/fix-arm-nlopt-install.rst | 12 --- .../fix-physx-newton-camera-pose-scaling.rst | 13 --- .../changelog.d/xform-space-writer.rst | 35 -------- source/isaaclab/config/extension.toml | 2 +- source/isaaclab/docs/CHANGELOG.rst | 83 +++++++++++++++++ .../fix-fabric-frameview-stall.rst | 5 -- .../changelog.d/xform-space-writer.skip | 1 - source/isaaclab_mimic/config/extension.toml | 2 +- source/isaaclab_mimic/docs/CHANGELOG.rst | 10 +++ .../changelog.d/fabric-local-poses.rst | 19 ---- .../changelog.d/xform-space-writer.rst | 13 --- source/isaaclab_newton/config/extension.toml | 2 +- source/isaaclab_newton/docs/CHANGELOG.rst | 38 ++++++++ .../changelog.d/fabric-local-poses.rst | 19 ---- .../changelog.d/xform-space-writer.rst | 13 --- source/isaaclab_ovphysx/config/extension.toml | 2 +- source/isaaclab_ovphysx/docs/CHANGELOG.rst | 38 ++++++++ .../changelog.d/fabric-local-poses.rst | 36 -------- .../fix-physx-newton-camera-pose-scaling.rst | 14 --- .../changelog.d/xform-space-writer.rst | 36 -------- source/isaaclab_physx/config/extension.toml | 2 +- source/isaaclab_physx/docs/CHANGELOG.rst | 89 +++++++++++++++++++ 23 files changed, 263 insertions(+), 252 deletions(-) delete mode 100644 source/isaaclab/changelog.d/fabric-local-poses.rst delete mode 100644 source/isaaclab/changelog.d/fix-arm-nlopt-install.rst delete mode 100644 source/isaaclab/changelog.d/fix-physx-newton-camera-pose-scaling.rst delete mode 100644 source/isaaclab/changelog.d/xform-space-writer.rst delete mode 100644 source/isaaclab_mimic/changelog.d/fix-fabric-frameview-stall.rst delete mode 100644 source/isaaclab_mimic/changelog.d/xform-space-writer.skip delete mode 100644 source/isaaclab_newton/changelog.d/fabric-local-poses.rst delete mode 100644 source/isaaclab_newton/changelog.d/xform-space-writer.rst delete mode 100644 source/isaaclab_ovphysx/changelog.d/fabric-local-poses.rst delete mode 100644 source/isaaclab_ovphysx/changelog.d/xform-space-writer.rst delete mode 100644 source/isaaclab_physx/changelog.d/fabric-local-poses.rst delete mode 100644 source/isaaclab_physx/changelog.d/fix-physx-newton-camera-pose-scaling.rst delete mode 100644 source/isaaclab_physx/changelog.d/xform-space-writer.rst diff --git a/source/isaaclab/changelog.d/fabric-local-poses.rst b/source/isaaclab/changelog.d/fabric-local-poses.rst deleted file mode 100644 index 37a4f4ea6398..000000000000 --- a/source/isaaclab/changelog.d/fabric-local-poses.rst +++ /dev/null @@ -1,31 +0,0 @@ -Added -^^^^^ - -* Added explicit local/world scale getters - :meth:`~isaaclab.sim.views.BaseFrameView.get_local_scales` and - :meth:`~isaaclab.sim.views.BaseFrameView.get_world_scales` to the FrameView - API, implemented for :class:`~isaaclab.sim.views.UsdFrameView`. Scale - writes go through the writer scope (see the ``xform-space-writer`` - fragment). - -* Added :func:`~isaaclab.utils.warp.fabric.decompose_indexed_fabric_transforms`, - :func:`~isaaclab.utils.warp.fabric.compose_indexed_fabric_transforms`, - :func:`~isaaclab.utils.warp.fabric.update_indexed_local_matrix_from_world`, and - :func:`~isaaclab.utils.warp.fabric.update_indexed_world_matrix_from_local` - Warp kernels operating on :class:`wp.indexedfabricarray` for reading and - writing Fabric ``Matrix4d`` attributes (``omni:fabric:worldMatrix`` / - ``omni:fabric:localMatrix``). - -Notes -^^^^^ - -* :meth:`~isaaclab.sim.views.BaseFrameView.get_scales` and - :meth:`~isaaclab.sim.views.BaseFrameView.set_scales` remain supported as - convenience helpers (not deprecated). For reads where the space matters, - prefer the explicit ``get_local_scales`` (operates on ``xformOp:scale``) or - ``get_world_scales`` (composed world-space scale). For writes that also - update poses, prefer batching inside one scope: - ``with view.xform_world_space_writer() as w: w.set_poses(...); w.set_scales(...)`` - (or ``xform_local_space_writer``). - :class:`~isaaclab.sim.views.UsdFrameView` preserves prior behavior by - defaulting :meth:`get_scales` / :meth:`set_scales` to local scales. diff --git a/source/isaaclab/changelog.d/fix-arm-nlopt-install.rst b/source/isaaclab/changelog.d/fix-arm-nlopt-install.rst deleted file mode 100644 index 15343e41393d..000000000000 --- a/source/isaaclab/changelog.d/fix-arm-nlopt-install.rst +++ /dev/null @@ -1,12 +0,0 @@ -Fixed -^^^^^ - -* Fixed ``./isaaclab.sh --install`` unnecessarily building ``nlopt==2.6.2`` on - ARM Linux (e.g. DGX Spark), where it fails with CMake 4.x. The ARM-only - ``nlopt`` pre-install and its temporary ``swig`` install were removed because - ``nlopt`` is only pulled in by Linux x86_64 dependencies. - -* Fixed unavoidable ARM source builds such as ``egl-probe==1.0.2`` failing when - CMake 4.x rejects policy compatibility older than 3.5. The installer now - temporarily sets ``CMAKE_POLICY_VERSION_MINIMUM=3.5`` during ARM dependency - builds. diff --git a/source/isaaclab/changelog.d/fix-physx-newton-camera-pose-scaling.rst b/source/isaaclab/changelog.d/fix-physx-newton-camera-pose-scaling.rst deleted file mode 100644 index 73108d32b7aa..000000000000 --- a/source/isaaclab/changelog.d/fix-physx-newton-camera-pose-scaling.rst +++ /dev/null @@ -1,13 +0,0 @@ -Fixed -^^^^^ - -* Fixed :class:`~isaaclab.scene_data.SceneDataProvider` transform mapping stalling - at high rigid-body counts, which delayed setup by minutes in scenes with - thousands of environments. - -Added -^^^^^ - -* Added :meth:`~isaaclab.sim.views.BaseFrameView.close` to release backend state - authored by a frame view. Backends also release best-effort on garbage - collection, but only an explicit close is deterministic. diff --git a/source/isaaclab/changelog.d/xform-space-writer.rst b/source/isaaclab/changelog.d/xform-space-writer.rst deleted file mode 100644 index f3b2986beb6b..000000000000 --- a/source/isaaclab/changelog.d/xform-space-writer.rst +++ /dev/null @@ -1,35 +0,0 @@ -Added -^^^^^ - -* Added :class:`~isaaclab.sim.views.FrameViewSpaceWriterBase`, the new context-managed - write API for ``FrameView``-managed prim transforms. Open with - ``view.xform_world_space_writer()`` or ``view.xform_local_space_writer()`` and call - :meth:`~isaaclab.sim.views.FrameViewSpaceWriterBase.set_poses` / - :meth:`~isaaclab.sim.views.FrameViewSpaceWriterBase.set_scales` inside the scope; - the writer's ``__exit__`` derives the opposite-space matrices once and - synchronizes once. Only one writer scope may be active per view at a - time. View-level getters - (:meth:`~isaaclab.sim.views.BaseFrameView.get_world_poses` etc.) raise - :class:`RuntimeError` while a writer scope is active. - -* Added the two concrete tag classes - :class:`~isaaclab.sim.views.FrameViewWorldSpaceWriter` and - :class:`~isaaclab.sim.views.FrameViewLocalSpaceWriter` returned by - :meth:`~isaaclab.sim.views.BaseFrameView.xform_world_space_writer` / - :meth:`~isaaclab.sim.views.BaseFrameView.xform_local_space_writer`. - -Notes -^^^^^ - -* :meth:`~isaaclab.sim.views.BaseFrameView.set_world_poses`, - :meth:`~isaaclab.sim.views.BaseFrameView.set_local_poses`, and - :meth:`~isaaclab.sim.views.BaseFrameView.set_scales` remain supported as - convenience helpers (not deprecated). Each opens a single-statement writer - scope internally, so updating poses and scales through separate calls derives - the opposite-space matrices and synchronizes twice. For best performance, - update both inside one scope: - ``with view.xform_world_space_writer() as w: w.set_poses(...); w.set_scales(...)`` - (or :meth:`~isaaclab.sim.views.BaseFrameView.xform_local_space_writer`). - The bundled examples use the writer scope to get this benefit; callers may - keep the convenience helpers when code simplicity matters more than shaving - a redundant derive/sync. diff --git a/source/isaaclab/config/extension.toml b/source/isaaclab/config/extension.toml index f21e69af563f..82a33c8fadf7 100644 --- a/source/isaaclab/config/extension.toml +++ b/source/isaaclab/config/extension.toml @@ -1,7 +1,7 @@ [package] # Note: Semantic Versioning is used: https://semver.org/ -version = "6.1.17" +version = "6.1.18" # Description title = "Isaac Lab framework for Robot Learning" diff --git a/source/isaaclab/docs/CHANGELOG.rst b/source/isaaclab/docs/CHANGELOG.rst index c0f341247e6d..efcda8a9d2c4 100644 --- a/source/isaaclab/docs/CHANGELOG.rst +++ b/source/isaaclab/docs/CHANGELOG.rst @@ -1,6 +1,89 @@ Changelog --------- +6.1.18 (2026-09-11) +~~~~~~~~~~~~~~~~~~~ + +Added +^^^^^ + +* Added explicit local/world scale getters + :meth:`~isaaclab.sim.views.BaseFrameView.get_local_scales` and + :meth:`~isaaclab.sim.views.BaseFrameView.get_world_scales` to the FrameView + API, implemented for :class:`~isaaclab.sim.views.UsdFrameView`. Scale + writes go through the writer scope (see the ``xform-space-writer`` + fragment). + +* Added :func:`~isaaclab.utils.warp.fabric.decompose_indexed_fabric_transforms`, + :func:`~isaaclab.utils.warp.fabric.compose_indexed_fabric_transforms`, + :func:`~isaaclab.utils.warp.fabric.update_indexed_local_matrix_from_world`, and + :func:`~isaaclab.utils.warp.fabric.update_indexed_world_matrix_from_local` + Warp kernels operating on :class:`wp.indexedfabricarray` for reading and + writing Fabric ``Matrix4d`` attributes (``omni:fabric:worldMatrix`` / + ``omni:fabric:localMatrix``). +* Added :meth:`~isaaclab.sim.views.BaseFrameView.close` to release backend state + authored by a frame view. Backends also release best-effort on garbage + collection, but only an explicit close is deterministic. +* Added :class:`~isaaclab.sim.views.FrameViewSpaceWriterBase`, the new context-managed + write API for ``FrameView``-managed prim transforms. Open with + ``view.xform_world_space_writer()`` or ``view.xform_local_space_writer()`` and call + :meth:`~isaaclab.sim.views.FrameViewSpaceWriterBase.set_poses` / + :meth:`~isaaclab.sim.views.FrameViewSpaceWriterBase.set_scales` inside the scope; + the writer's ``__exit__`` derives the opposite-space matrices once and + synchronizes once. Only one writer scope may be active per view at a + time. View-level getters + (:meth:`~isaaclab.sim.views.BaseFrameView.get_world_poses` etc.) raise + :class:`RuntimeError` while a writer scope is active. + +* Added the two concrete tag classes + :class:`~isaaclab.sim.views.FrameViewWorldSpaceWriter` and + :class:`~isaaclab.sim.views.FrameViewLocalSpaceWriter` returned by + :meth:`~isaaclab.sim.views.BaseFrameView.xform_world_space_writer` / + :meth:`~isaaclab.sim.views.BaseFrameView.xform_local_space_writer`. + +Fixed +^^^^^ + +* Fixed ``./isaaclab.sh --install`` unnecessarily building ``nlopt==2.6.2`` on + ARM Linux (e.g. DGX Spark), where it fails with CMake 4.x. The ARM-only + ``nlopt`` pre-install and its temporary ``swig`` install were removed because + ``nlopt`` is only pulled in by Linux x86_64 dependencies. + +* Fixed unavoidable ARM source builds such as ``egl-probe==1.0.2`` failing when + CMake 4.x rejects policy compatibility older than 3.5. The installer now + temporarily sets ``CMAKE_POLICY_VERSION_MINIMUM=3.5`` during ARM dependency + builds. +* Fixed :class:`~isaaclab.scene_data.SceneDataProvider` transform mapping stalling + at high rigid-body counts, which delayed setup by minutes in scenes with + thousands of environments. + +Notes +^^^^^ + +* :meth:`~isaaclab.sim.views.BaseFrameView.get_scales` and + :meth:`~isaaclab.sim.views.BaseFrameView.set_scales` remain supported as + convenience helpers (not deprecated). For reads where the space matters, + prefer the explicit ``get_local_scales`` (operates on ``xformOp:scale``) or + ``get_world_scales`` (composed world-space scale). For writes that also + update poses, prefer batching inside one scope: + ``with view.xform_world_space_writer() as w: w.set_poses(...); w.set_scales(...)`` + (or ``xform_local_space_writer``). + :class:`~isaaclab.sim.views.UsdFrameView` preserves prior behavior by + defaulting :meth:`get_scales` / :meth:`set_scales` to local scales. +* :meth:`~isaaclab.sim.views.BaseFrameView.set_world_poses`, + :meth:`~isaaclab.sim.views.BaseFrameView.set_local_poses`, and + :meth:`~isaaclab.sim.views.BaseFrameView.set_scales` remain supported as + convenience helpers (not deprecated). Each opens a single-statement writer + scope internally, so updating poses and scales through separate calls derives + the opposite-space matrices and synchronizes twice. For best performance, + update both inside one scope: + ``with view.xform_world_space_writer() as w: w.set_poses(...); w.set_scales(...)`` + (or :meth:`~isaaclab.sim.views.BaseFrameView.xform_local_space_writer`). + The bundled examples use the writer scope to get this benefit; callers may + keep the convenience helpers when code simplicity matters more than shaving + a redundant derive/sync. + + 6.1.17 (2026-07-24) ~~~~~~~~~~~~~~~~~~~ diff --git a/source/isaaclab_mimic/changelog.d/fix-fabric-frameview-stall.rst b/source/isaaclab_mimic/changelog.d/fix-fabric-frameview-stall.rst deleted file mode 100644 index fb4ca7ed85b2..000000000000 --- a/source/isaaclab_mimic/changelog.d/fix-fabric-frameview-stall.rst +++ /dev/null @@ -1,5 +0,0 @@ -Fixed -^^^^^ - -* Fixed :class:`SceneAsset` leaking its cached frame view when the view is rebuilt, - which left the view's backend state to be released on garbage collection. diff --git a/source/isaaclab_mimic/changelog.d/xform-space-writer.skip b/source/isaaclab_mimic/changelog.d/xform-space-writer.skip deleted file mode 100644 index 8556272d818a..000000000000 --- a/source/isaaclab_mimic/changelog.d/xform-space-writer.skip +++ /dev/null @@ -1 +0,0 @@ -no user-facing change: internal migration of one set_world_poses call site to the new FrameViewSpaceWriter context API diff --git a/source/isaaclab_mimic/config/extension.toml b/source/isaaclab_mimic/config/extension.toml index 3e04557ca396..060720ff143a 100644 --- a/source/isaaclab_mimic/config/extension.toml +++ b/source/isaaclab_mimic/config/extension.toml @@ -1,7 +1,7 @@ [package] # Semantic Versioning is used: https://semver.org/ -version = "1.3.4" +version = "1.3.5" # Description category = "isaaclab" diff --git a/source/isaaclab_mimic/docs/CHANGELOG.rst b/source/isaaclab_mimic/docs/CHANGELOG.rst index 8e31ff9d2752..42a7f1b19bd2 100644 --- a/source/isaaclab_mimic/docs/CHANGELOG.rst +++ b/source/isaaclab_mimic/docs/CHANGELOG.rst @@ -1,6 +1,16 @@ Changelog --------- +1.3.5 (2026-09-11) +~~~~~~~~~~~~~~~~~~ + +Fixed +^^^^^ + +* Fixed :class:`SceneAsset` leaking its cached frame view when the view is rebuilt, + which left the view's backend state to be released on garbage collection. + + 1.3.4 (2026-07-24) ~~~~~~~~~~~~~~~~~~ diff --git a/source/isaaclab_newton/changelog.d/fabric-local-poses.rst b/source/isaaclab_newton/changelog.d/fabric-local-poses.rst deleted file mode 100644 index c5c0b0f3c7d2..000000000000 --- a/source/isaaclab_newton/changelog.d/fabric-local-poses.rst +++ /dev/null @@ -1,19 +0,0 @@ -Added -^^^^^ - -* Added :meth:`~isaaclab_newton.sim.views.NewtonSiteFrameView.get_local_scales` - and :meth:`~isaaclab_newton.sim.views.NewtonSiteFrameView.get_world_scales` - for reading transform (xform) scales. Scale writes go through the writer - scope (see the ``xform-space-writer`` fragment). These transform-scale - APIs are intentionally separate from Newton collision shape geometry - sizes. - -Deprecated -^^^^^^^^^^ - -* Deprecated :meth:`~isaaclab_newton.sim.views.NewtonSiteFrameView.get_scales` - and :meth:`~isaaclab_newton.sim.views.NewtonSiteFrameView.set_scales` in favor - of the explicit transform-scale getters ``get_world_scales`` / - ``get_local_scales`` (and the writer scope's ``set_scales``). The - deprecated methods still work but emit a ``DeprecationWarning`` and - preserve Newton's legacy collision shape geometry-scale behavior. diff --git a/source/isaaclab_newton/changelog.d/xform-space-writer.rst b/source/isaaclab_newton/changelog.d/xform-space-writer.rst deleted file mode 100644 index e04d5325e6aa..000000000000 --- a/source/isaaclab_newton/changelog.d/xform-space-writer.rst +++ /dev/null @@ -1,13 +0,0 @@ -Changed -^^^^^^^ - -* :class:`~isaaclab_newton.sim.views.NewtonSiteFrameView` now ships - pass-through ``FrameViewWorldSpaceWriter`` / ``FrameViewLocalSpaceWriter`` - implementations so writes follow the new - :meth:`~isaaclab.sim.views.BaseFrameView.xform_world_space_writer` / - :meth:`~isaaclab.sim.views.BaseFrameView.xform_local_space_writer` context API. - ``set_world_poses`` / ``set_local_poses`` shims still work (one-time - ``DeprecationWarning`` per class). The legacy ``set_scales`` / - ``get_scales`` paths continue to operate on Newton collision-shape - geometry sizes -- they are not routed through the writer because the - writer's ``set_scales`` writes the transform-scale state. diff --git a/source/isaaclab_newton/config/extension.toml b/source/isaaclab_newton/config/extension.toml index e67c1ac65c88..1617b1acdd02 100644 --- a/source/isaaclab_newton/config/extension.toml +++ b/source/isaaclab_newton/config/extension.toml @@ -1,7 +1,7 @@ [package] # Note: Semantic Versioning is used: https://semver.org/ -version = "0.13.6" +version = "0.13.7" # Description title = "Newton simulation interfaces for IsaacLab core package" diff --git a/source/isaaclab_newton/docs/CHANGELOG.rst b/source/isaaclab_newton/docs/CHANGELOG.rst index b64d8bb158f4..734c908e3f8a 100644 --- a/source/isaaclab_newton/docs/CHANGELOG.rst +++ b/source/isaaclab_newton/docs/CHANGELOG.rst @@ -1,6 +1,44 @@ Changelog --------- +0.13.7 (2026-09-11) +~~~~~~~~~~~~~~~~~~~ + +Added +^^^^^ + +* Added :meth:`~isaaclab_newton.sim.views.NewtonSiteFrameView.get_local_scales` + and :meth:`~isaaclab_newton.sim.views.NewtonSiteFrameView.get_world_scales` + for reading transform (xform) scales. Scale writes go through the writer + scope (see the ``xform-space-writer`` fragment). These transform-scale + APIs are intentionally separate from Newton collision shape geometry + sizes. + +Changed +^^^^^^^ + +* :class:`~isaaclab_newton.sim.views.NewtonSiteFrameView` now ships + pass-through ``FrameViewWorldSpaceWriter`` / ``FrameViewLocalSpaceWriter`` + implementations so writes follow the new + :meth:`~isaaclab.sim.views.BaseFrameView.xform_world_space_writer` / + :meth:`~isaaclab.sim.views.BaseFrameView.xform_local_space_writer` context API. + ``set_world_poses`` / ``set_local_poses`` shims still work (one-time + ``DeprecationWarning`` per class). The legacy ``set_scales`` / + ``get_scales`` paths continue to operate on Newton collision-shape + geometry sizes -- they are not routed through the writer because the + writer's ``set_scales`` writes the transform-scale state. + +Deprecated +^^^^^^^^^^ + +* Deprecated :meth:`~isaaclab_newton.sim.views.NewtonSiteFrameView.get_scales` + and :meth:`~isaaclab_newton.sim.views.NewtonSiteFrameView.set_scales` in favor + of the explicit transform-scale getters ``get_world_scales`` / + ``get_local_scales`` (and the writer scope's ``set_scales``). The + deprecated methods still work but emit a ``DeprecationWarning`` and + preserve Newton's legacy collision shape geometry-scale behavior. + + 0.13.6 (2026-06-14) ~~~~~~~~~~~~~~~~~~~ diff --git a/source/isaaclab_ovphysx/changelog.d/fabric-local-poses.rst b/source/isaaclab_ovphysx/changelog.d/fabric-local-poses.rst deleted file mode 100644 index fdf33f0b7d94..000000000000 --- a/source/isaaclab_ovphysx/changelog.d/fabric-local-poses.rst +++ /dev/null @@ -1,19 +0,0 @@ -Added -^^^^^ - -* Added :meth:`~isaaclab_ovphysx.sim.views.OvPhysxFrameView.get_local_scales` - and :meth:`~isaaclab_ovphysx.sim.views.OvPhysxFrameView.get_world_scales`, - which delegate to the internal :class:`~isaaclab.sim.views.UsdFrameView`. - Scale writes go through the writer scope (see the ``xform-space-writer`` - fragment). - -Deprecated -^^^^^^^^^^ - -* Deprecated :meth:`~isaaclab_ovphysx.sim.views.OvPhysxFrameView.get_scales` and - :meth:`~isaaclab_ovphysx.sim.views.OvPhysxFrameView.set_scales`. For reads, - use the explicit ``get_local_scales`` (operates on ``xformOp:scale``) or - ``get_world_scales``. For writes, use the writer scope's - ``set_scales``. The deprecated methods still work but emit a - ``DeprecationWarning`` and default to local scales, preserving prior - behavior. diff --git a/source/isaaclab_ovphysx/changelog.d/xform-space-writer.rst b/source/isaaclab_ovphysx/changelog.d/xform-space-writer.rst deleted file mode 100644 index 3561232a311e..000000000000 --- a/source/isaaclab_ovphysx/changelog.d/xform-space-writer.rst +++ /dev/null @@ -1,13 +0,0 @@ -Changed -^^^^^^^ - -* :class:`~isaaclab_ovphysx.sim.views.OvPhysxFrameView` now ships - pass-through ``FrameViewWorldSpaceWriter`` / ``FrameViewLocalSpaceWriter`` - implementations so writes follow the new - :meth:`~isaaclab.sim.views.BaseFrameView.xform_world_space_writer` / - :meth:`~isaaclab.sim.views.BaseFrameView.xform_local_space_writer` context API. - ``set_world_poses`` / ``set_local_poses`` shims still work (one-time - ``DeprecationWarning`` per class). Scale writes inside the writer scope - delegate to the internal :class:`~isaaclab.sim.views.UsdFrameView` and - land in the USD stage (no propagation to OVPhysX-side collision-shape - scales). diff --git a/source/isaaclab_ovphysx/config/extension.toml b/source/isaaclab_ovphysx/config/extension.toml index f33577e0ae85..1de096349c5b 100644 --- a/source/isaaclab_ovphysx/config/extension.toml +++ b/source/isaaclab_ovphysx/config/extension.toml @@ -1,7 +1,7 @@ [package] # Note: Semantic Versioning is used: https://semver.org/ -version = "3.0.2" +version = "3.0.3" # Description title = "OvPhysX simulation interfaces for IsaacLab core package" diff --git a/source/isaaclab_ovphysx/docs/CHANGELOG.rst b/source/isaaclab_ovphysx/docs/CHANGELOG.rst index 1c6ac05c344a..76add53b59dc 100644 --- a/source/isaaclab_ovphysx/docs/CHANGELOG.rst +++ b/source/isaaclab_ovphysx/docs/CHANGELOG.rst @@ -1,6 +1,44 @@ Changelog --------- +3.0.3 (2026-09-11) +~~~~~~~~~~~~~~~~~~ + +Added +^^^^^ + +* Added :meth:`~isaaclab_ovphysx.sim.views.OvPhysxFrameView.get_local_scales` + and :meth:`~isaaclab_ovphysx.sim.views.OvPhysxFrameView.get_world_scales`, + which delegate to the internal :class:`~isaaclab.sim.views.UsdFrameView`. + Scale writes go through the writer scope (see the ``xform-space-writer`` + fragment). + +Changed +^^^^^^^ + +* :class:`~isaaclab_ovphysx.sim.views.OvPhysxFrameView` now ships + pass-through ``FrameViewWorldSpaceWriter`` / ``FrameViewLocalSpaceWriter`` + implementations so writes follow the new + :meth:`~isaaclab.sim.views.BaseFrameView.xform_world_space_writer` / + :meth:`~isaaclab.sim.views.BaseFrameView.xform_local_space_writer` context API. + ``set_world_poses`` / ``set_local_poses`` shims still work (one-time + ``DeprecationWarning`` per class). Scale writes inside the writer scope + delegate to the internal :class:`~isaaclab.sim.views.UsdFrameView` and + land in the USD stage (no propagation to OVPhysX-side collision-shape + scales). + +Deprecated +^^^^^^^^^^ + +* Deprecated :meth:`~isaaclab_ovphysx.sim.views.OvPhysxFrameView.get_scales` and + :meth:`~isaaclab_ovphysx.sim.views.OvPhysxFrameView.set_scales`. For reads, + use the explicit ``get_local_scales`` (operates on ``xformOp:scale``) or + ``get_world_scales``. For writes, use the writer scope's + ``set_scales``. The deprecated methods still work but emit a + ``DeprecationWarning`` and default to local scales, preserving prior + behavior. + + 3.0.2 (2026-06-11) ~~~~~~~~~~~~~~~~~~ diff --git a/source/isaaclab_physx/changelog.d/fabric-local-poses.rst b/source/isaaclab_physx/changelog.d/fabric-local-poses.rst deleted file mode 100644 index 94c48cf83690..000000000000 --- a/source/isaaclab_physx/changelog.d/fabric-local-poses.rst +++ /dev/null @@ -1,36 +0,0 @@ -Added -^^^^^ - -* Added :func:`~isaaclab.utils.warp.fabric.decompose_indexed_fabric_transforms` - and :func:`~isaaclab.utils.warp.fabric.compose_indexed_fabric_transforms` - Warp kernels. They mirror the existing - ``decompose_fabric_transformation_matrix_to_warp_arrays`` / - ``compose_fabric_transformation_matrix_from_warp_arrays`` kernels but - operate on :class:`wp.indexedfabricarray`, so the view-to-fabric mapping - is baked into the array and the kernel just dereferences - ``ifa[view_index]`` instead of taking a separate ``mapping`` argument. - -* Added :func:`~isaaclab.utils.warp.fabric.update_indexed_local_matrix_from_world` - and :func:`~isaaclab.utils.warp.fabric.update_indexed_world_matrix_from_local` - Warp kernels that propagate ``local = world * inv(parent)`` and - ``world = local * parent`` directly on Fabric storage matrices. - -* Added Fabric-accelerated local-pose read/write paths to - :class:`~isaaclab_physx.sim.views.FabricFrameView`. Local-pose - operations now use :class:`wp.indexedfabricarray` to read and write - ``omni:fabric:localMatrix`` directly on the GPU, propagating between - parent world matrices and child local/world matrices via Warp kernels - without round-tripping through USD. - -* Added topology-change recovery via automatic ``PrepareForReuse`` detection - and per-selection index rebuild. - -Deprecated -^^^^^^^^^^ - -* Deprecated ``get_scales`` / ``set_scales`` on ``FabricFrameView``. For - reads, use the explicit ``get_local_scales`` (operates on - ``localMatrix``) or ``get_world_scales`` (composed world-space scale). - For writes, use the writer scope's ``set_scales``. The deprecated - methods still work but emit a ``DeprecationWarning``; ``FabricFrameView`` - defaults to world (preserving prior behavior). diff --git a/source/isaaclab_physx/changelog.d/fix-physx-newton-camera-pose-scaling.rst b/source/isaaclab_physx/changelog.d/fix-physx-newton-camera-pose-scaling.rst deleted file mode 100644 index 72f5e00d6fe5..000000000000 --- a/source/isaaclab_physx/changelog.d/fix-physx-newton-camera-pose-scaling.rst +++ /dev/null @@ -1,14 +0,0 @@ -Fixed -^^^^^ - -* Fixed camera world-pose resolution stalling at high environment counts under the - PhysX backend, which caused multi-second pauses between rendered frames and - benchmark timeouts. - -Added -^^^^^ - -* Added :meth:`close` to the PhysX Fabric frame view, removing its per-view Fabric - index attributes so that views recreated over the same prims no longer accumulate - attributes. Views dropped without closing are cleaned up on garbage collection, - with a warning. diff --git a/source/isaaclab_physx/changelog.d/xform-space-writer.rst b/source/isaaclab_physx/changelog.d/xform-space-writer.rst deleted file mode 100644 index c87325bf69a5..000000000000 --- a/source/isaaclab_physx/changelog.d/xform-space-writer.rst +++ /dev/null @@ -1,36 +0,0 @@ -Changed -^^^^^^^ - -* :class:`~isaaclab_physx.sim.views.FabricFrameView` now writes Fabric - ``omni:fabric:worldMatrix`` and ``omni:fabric:localMatrix`` through the - new context-managed - :class:`~isaaclab.sim.views.FrameViewSpaceWriterBase` scope. Each scope: - - - eagerly writes both the primary matrix (world or local, per the - chosen space) and derives the opposite-space matrix in a single Warp - kernel on ``__exit__``; - - calls ``wp.synchronize()`` once on ``__exit__``; - - pauses :meth:`IFabricHierarchy.track_local_xform_changes` and - :meth:`track_world_xform_changes` while the scope is active and - restores their prior state on exit, so Fabric Hierarchy's - ``update_world_xforms()`` on the next tick has no recorded changes - to replay for these prims. The Fabric Scene Delegate (FSD) reads - ``omni:fabric:worldMatrix`` from Fabric storage directly and - observes the writes. - - runs the opposite-space derive + ``wp.synchronize()`` on exit even - when the scope unwinds via exception (including ``KeyboardInterrupt`` - in interactive notebooks), as a best-effort to keep ``worldMatrix`` - and ``localMatrix`` mutually consistent prim-by-prim. The partial - write itself is not rolled back -- callers needing transactional - semantics should snapshot the matrices themselves before entering - the scope. - - Two persistent selections back the two access modes: ``_sel_ro`` - (``worldMatrix=RO, localMatrix=RO``, steady state) and ``_sel_rw`` - (``worldMatrix=RW, localMatrix=RW``, used inside a writer scope). - Both are built once during ``_initialize_fabric`` and kept for the - view's lifetime; the writer flips a single ``_is_rw`` flag on - enter/exit and neither selection is rebuilt on the flip. The RO - steady state tells Fabric Hierarchy's next ``update_world_xforms()`` - tick that no attribute is user-authored, so it leaves the pair - alone. diff --git a/source/isaaclab_physx/config/extension.toml b/source/isaaclab_physx/config/extension.toml index 999c85964277..785fb7b58567 100644 --- a/source/isaaclab_physx/config/extension.toml +++ b/source/isaaclab_physx/config/extension.toml @@ -1,7 +1,7 @@ [package] # Note: Semantic Versioning is used: https://semver.org/ -version = "1.1.3" +version = "1.1.4" # Description title = "PhysX simulation interfaces for IsaacLab core package" diff --git a/source/isaaclab_physx/docs/CHANGELOG.rst b/source/isaaclab_physx/docs/CHANGELOG.rst index 9ea6ec765852..f9507e64ff9a 100644 --- a/source/isaaclab_physx/docs/CHANGELOG.rst +++ b/source/isaaclab_physx/docs/CHANGELOG.rst @@ -1,6 +1,95 @@ Changelog --------- +1.1.4 (2026-09-11) +~~~~~~~~~~~~~~~~~~ + +Added +^^^^^ + +* Added :func:`~isaaclab.utils.warp.fabric.decompose_indexed_fabric_transforms` + and :func:`~isaaclab.utils.warp.fabric.compose_indexed_fabric_transforms` + Warp kernels. They mirror the existing + ``decompose_fabric_transformation_matrix_to_warp_arrays`` / + ``compose_fabric_transformation_matrix_from_warp_arrays`` kernels but + operate on :class:`wp.indexedfabricarray`, so the view-to-fabric mapping + is baked into the array and the kernel just dereferences + ``ifa[view_index]`` instead of taking a separate ``mapping`` argument. + +* Added :func:`~isaaclab.utils.warp.fabric.update_indexed_local_matrix_from_world` + and :func:`~isaaclab.utils.warp.fabric.update_indexed_world_matrix_from_local` + Warp kernels that propagate ``local = world * inv(parent)`` and + ``world = local * parent`` directly on Fabric storage matrices. + +* Added Fabric-accelerated local-pose read/write paths to + :class:`~isaaclab_physx.sim.views.FabricFrameView`. Local-pose + operations now use :class:`wp.indexedfabricarray` to read and write + ``omni:fabric:localMatrix`` directly on the GPU, propagating between + parent world matrices and child local/world matrices via Warp kernels + without round-tripping through USD. + +* Added topology-change recovery via automatic ``PrepareForReuse`` detection + and per-selection index rebuild. +* Added :meth:`close` to the PhysX Fabric frame view, removing its per-view Fabric + index attributes so that views recreated over the same prims no longer accumulate + attributes. Views dropped without closing are cleaned up on garbage collection, + with a warning. + +Changed +^^^^^^^ + +* :class:`~isaaclab_physx.sim.views.FabricFrameView` now writes Fabric + ``omni:fabric:worldMatrix`` and ``omni:fabric:localMatrix`` through the + new context-managed + :class:`~isaaclab.sim.views.FrameViewSpaceWriterBase` scope. Each scope: + + - eagerly writes both the primary matrix (world or local, per the + chosen space) and derives the opposite-space matrix in a single Warp + kernel on ``__exit__``; + - calls ``wp.synchronize()`` once on ``__exit__``; + - pauses :meth:`IFabricHierarchy.track_local_xform_changes` and + :meth:`track_world_xform_changes` while the scope is active and + restores their prior state on exit, so Fabric Hierarchy's + ``update_world_xforms()`` on the next tick has no recorded changes + to replay for these prims. The Fabric Scene Delegate (FSD) reads + ``omni:fabric:worldMatrix`` from Fabric storage directly and + observes the writes. + - runs the opposite-space derive + ``wp.synchronize()`` on exit even + when the scope unwinds via exception (including ``KeyboardInterrupt`` + in interactive notebooks), as a best-effort to keep ``worldMatrix`` + and ``localMatrix`` mutually consistent prim-by-prim. The partial + write itself is not rolled back -- callers needing transactional + semantics should snapshot the matrices themselves before entering + the scope. + + Two persistent selections back the two access modes: ``_sel_ro`` + (``worldMatrix=RO, localMatrix=RO``, steady state) and ``_sel_rw`` + (``worldMatrix=RW, localMatrix=RW``, used inside a writer scope). + Both are built once during ``_initialize_fabric`` and kept for the + view's lifetime; the writer flips a single ``_is_rw`` flag on + enter/exit and neither selection is rebuilt on the flip. The RO + steady state tells Fabric Hierarchy's next ``update_world_xforms()`` + tick that no attribute is user-authored, so it leaves the pair + alone. + +Deprecated +^^^^^^^^^^ + +* Deprecated ``get_scales`` / ``set_scales`` on ``FabricFrameView``. For + reads, use the explicit ``get_local_scales`` (operates on + ``localMatrix``) or ``get_world_scales`` (composed world-space scale). + For writes, use the writer scope's ``set_scales``. The deprecated + methods still work but emit a ``DeprecationWarning``; ``FabricFrameView`` + defaults to world (preserving prior behavior). + +Fixed +^^^^^ + +* Fixed camera world-pose resolution stalling at high environment counts under the + PhysX backend, which caused multi-second pauses between rendered frames and + benchmark timeouts. + + 1.1.3 (2026-06-12) ~~~~~~~~~~~~~~~~~~