Skip to content

Commit 1c681ac

Browse files
Bump mujoco-warp to 3.10.0.3 (#3635)
Co-authored-by: Viktor Reutskyy <vreutskyy@nvidia.com>
1 parent 0a3e9e1 commit 1c681ac

3 files changed

Lines changed: 11 additions & 13 deletions

File tree

asv.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"build_command": ["python -m build --wheel -o {build_cache_dir} {build_dir}"],
1717
"install_command": [
1818
"in-dir={env_dir} python -m pip install {wheel_file}[dev] --extra-index-url=https://pypi.nvidia.com/",
19-
"in-dir={env_dir} python -m pip install {wheel_file}[sim] warp-lang==1.16.0.dev20260716 mujoco==3.10.0 mujoco-warp==3.10.0.2 --extra-index-url=https://pypi.nvidia.com/",
19+
"in-dir={env_dir} python -m pip install {wheel_file}[sim] warp-lang==1.16.0.dev20260716 mujoco==3.10.0 mujoco-warp==3.10.0.3 --extra-index-url=https://pypi.nvidia.com/",
2020
"python -m pip install torch==2.10.0+cu130 --index-url https://download.pytorch.org/whl/cu130"
2121
]
2222
}

newton/tests/test_menagerie_mujoco.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -644,8 +644,6 @@ def compare_mass_matrix_layouts(
644644
np.testing.assert_array_equal(newton_model.M_fullm_i.numpy(), native_model.M_fullm_i.numpy())
645645
np.testing.assert_array_equal(newton_model.M_fullm_j.numpy(), native_model.M_fullm_j.numpy())
646646

647-
newton_simple = newton_model.qLD_dof_simple.numpy().astype(bool)
648-
native_simple = native_model.qLD_dof_simple.numpy().astype(bool)
649647
newton_mass = newton_data.M.numpy()
650648
native_mass = native_data.M.numpy()
651649

@@ -655,11 +653,9 @@ def compare_mass_matrix_layouts(
655653
if newton_entries.keys() == native_entries.keys():
656654
continue
657655

658-
assert newton_simple[row] != native_simple[row], (
659-
f"DOF {row}: different mass-matrix layouts are not explained by simple-body classification"
660-
)
661-
662-
if newton_simple[row]:
656+
# A simple (diagonal-only) row on one side may be stored expanded on the
657+
# other; any other layout difference is a real mismatch.
658+
if newton_entries.keys() == {row}:
663659
simple_entries = newton_entries
664660
general_entries = native_entries
665661
general_mass = native_mass
@@ -668,7 +664,7 @@ def compare_mass_matrix_layouts(
668664
general_entries = newton_entries
669665
general_mass = newton_mass
670666

671-
assert set(simple_entries) == {row}, f"DOF {row}: simple mass-matrix row is not diagonal"
667+
assert set(simple_entries) == {row}, f"DOF {row}: different mass-matrix layouts and neither row is diagonal"
672668
assert set(simple_entries) < set(general_entries), f"DOF {row}: general row does not expand simple row"
673669

674670
extra_addresses = [general_entries[column] for column in sorted(general_entries.keys() - simple_entries.keys())]
@@ -2495,7 +2491,9 @@ class TestMenagerie_AnyboticsAnymalC(TestMenagerieMJCF):
24952491

24962492
robot_folder = "anybotics_anymal_c"
24972493
num_steps = 20
2498-
dynamics_tolerance = 1e-4
2494+
# MJWarp 3.10.0.3's compact/full small-block factorization paths produce
2495+
# deterministic CPU qvel differences up to 1.09e-4 for this model.
2496+
dynamics_tolerance = 2e-4
24992497
fk_enabled = True
25002498
backfill_model = True
25012499

uv.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)