Commit Graph

3926 Commits

Author SHA1 Message Date
Sam Haves a5dc57c0c3 Move OpenUSD parsing to usd_decoder
Add usd_decoder to mujoco/plugin.
  - Previously was src/experimental/usd/usd_to_mjspec.cc, now that same spec is returned by the plugin.

PiperOrigin-RevId: 854350962
Change-Id: Ia980190a557c50ce8197980922a2594b613859b4
2026-01-09 14:48:29 -08:00
Sam Haves 64a2345c07 Fix usethread check to enable multithreaded mesh compilation.
PiperOrigin-RevId: 854260636
Change-Id: I18d1f47a1ef7f8abcce14e0351b9523fbbac8be6
2026-01-09 11:00:17 -08:00
Haroon Qureshi 9e9314a4a4 Ensure parsing always has a valid VFS.
Explicitly free allocated memory for local resources. (Upcoming
changes to `mju_closeResource` will not work for local resources.)

PiperOrigin-RevId: 854254013
Change-Id: I5cbb8264b590327767d5500f0c2a32ebe036bc4f
2026-01-09 10:45:48 -08:00
Sam Haves e37c2268a6 Release gil when compiling spec.
When compiling with threading, we will block the main thread anyways waiting for all threads to complete.

PiperOrigin-RevId: 854230560
Change-Id: Ief689d381afaa3aacc5d712a8df0cb4b6762251c
2026-01-09 09:50:15 -08:00
Haroon Qureshi 45e164bf8f Refactor 'ParseXML' and 'ParseSpecFromString' to use a shared helper function.
This allows us to remove the special "LoadModelFromString" resource provider.

PiperOrigin-RevId: 854207845
Change-Id: I6d00f2ab99b4351866e1d39dbeed96f29aaaf915
2026-01-09 08:40:40 -08:00
Haroon Qureshi 398e3dcf15 Use mj_parseXMLString instead of a test-specific LoadFromModelString.
This removes the need for a custom mjResourceProvider, but does require
reimplementing part of mj_loadXML in the fixture.

PiperOrigin-RevId: 854170820
Change-Id: Ib455cc5cdb5138213eb7e996dc32ac156f22a859
2026-01-09 06:34:27 -08:00
Haroon Qureshi 2c4f710cf4 Ensure resource providers are correctly initialized.
PiperOrigin-RevId: 854095105
Change-Id: I028265d7f51e6ab178f4f3a1d801ba773093214f
2026-01-09 02:07:24 -08:00
Sam Haves ce74475c39 Delete VFS created from assets dict before throwing error.
PiperOrigin-RevId: 853838173
Change-Id: Id0dd33b69657813275d1f42db54fae222c337791
2026-01-08 12:13:55 -08:00
Taylor Howell 310ac0c5ac MuJoCo Warp documentation: When To Use MJWarp?
PiperOrigin-RevId: 853830564
Change-Id: I9208e9a2f2781efbedc7846f5c13036ef83d5770
2026-01-08 11:54:57 -08:00
Taylor Howell 166fa17a1c MuJoCo Warp documentation: inertia matrix automatic sparsity.
PiperOrigin-RevId: 853805011
Change-Id: I8c0040f3b2b08d8615f1fbf559cdc9841e33438a
2026-01-08 10:47:27 -08:00
Sam Haves 2f2f9a30ba When loading models use mj_parse instead of mj_parseXML, and allow non-xml file types.
PiperOrigin-RevId: 853730923
Change-Id: I1c107daafd558bedb99338779c8174ee3e4d07e2
2026-01-08 07:22:51 -08:00
Yuval Tassa 1f4bb39b53 Fix typo in comment.
PiperOrigin-RevId: 853703158
Change-Id: Ic123f9273b99eeede1d76d3da20b5b5e9f898dcd
2026-01-08 05:56:29 -08:00
Taylor Howell ab939683bc MuJoCo Warp documentation: Why are numerical results from MJWarp and MuJoCo different?.
PiperOrigin-RevId: 853696967
Change-Id: I0cf8539e341d2aa1cfd07ac75de18128ce9beb3b
2026-01-08 05:34:23 -08:00
Haroon Qureshi 765bd54c7c Move GlobalModel class and functionality into its own file.
We'll need some of this functionality for tests.

PiperOrigin-RevId: 853652149
Change-Id: Ib924d886b73784a0f370285e0b82b2ed833e3e77
2026-01-08 03:08:12 -08:00
Yuval Tassa 8f5eb1e4f4 Improve bounds checking in engine_util_solve.c.
Add checks to ensure `snprintf` does not write beyond the allocated log buffer size, preventing buffer overflows.

Fixes #2661, #2673

