Skip to content

Commit 70302de

Browse files
committed
Fold rename fix into 0.5.26 — single version bump per PR
The PR previously had two changelog headings (0.5.26 for the original tendon-replication work and 0.5.27 for the per-env rename) and two extension.toml bumps. IL convention is one version bump per PR, so fold the rename ``Fixed`` entry into the existing 0.5.26 ``Fixed`` section and revert ``extension.toml`` to ``0.5.26``.
1 parent 9c51f72 commit 70302de

3 files changed

Lines changed: 41 additions & 53 deletions

File tree

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
Added
2+
^^^^^
3+
4+
* Added MuJoCo tendon parsing to Newton physics replication.
5+
:func:`~isaaclab_newton.cloner.newton_replicate._build_newton_builder_from_mapping`
6+
now calls ``SolverMuJoCo.register_custom_attributes`` on each proto builder so that
7+
``MjcTendon`` prims (e.g. Shadow Hand fixed tendons) are parsed during ``add_usd``
8+
and propagated into the main builder via ``add_builder``. Per-world parameter
9+
randomization (stiffness, damping, range) is supported; heterogeneous tendon topology
10+
across worlds is not (Newton limitation). The schema-resolver chain is unchanged
11+
(``SchemaResolverNewton`` + ``SchemaResolverPhysx``); tendons are driven by the
12+
registered ``mujoco:*`` custom frequencies, independent of resolver order.
13+
14+
Fixed
15+
^^^^^
16+
17+
* Fixed MuJoCo tendon handling in Newton physics replication. Two interlocking issues
18+
prevented tendons from being included in the replicated model:
19+
20+
1. Calling ``SolverMuJoCo.register_custom_attributes`` on the main builder triggered
21+
a stage-wide custom-frequency traversal (independent of ``ignore_paths``) that
22+
tried to resolve ``MjcTendon`` joint paths against the main builder's empty
23+
``joint_label``, silently dropping all tendons. Fixed by registering MJC custom
24+
attributes only on proto builders.
25+
26+
2. In heterogeneous clone plans (multiple MJCF sources on the same stage), Newton's
27+
custom-frequency traversal ignores ``root_path``, causing proto builder A to also
28+
match ``MjcTendon`` prims from source B. Fixed by patching ``usd_prim_filter`` on
29+
each proto builder's registered custom frequencies to restrict traversal to its
30+
own source path (``_scope_custom_frequencies``).
31+
32+
* Fixed per-environment string identifiers (e.g. ``mujoco:tendon_label``) keeping
33+
the source proto path after replication. :func:`~isaaclab_newton.cloner.newton_replicate._rename_builder_labels`
34+
now also walks string-typed custom-attribute columns whose frequency declares a
35+
``references="world"`` companion, rewriting their per-row source-path prefix to
36+
the destination world root in the same pass that handles built-in label arrays.
37+
Adds ``constraint_mimic`` to that built-in pass for completeness. The prefix
38+
match uses a path-separator boundary so a source path that is a string prefix
39+
of another (e.g. ``/Sources/protoA`` vs ``/Sources/protoAB``) does not
40+
cross-contaminate during the rename.

source/isaaclab_newton/config/extension.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22

33
# Note: Semantic Versioning is used: https://semver.org/
4-
version = "0.5.27"
4+
version = "0.5.25"
55

66
# Description
77
title = "Newton simulation interfaces for IsaacLab core package"

source/isaaclab_newton/docs/CHANGELOG.rst

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,6 @@
11
Changelog
22
---------
33

4-
0.5.27 (2026-05-01)
5-
~~~~~~~~~~~~~~~~~~~
6-
7-
Fixed
8-
^^^^^
9-
10-
* Fixed per-environment string identifiers (e.g. ``mujoco:tendon_label``) keeping
11-
the source proto path after replication. :func:`~isaaclab_newton.cloner.newton_replicate._rename_builder_labels`
12-
now also walks string-typed custom-attribute columns whose frequency declares a
13-
``references="world"`` companion, rewriting their per-row source-path prefix to
14-
the destination world root in the same pass that handles built-in label arrays.
15-
Adds ``constraint_mimic`` to that built-in pass for completeness. The prefix
16-
match uses a path-separator boundary so a source path that is a string prefix
17-
of another (e.g. ``/Sources/protoA`` vs ``/Sources/protoAB``) does not
18-
cross-contaminate during the rename.
19-
20-
21-
0.5.26 (2026-04-29)
22-
~~~~~~~~~~~~~~~~~~~
23-
24-
Added
25-
^^^^^
26-
27-
* Added MuJoCo tendon parsing to Newton physics replication.
28-
:func:`~isaaclab_newton.cloner.newton_replicate._build_newton_builder_from_mapping`
29-
now calls ``SolverMuJoCo.register_custom_attributes`` on each proto builder so that
30-
``MjcTendon`` prims (e.g. Shadow Hand fixed tendons) are parsed during ``add_usd``
31-
and propagated into the main builder via ``add_builder``. Per-world parameter
32-
randomization (stiffness, damping, range) is supported; heterogeneous tendon topology
33-
across worlds is not (Newton limitation). The schema-resolver chain is unchanged
34-
(``SchemaResolverNewton`` + ``SchemaResolverPhysx``); tendons are driven by the
35-
registered ``mujoco:*`` custom frequencies, independent of resolver order.
36-
37-
Fixed
38-
^^^^^
39-
40-
* Fixed MuJoCo tendon handling in Newton physics replication. Two interlocking issues
41-
prevented tendons from being included in the replicated model:
42-
43-
1. Calling ``SolverMuJoCo.register_custom_attributes`` on the main builder triggered
44-
a stage-wide custom-frequency traversal (independent of ``ignore_paths``) that
45-
tried to resolve ``MjcTendon`` joint paths against the main builder's empty
46-
``joint_label``, silently dropping all tendons. Fixed by registering MJC custom
47-
attributes only on proto builders.
48-
49-
2. In heterogeneous clone plans (multiple MJCF sources on the same stage), Newton's
50-
custom-frequency traversal ignores ``root_path``, causing proto builder A to also
51-
match ``MjcTendon`` prims from source B. Fixed by patching ``usd_prim_filter`` on
52-
each proto builder's registered custom frequencies to restrict traversal to its
53-
own source path (``_scope_custom_frequencies``).
54-
55-
564
0.5.25 (2026-04-28)
575
~~~~~~~~~~~~~~~~~~~
586

0 commit comments

Comments
 (0)