Commit Graph

3064 Commits

Author SHA1 Message Date
Alessio Quaglino d2501eff68 Use procedural model creation in plugin tests.
This will be useful for simplifying the mjSpec API for plugins.

PiperOrigin-RevId: 772505558
Change-Id: I8eb57d7e129e0f6430fb4c610a543e0dc0f3b295
2025-06-17 09:30:54 -07:00
Nimrod Gileadi d9aae1521a Remove confusing operator overload in user_api.cc
Explicitly add const_cast. This doesn't change the previous behaviour, just makes it explicit.

PiperOrigin-RevId: 772486471
Change-Id: I942bd4effed93a366089411ca18461cad52bff88
2025-06-17 08:34:33 -07:00
Yuval Tassa 998769a995 Return the total non-zeros from mju_sqrMatTDSparseCount.
PiperOrigin-RevId: 772414653
Change-Id: Ic1cac868af0034196f33d08b2456be77c72cbd50
2025-06-17 04:27:15 -07:00
Google DeepMind ea949f1cee Add support for ORM maps in mujoco file format plugin
The ORM texture is a packed-channel map, with ambient occlusion in Red, roughness in Green, and metallic in Blue channel.

PiperOrigin-RevId: 772367369
Change-Id: I88a4dee2477daa1e3c0b00197bfbe2b276ba9937
2025-06-17 01:45:10 -07:00
Nimrod Gileadi e2e2932fe6 Mark all single-argument constructors in user_objects.h as explicit.
This avoids accidental implicit conversions.

Also included some constructors with multiple arguments, where default values mean that the single-argument constructor is valid.

PiperOrigin-RevId: 772117936
Change-Id: I57e54a373593080e9d68961b00488c7a70f1aff8
2025-06-16 12:00:51 -07:00
Google DeepMind 1f0e4891c2 Add some autoformatting changes to mujoco_to_usd.cc
PiperOrigin-RevId: 772032458
Change-Id: I94a80e7f7928b2956e76268c0d89fb862a228c41
2025-06-16 08:15:00 -07:00
Google DeepMind bb1b2db3a9 Add support for normal maps in mujoco file format plugin
PiperOrigin-RevId: 771992722
Change-Id: Ifeae9e12f1071018112e697402361caa84095ff2
2025-06-16 06:01:18 -07:00
Google DeepMind 3969cac614 Fix tinyxml include
This came up as a code suggestion, presumably for consistency.

PiperOrigin-RevId: 771966921
Change-Id: Ic29afc9a9eb1e0b87dd7d9ac04a5ad9790f86f0d
2025-06-16 04:26:41 -07:00
Baruch Tabanpour 41eb966c9b Resolve deprecation warnings in playground.
PiperOrigin-RevId: 771184565
Change-Id: Ic2056ad82a6a0c20897a02ea39c37b3f44a80513
2025-06-13 12:28:57 -07:00
Kevin Sayed a4ab35c194 update scrubs and set next version
PiperOrigin-RevId: 770740070
Change-Id: I6b2f1356706b1849872df2583adbbb3f72057884
2025-06-12 11:39:45 -07:00
Baruch Tabanpour 65deedbc75 Rename backend_impl to impl. Remove _full_compat from callsites.
PiperOrigin-RevId: 770400560
Change-Id: I7bec79aeae07322a30b15cc04d4dd05077741a8b
2025-06-11 18:05:49 -07:00
Kevin Sayed f978b4eea3 Release notes for 3.3.3 + update git hashes.
- Upgraded dependencies versions.
- Added release date for 3.3.3
- Reordered changelog to be a numbered list.

PiperOrigin-RevId: 769808336
Change-Id: Iffa074f52ef2e3f9d450ce6973a7e85980417367
2025-06-10 14:49:17 -07:00
Erik Frey e5631c0bab [MJX] Don't raise sparse qM error in tendon_armature if there are no tendons.
PiperOrigin-RevId: 769753590
Change-Id: I5dd7a953f08e0566c5e22c2c926d7bd9c2c57bd6
2025-06-10 12:46:47 -07:00
Alessio Quaglino 5f42078dc1 Do not write nameless frames whose class is "main".
PiperOrigin-RevId: 769685151
Change-Id: I3d993d7521db2b2adbf611c3e4eb5b4b293bdc30
2025-06-10 10:15:43 -07:00
Yuval Tassa bf56312c9d Increase size of image in changelog
PiperOrigin-RevId: 769549620
Change-Id: I8666771ecf50b91342694deeb357b3edfa3f62d9
2025-06-10 03:34:17 -07:00
Erik Frey caaf7b3a69 Add tendon armature to MJX.
PiperOrigin-RevId: 769294284
Change-Id: Idfbd4f355eb26fba5035973ab989a9d3af05c85f
2025-06-09 14:27:18 -07:00
Alessio Quaglino b8768aa1cd Allow to fusestatic a body if it doesn't generate a referencing error.
PiperOrigin-RevId: 769189929
Change-Id: I62f512813ea330da088b28d39373df39be10a602
2025-06-09 10:05:57 -07:00
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