Skip to content

Commit 3d7a2ed

Browse files
author
Horde
committed
Enable MuJoCo tendon parsing in Newton physics replication
Add SchemaResolverMjc to the schema resolver list and call SolverMuJoCo.register_custom_attributes on the main ModelBuilder before add_usd in newton_replicate.py. Both are required for MjcTendon prims (fixed-tendon schema in USD) to be recognized and land in the MuJoCo solver model. Without this, USD assets that carry tendon annotations (e.g. MuJoCo Menagerie's Shadow Hand) were silently parsed without tendons, causing the fixed-tendon finger coupling to be absent from the Newton simulation. Bumps isaaclab_newton to 0.5.15.
1 parent 2c9b667 commit 3d7a2ed

3 files changed

Lines changed: 21 additions & 3 deletions

File tree

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.14"
4+
version = "0.5.15"
55

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

source/isaaclab_newton/docs/CHANGELOG.rst

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

4+
0.5.15 (2026-04-28)
5+
~~~~~~~~~~~~~~~~~~~
6+
7+
Fixed
8+
^^^^^
9+
10+
* Fixed Newton physics replication to enable MuJoCo tendon parsing from USD.
11+
:func:`~isaaclab_newton.cloner.newton_replicate._build_newton_builder_from_mapping`
12+
now includes :class:`SchemaResolverMjc` in its resolver list and calls
13+
``SolverMuJoCo.register_custom_attributes`` on the main builder, which are
14+
both required for ``MjcTendon`` prims to land in the MuJoCo solver model.
15+
Previously, USD assets with fixed-tendon schema (e.g. MuJoCo Menagerie's
16+
Shadow Hand) were silently parsed without tendons.
17+
18+
419
0.5.14 (2026-04-16)
520
~~~~~~~~~~~~~~~~~~~
621

source/isaaclab_newton/isaaclab_newton/cloner/newton_replicate.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import torch
1111
import warp as wp
1212
from newton import ModelBuilder, solvers
13-
from newton._src.usd.schemas import SchemaResolverNewton, SchemaResolverPhysx
13+
from newton._src.usd.schemas import SchemaResolverMjc, SchemaResolverNewton, SchemaResolverPhysx
1414

1515
from pxr import Usd, UsdGeom
1616

@@ -52,9 +52,12 @@ def _build_newton_builder_from_mapping(
5252
quaternions = torch.zeros((mapping.size(1), 4), device=mapping.device, dtype=torch.float32)
5353
quaternions[:, 3] = 1.0
5454

55-
schema_resolvers = [SchemaResolverNewton(), SchemaResolverPhysx()]
55+
# SchemaResolverMjc parses MjcTendon prims (USD-tendon → MuJoCo solver fixed tendons).
56+
schema_resolvers = [SchemaResolverMjc(), SchemaResolverNewton(), SchemaResolverPhysx()]
5657

5758
builder = NewtonManager.create_builder(up_axis=up_axis)
59+
# Required for SchemaResolverMjc to recognise MuJoCo-specific USD attributes.
60+
solvers.SolverMuJoCo.register_custom_attributes(builder)
5861
stage_info = builder.add_usd(
5962
stage,
6063
ignore_paths=["/World/envs"] + sources,

0 commit comments

Comments
 (0)