PiperOrigin-RevId: 853643867
Change-Id: Ibdc47810158466dc961767284ac297df98916dac
2026-01-08 02:44:38 -08:00
ShanningZhuang a92574837e Fix XML loading in wasm demo app. Fixes #2960
PiperOrigin-RevId: 853635752
Change-Id: I20226de32f3141d40ec56956451f91ec7299e727
2026-01-08 02:18:42 -08:00
Copybara-Service 07deca990a Merge pull request #3006 from thowell:mujoco_warp_docs_modifying_fields
PiperOrigin-RevId: 853619026
Change-Id: I5a5348e1cdbee22e40b516cf8ed649645f54bf6f
2026-01-08 01:32:50 -08:00
Copybara-Service f4beb95212 Merge pull request #2990 from google-deepmind:mjwarp_doc_batched_model_field_warning
PiperOrigin-RevId: 853420667
Change-Id: I540b36611485054851e497c8f74302ac0fbedd36
2026-01-07 14:46:36 -08:00
Taylor Howell f703a0e023 Import google-deepmind/mujoco_warp from GitHub.
PiperOrigin-RevId: 853350801
Change-Id: Idb19c2865b94f4740daf8bc52ed3e7665a109d51
2026-01-07 11:42:11 -08:00
Yuval Tassa 608115ab95 Add output attribute to camera elements.
This attribute allows specifying the intended output types (e.g., RGB, depth, normal) for each camera in the XML. The output types are stored as bit flags in `mjModel`.

PiperOrigin-RevId: 853316261
Change-Id: I1ad2e94102593cf402756f8f4c80509371ca86d2
2026-01-07 10:22:27 -08:00
Sam Haves 3c93d6b979 Move cache creation into lambda initializer to avoid data race.
PiperOrigin-RevId: 853295269
Change-Id: Ic1c8f3d2fec876070da432f8b709b341f3c6cc0a
2026-01-07 09:29:54 -08:00
Matija Kecman e1261ba5f1 Fix perturbation rendering in webdemo
PiperOrigin-RevId: 853290958
Change-Id: Ifcea1091633597171c5268d5ee091bea3ddee45b
2026-01-07 09:18:45 -08:00
Yuval Tassa 775c0698c3 MJCF schema: use responsive grids for attributes
PiperOrigin-RevId: 853263519
Change-Id: I79cb6e6208061d9546f0dca7a941838caa6b1a91
2026-01-07 08:00:16 -08:00
Alessio Quaglino 5febca9eeb Remove gainprm trailing dimension in test_actuator_shortname.
PiperOrigin-RevId: 853243753
Change-Id: Ia46df64a2308ef0bbc94a396f0732e221e174ea0
2026-01-07 06:59:50 -08:00
Yuval Tassa 5be6f262b2 Fix legend call in MuJoCo tutorial notebook. Fixes #2447
PiperOrigin-RevId: 853220360
Change-Id: I1920af5fd01bcf654c7d9d11d8dd1c2f637ef748
2026-01-07 05:42:45 -08:00
Haroon Qureshi 9743c2d385 Use mjResourceProvider instead of custom LoadAsset callbacks.
PiperOrigin-RevId: 853172824
Change-Id: I60ef1207611c4da119cc3f0a7819088cffca6e4f
2026-01-07 03:03:23 -08:00
Yuval Tassa 4830f5a79e Add missing documentation for the asset cache.
Also improve `compile` sample timing logic and documentation.

PiperOrigin-RevId: 852855741
Change-Id: I9b2798208198ca68cf4cee9c968772954ada91c5
2026-01-06 11:07:42 -08:00
Copybara-Service 4a21b0ee01 Merge pull request #2831 from DavidPL1:fix-sample-compile-exitcodes
PiperOrigin-RevId: 852832955
Change-Id: Iddc7c9366f6e81800ed48a0790336db7dfa3e9d1
2026-01-06 10:18:43 -08:00
Yuval Tassa 3868ed0382 Improve XML schema usability
PiperOrigin-RevId: 852820889
Change-Id: I04eea45161f9e71f9ccf49afad57ff28fd099b35
2026-01-06 09:51:36 -08:00
Yuval Tassa fa044fe0e5 Use the word "primal" for things that relate to both Newton and CG.
PiperOrigin-RevId: 852634373
Change-Id: I2c7641bb92d9c01252f861b9c36e72ef6ddc6e98
2026-01-05 23:56:57 -08:00
Taylor Howell fa70f73691 fix generate_spec_bindings.py
PiperOrigin-RevId: 852414826
Change-Id: I50ddba2d238866ba313338040f020ff3a645e1e4
2026-01-05 12:42:26 -08:00
Taylor Howell 90449f7521 Update codegen for mjSpec add functions to add typed arguments and docstring.
PiperOrigin-RevId: 852351892
Change-Id: If785accdf8c9e48dd9924c54942856c1e00fd031
2026-01-05 10:14:49 -08:00
Taylor Howell 47ea0e76ae mujoco warp documentation: update modifying fields 2026-01-04 14:00:53 +00:00
Taylor Howell fba2021091 MuJoCo Warp documentation: Modifying fields.
PiperOrigin-RevId: 851709416
Change-Id: I48071a9dddd79b1e765f8ae170594d4687615877
2026-01-03 10:49:09 -08:00
Taylor Howell 28f14b3258 MuJoCo Warp documentation: Update Batched Model Fields code example.
PiperOrigin-RevId: 851699741
Change-Id: I30d98db7ee6bfe2104408fb0f84e472da649887b
2026-01-03 09:57:11 -08:00
Haroon Qureshi e3ddb126f5 Fix target name; should be PLATFORM not STUDIO.
(This was caused by a bad merge on my end.)

