Commit Graph

3047 Commits

Author SHA1 Message Date
Alessio Quaglino f75772587a Add functions for setting an mjsActuator to a specific shortcut type.
PiperOrigin-RevId: 769049331
Change-Id: If5bb04966bd29a57569a2c17d712b9ae3d33324d
2025-06-09 02:17:02 -07:00
Google DeepMind dd18dd2024 Apply metallic and roughness scaling factors.
PiperOrigin-RevId: 767518801
Change-Id: I7eff7b7a56cfbb9c6e46ac22011559eabf401c07
2025-06-05 03:03:16 -07:00
Alessio Quaglino 047df4e871 Add texture to rotating cylinders in pulley example.
PiperOrigin-RevId: 767260834
Change-Id: I3030be314b5b197163d75ef88a5fd99a940d9c67
2025-06-04 13:16:04 -07:00
Levi Burner 3eb31f56cd Copybara import of the project:
--
c9acc0a6f677951db34f2b607bd60fc18a43f72b by Levi Burner <leviburner@gmail.com>:

Fix race condition in Python viewers set_X methods

--
b89ab8f7a0f628ee7a02ebfbac2a97f113112076 by Levi Burner <leviburner@gmail.com>:

use std::swap to replace some copying

--
02625bed0cffbfc9ea4537f74689f0bbcb8bf44c by Levi Burner <leviburner@gmail.com>:

fix whitespace

COPYBARA_INTEGRATE_REVIEW=https://github.com/google-deepmind/mujoco/pull/2613 from aftersomemath:simulate-set-race 02625bed0cffbfc9ea4537f74689f0bbcb8bf44c
PiperOrigin-RevId: 766646168
Change-Id: I1e1dc16afbfb1e69fb958d54bd1075cc9aed3569
2025-06-03 07:01:31 -07:00
Alessio Quaglino fe81373ffe Enable WriteReadCompare for models with assets.
PiperOrigin-RevId: 765500742
Change-Id: I119dbea11ed6771839b5e81d04070e95a51d3ed0
2025-05-31 00:56:27 -07:00
Alessio Quaglino 84ad22a590 Add mj_copyBack for copying real-valued arrays from mjModel back to mjSpec.
Also add `SaveAndReadXML` function to test fixture using `mjSpec` as input.

PiperOrigin-RevId: 765393821
Change-Id: Ic257addd2fc89678fc11b226c168c077626cc51e
2025-05-30 17:17:14 -07:00
Robin Alazard 072c872deb Add helper methods for storing USD prim paths into mjsElements.
This way we fix a previously uncaught casting error due to using different types.

PiperOrigin-RevId: 765177079
Change-Id: I4f817f12c92fe578b25e8c53a94b3c91e22a3db0
2025-05-30 07:10:35 -07:00
Alessio Quaglino 7932b4b202 Accumulate inertial in mjs_bodyToFrame.
PiperOrigin-RevId: 765129145
Change-Id: Ib7caca42ef4272ebe762655eee9380dae471be7f
2025-05-30 04:10:38 -07:00
Alessio Quaglino f72a175a2c Enable using sensor and SDF plugins in MJX:C.
PiperOrigin-RevId: 765089354
Change-Id: I3cacc2980ac8aeff68cfb927beb5b1dbb13261d4
2025-05-30 01:52:59 -07:00
Sam Haves b2e8589e7a Add support for actuators to Mujoco USD interop.
PiperOrigin-RevId: 764740692
Change-Id: Ib045653fee840087bc3891ee7e770bdaac08548c
2025-05-29 08:29:46 -07:00
Robin Alazard 6b919162d1 Add write_physics_ as a state variable on ModelWriter.
This way we don't have to worry about passing the write_physics param everywhere.

PiperOrigin-RevId: 764394280
Change-Id: I2c879ae57bdc30f50189960864097c932f967330
2025-05-28 13:33:01 -07:00
Robin Alazard fc69ef1084 Fix authoring type mismatch for geoms sizes attributes.
Fixes wrong sizes being displayed in usdview.
Also introduce a new test to ensure we catch as many of those kinds of errors as possible in the future.

PiperOrigin-RevId: 764388588
Change-Id: Id3c878edd054fe5272c42c9f960c65c850655559
2025-05-28 13:21:19 -07:00
Alessio Quaglino 287f46b220 Ensure last XML is freed after tests.
This fixes undetected memory leaks in tests calling mj_loadXML.

Additionally, a specific test for `mj_freeLastXML` is introduced.

