From fe50efd41a3c3dd50352b1626141e2ab0522994e Mon Sep 17 00:00:00 2001 From: Taylor Howell Date: Thu, 19 Feb 2026 13:51:54 -0800 Subject: [PATCH] Sparse tendon Jacobian update for MuJoCo Warp PiperOrigin-RevId: 872550625 Change-Id: Ifc5afacb048bec36ef6455072b188396db958002 --- mjx/mujoco/mjx/third_party/mujoco_warp/_src/io.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/mjx/mujoco/mjx/third_party/mujoco_warp/_src/io.py b/mjx/mujoco/mjx/third_party/mujoco_warp/_src/io.py index 9ee93d3d..05bd1d2b 100644 --- a/mjx/mujoco/mjx/third_party/mujoco_warp/_src/io.py +++ b/mjx/mujoco/mjx/third_party/mujoco_warp/_src/io.py @@ -952,13 +952,9 @@ def put_data( d.flexedge_J = wp.array(np.tile(mjd.flexedge_J.reshape(-1), (nworld, 1)).reshape((nworld, 1, -1)), dtype=float) - if mujoco.mj_isSparse(mjm): - ten_J = np.zeros((mjm.ntendon, mjm.nv)) - mujoco.mju_sparse2dense(ten_J, mjd.ten_J.reshape(-1), mjd.ten_J_rownnz, mjd.ten_J_rowadr, mjd.ten_J_colind.reshape(-1)) - d.ten_J = wp.array(np.full((nworld, mjm.ntendon, mjm.nv), ten_J), dtype=float) - else: - ten_J = mjd.ten_J.reshape((mjm.ntendon, mjm.nv)) - d.ten_J = wp.array(np.full((nworld, mjm.ntendon, mjm.nv), ten_J), dtype=float) + ten_J = np.zeros((mjm.ntendon, mjm.nv)) + mujoco.mju_sparse2dense(ten_J, mjd.ten_J.reshape(-1), mjd.ten_J_rownnz, mjd.ten_J_rowadr, mjd.ten_J_colind.reshape(-1)) + d.ten_J = wp.array(np.full((nworld, mjm.ntendon, mjm.nv), ten_J), dtype=float) # TODO(taylorhowell): sparse actuator_moment actuator_moment = np.zeros((mjm.nu, mjm.nv))