PiperOrigin-RevId: 851315742
Change-Id: Ifd5afa7f6cbd566ef2c15603e91a7360ea65c86a
2026-01-02 06:03:13 -08:00
Haroon Qureshi b9fa8ee6e9 Move all specialized rendering logic into Renderer class.
(We may consider splitting this class up into specialized subclasses at a later date.)

PiperOrigin-RevId: 851290789
Change-Id: Iee00b8e906eeb911de5799f784475ac6916ab55b
2026-01-02 04:25:07 -08:00
Taylor Howell 14e90f3897 MuJoCo Warp documentation: Array shapes.
PiperOrigin-RevId: 850969970
Change-Id: I41dce50644c9a6521e0bab9c84fea63f78e7a6ce
2026-01-01 02:46:48 -08:00
Yuval Tassa 451f40fa87 Link to Rust bindings in README.
fixes #2857

PiperOrigin-RevId: 850003287
Change-Id: I8ed1727206fb1a6a7655e61c37492eab8103d555
2025-12-29 03:57:23 -08:00
Matija Kecman 9f674b04a9 Fix ground plane rendering when using filament backend
PiperOrigin-RevId: 848473849
Change-Id: I096b20c6a5538ff95396bdf09f84ed5f2d3015ed
2025-12-24 01:25:51 -08:00
Yuval Tassa 70bc7be4bc Add additional data fields that can be reported by rangefinder sensors.
PiperOrigin-RevId: 848316991
Change-Id: Idbf7ba81b4da711a22c23302c8782ab2b0b98d82
2025-12-23 15:33:00 -08:00
Yuval Tassa f2e9097ed6 Change mjsCamera.resolution type from float to int.
Resolution is inherently an integer quantity (pixels).

PiperOrigin-RevId: 848276456
Change-Id: I92ee1aa88fd552fd42cb3871442f020f26d6fa6a
2025-12-23 13:14:32 -08:00
Yuval Tassa 9d646e6548 Extend rangefinder sensor to support cameras.
PiperOrigin-RevId: 848255889
Change-Id: I6e1a9ed13d29d2242558625a47e24e47ad6e87db
2025-12-23 12:04:49 -08:00
Yuval Tassa 4a871990e9 Fix mismatched signature in engine_ray.c
PiperOrigin-RevId: 847834144
Change-Id: Ib42008880f495cf7f3b9e0fd2394a4df64c66ad4
2025-12-22 11:41:23 -08:00
Yuval Tassa b28b5db680 Add mj_multiRayNormal for multi-ray casting with normal computation (not exposed in public header)
PiperOrigin-RevId: 847821078
Change-Id: I616441d3460406a92a10731d1a086af6163e96ad
2025-12-22 11:02:58 -08:00
Yuval Tassa 7fddeeaff6 Minor fixes to mj_multiRay
PiperOrigin-RevId: 847780959
Change-Id: I3588415f215bd5f1592bec6678a5bae45d5f0980
2025-12-22 08:52:36 -08:00
Haroon Qureshi a3e66cd5df Combine performance charts; add fullscreen mode.
PiperOrigin-RevId: 847751915
Change-Id: I819eb8d36224ddba38ef8532a038a2ef350890c8
2025-12-22 07:08:20 -08:00
Yuval Tassa 223ba99ec2 Add mju_rayFlexNormal (not exposed in public header)
PiperOrigin-RevId: 847746174
Change-Id: Ia8f597d296bf6a3eed9bd48b1c39b2ff2b5fcf90
2025-12-22 06:49:22 -08:00
Yuval Tassa c7f5766345 Add frustum visualization for orthographic cameras.
PiperOrigin-RevId: 847698917
Change-Id: I13633e8ba2d4718b127a5838c404ab74c6180e3d
2025-12-22 03:43:54 -08:00
Yuval Tassa 158525269b Refactor camera intrinsic parameter handling.
Move logic from parser to compiler.

PiperOrigin-RevId: 847689906
Change-Id: I844746081973205e1b33a3845add842e8b8c3c07
2025-12-22 03:08:18 -08:00