PiperOrigin-RevId: 764294041
Change-Id: I8b5a5683d8431ed920cdd52b06ad3515d8e19e14
2025-05-28 09:26:46 -07:00
Tom Power 18b0e68a5a Fix missing import in model editing colab
PiperOrigin-RevId: 764272427
Change-Id: I5623818489dca322a73fa19dd50bc24771b2832a
2025-05-28 08:30:13 -07:00
Google DeepMind 9b2b7cf92a Set light intensity to 0 by default (not 1000).
PiperOrigin-RevId: 764257692
Change-Id: If656095e3f8d4b4d9c97fa67bdad508a49095eb3
2025-05-28 07:47:28 -07:00
Tom Power 3a4b6e6c5b Added terrain generation to mjspec tutorial
PiperOrigin-RevId: 764229337
Change-Id: Ic541eefc4b561d3c39c5ee99c7d38466d7e75903
2025-05-28 06:13:26 -07:00
Kyle Bayes 56b88b59f0 Support 0-simplex in GJK code, and refactor code for efficiency and readability.
PiperOrigin-RevId: 764197889
Change-Id: Ie0d57474060a34a6b908be0386094f442cda448a
2025-05-28 04:19:13 -07:00
Alessio Quaglino 1fbbfd8079 Correct frame property in MjsBody from method to read-only attribute.
PiperOrigin-RevId: 764188923
Change-Id: I7c753f7f431b79aa320681c45b7614f68b63852c
2025-05-28 03:48:07 -07:00
Google DeepMind 568620dd2f Add texture attribute to lights.
PiperOrigin-RevId: 763739805
Change-Id: I333ed2ac68f30f79f688ca01d7b5fd6bf2d836c9
2025-05-27 05:04:01 -07:00
Sam Haves 441ca838a1 Add support for inertia and mass to Mujoco USD interop.
PiperOrigin-RevId: 763737956
Change-Id: I6cdf267d76536a26aeb6327ce90165842e32bd8a
2025-05-27 04:58:09 -07:00
Taylor Howell de3dc7c234 Update documentation from mjData.solver_iter to mjData.solver_niter.
PiperOrigin-RevId: 763729137
Change-Id: I1266539ead38e083d427614d50b2aa79a68aa09c
2025-05-27 04:25:54 -07:00
Yuval Tassa ccc912c3b0 Improve docstring in mjvGeom, fixes #2629
PiperOrigin-RevId: 763693102
Change-Id: Icb9a3168691690ccf086adb5a20358b3952d6717
2025-05-27 02:17:24 -07:00
Copybara-Service f1954e98cf Merge pull request #2589 from Rahul-Lashkari:fix-py-rollout-typos
PiperOrigin-RevId: 763686962
Change-Id: I6a9c419200f410f60a1801d74ae05862464ad9a1
2025-05-27 02:00:12 -07:00
Yuval Tassa 89e39dc0a7 Expose mj_makeM as a sub-component.
PiperOrigin-RevId: 763662068
Change-Id: I55ced456dca751c1de09fb35e2f73c60ffc0d626
2025-05-27 00:35:55 -07:00
Tom Erez 4a102c37bc Add support for indexing qfrc fields in MJX bind() method.
PiperOrigin-RevId: 763415415
Change-Id: Idb567a1711679565444779fb1062d7b65434ef13
2025-05-26 07:04:12 -07:00
Copybara-Service 22bdf22cc7 Merge pull request #2631 from hannesbraun:errno-standard-include
PiperOrigin-RevId: 763393139
Change-Id: I8e29bd589a8ece02f6dc88a6e943fe03f6bcbf56
2025-05-26 05:38:45 -07:00
Copybara-Service 3e2bbbd792 Merge pull request #2612 from budzianowski:main
PiperOrigin-RevId: 763392959
Change-Id: I56472db86a347fb18d1450b80bbfe5405382cdae
2025-05-26 05:37:31 -07:00
Alessio Quaglino 7a5b55f57e Expose mjs_resolveOrientation to the Python API.
PiperOrigin-RevId: 762571376
Change-Id: I08d8394b24670c7f102356da4234b17f1ba4e05f
2025-05-23 14:36:47 -07:00
Google DeepMind eb6f7dc6b7 Gate some calls with __EMSCRIPTEN__
PiperOrigin-RevId: 762520516
Change-Id: If9f7729721bab8c947861a968cf96eecc6591228
2025-05-23 12:10:52 -07:00
Sam Haves 9e4931b79d Add CollisionAPI and MeshCollisionAPI schemas to mjcPhysics.
PiperOrigin-RevId: 762478906
Change-Id: I9103e8d3cf99492e2df1c6b4af7937b12993f225
2025-05-23 10:26:31 -07:00
Alessio Quaglino e389872c7d Add frame property to python bindings.
PiperOrigin-RevId: 762452877
Change-Id: I555cec650d04700f6718b4d77a866c821b90685c
2025-05-23 09:24:24 -07:00
Copybara-Service e44513bee5 Merge pull request #2640 from google-deepmind:dependabot/pip/mjx/setuptools-78.1.1
PiperOrigin-RevId: 762416151
Change-Id: I40e47cb3334ab2fa7f8bdfef27fa1720186cd082
2025-05-23 07:37:33 -07:00
Sam Haves 76ddc30072 Make MJCF SdfFileFormat plugin create hierarchy reflecting MJCF instead of sibling rigidbodies.
PiperOrigin-RevId: 762117447
Change-Id: Id13f7a4f4e383a0c9e670e5272836f2fb1099830
2025-05-22 14:04:58 -07:00
Google DeepMind 74cc904edc Convert light directional boolean into a type enum.
PiperOrigin-RevId: 761983728
Change-Id: Id5bf93c103e5358d9c5cd9f1176532a978e0b3a8
2025-05-22 08:51:18 -07:00
Google DeepMind 373b4c0437 Support image/ktx format for textures.
PiperOrigin-RevId: 761926074
Change-Id: I6a312634b5bdc706ea5166bc3b2be273e14c1c8a
2025-05-22 05:47:55 -07:00
Google DeepMind 3e9bc79b54 Adds color space to textures.
PiperOrigin-RevId: 761907261
Change-Id: Iec546d1d5907a15e57ef809ec31850640fc52915
2025-05-22 04:33:40 -07:00
Sam Haves 62a9d5b98d Add MjcPhysicsSceneAPI support.
Still missing compiler settings but will follow up in a future CL. Tried to add full coverage for testing setting of attributes to non-default values.

PiperOrigin-RevId: 761636862
Change-Id: Id4b9486645b2600931556cdcb8dc71f28ec309cd
2025-05-21 13:03:46 -07:00
Yuval Tassa bf1f8081c1 Enable Visualization pane in Passive Viewer. Fixes #2158
PiperOrigin-RevId: 761522429
Change-Id: Ice4322ce413891893c89856e55f60a4f26010cf2
2025-05-21 07:52:55 -07:00
Erik Frey 7da6b5b9d9 Ensure mjx.get_data_into returns correct efc_J, qLD, and qLDiagInv.
PiperOrigin-RevId: 761264885
Change-Id: Ia3e669e24b2cc05f1506f0508c552c48233298cb
2025-05-20 16:03:18 -07:00
Erik Frey 49c33716a1 Allow _realloc_con_efc to also allocate new nJ arrays.
PiperOrigin-RevId: 761252071
Change-Id: Idce822c6f2b8f2d81a5d43228f5dc35281c5ad07
2025-05-20 15:26:04 -07:00
Baruch Tabanpour 5051520733 Delete commented code.
PiperOrigin-RevId: 761234852
Change-Id: Ibea32eee47448073fff1ed2df307b1e44c78423f
2025-05-20 14:37:50 -07:00
Yuval Tassa 85c84c1ece Initialize Passive Viewer's internal mjModel and mjData to nullptr.
Prevents the render thread from calling `mjv_updateScene` before these have been initialized.

PiperOrigin-RevId: 761181568
Change-Id: I4f7f61fdcf7f87dcd6317883e5082d9ce2266e20
2025-05-20 12:19:07 -07:00
Alessio Quaglino b728a50eb2 Correct elastic2d default information in the changelog.
PiperOrigin-RevId: 761120899
Change-Id: Id7093f9baa775fb71cf1dd7aaf74f6bd8d4d5e83
2025-05-20 09:48:28 -07:00
Saran Tunyasuvunakool 1663867cba Add GL_EXT_texture_sRGB to MuJoCo's GLAD stubs.
PiperOrigin-RevId: 761025068
Change-Id: I9197f206666adf547aa5fcd0e06b54d7d4c415fa
2025-05-20 04:38:20 -07:00
dependabot[bot] 06e4937ed7 Bump setuptools from 75.5.0 to 78.1.1 in /mjx
Bumps [setuptools](https://github.com/pypa/setuptools) from 75.5.0 to 78.1.1.
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/setuptools/compare/v75.5.0...v78.1.1)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-version: 78.1.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 21:16:37 +00:00
Erik Frey cada50434a Raise an error if MJX scan functions are called on models with zero DoFs.
In the future, MJX will support correctly simulating models with zero dofs.

PiperOrigin-RevId: 760731314
Change-Id: Iadddf80a959c64cddb31610e60927ae0437ebcaf
2025-05-19 12:42:19 -07:00
Yuval Tassa bf722098f0 Fix broken link in changelog.
PiperOrigin-RevId: 760730799
Change-Id: I65e2d06f9162266b2929cc4d26af621fc3535197
2025-05-19 12:40:36 -07:00
Yuval Tassa 94803d772c Enable multithreading of Newton solver.
PiperOrigin-RevId: 760723081
Change-Id: Ib7d3c9cec2fdf7dd0e46a570f37c0a6fc5424c7b
2025-05-19 12:18:22 -07:00
Alessio Quaglino 7edbdd0ad6 Remove the Shell plugin and integrate it into the engine.
PiperOrigin-RevId: 760688502
Change-Id: Ia70988d42b7edf571d7cb4a4f48f8fc50b51667d
2025-05-19 10:51:25 -07:00
Yuval Tassa 45fc15b844 Speed up sparse supernode detection by combining it with transposition.
PiperOrigin-RevId: 760673008
Change-Id: I6d66580e675fd86e5b974859383f93f87482ca16
2025-05-19 10:14:15 -07:00