Commit Graph

3661 Commits

Author SHA1 Message Date
Haroon Qureshi 1fbea85ef0 Remove redundant call to GenerateMipMaps.
The Create?Textures will generate the mipmaps themselves if needed.

PiperOrigin-RevId: 830868294
Change-Id: I295e0dac12bc7c31a98242256721f46467f883d6
2025-11-11 05:27:58 -08:00
Haroon Qureshi 4a5a36f3fc Display error when loading model.
PiperOrigin-RevId: 830862449
Change-Id: Iab1e8786d79d55db9a15a788ecb37e0b0418111c
2025-11-11 05:04:48 -08:00
Haroon Qureshi b3deb9dd12 Do not reset camera_id if no tracking object is set.
Otherwise, we can never incrementally move beyond a free camera.

PiperOrigin-RevId: 830845627
Change-Id: I07e8639f79efcdae451999ca07b91a41360752ca
2025-11-11 04:03:35 -08:00
Matija Kecman 88e75cd7e6 Remove implot from toolbox/window.cc
PiperOrigin-RevId: 830842619
Change-Id: I39d13508423ad0ba1e12349ceaccab2425d28243
2025-11-11 03:51:38 -08:00
Yuval Tassa 23023edc52 Fix bug in schema
PiperOrigin-RevId: 830819693
Change-Id: I9fd047975895f4a376d28b7eee2c0d38344ce864
2025-11-11 02:28:52 -08:00
Kyle Bayes 39f0321a68 Clean up NativeCCD testing models.
PiperOrigin-RevId: 830733959
Change-Id: Ie7f71c36d2efafd37aecef54ca4897cebd6d091f
2025-11-10 21:31:02 -08:00
Taylor Howell bfcceb583e Import google-deepmind/mujoco_warp from GitHub.
PiperOrigin-RevId: 830506734
Change-Id: I857bf59a34a46bd61fc24953fd6f10b2157febb7
2025-11-10 10:35:00 -08:00
Yuval Tassa f8cef22992 Change mjWarp admonition class from attention to warning
PiperOrigin-RevId: 830452799
Change-Id: I26d7163b4c738a6accd70784863cc2dbdc410927
2025-11-10 08:23:05 -08:00
Taylor Howell e464e173da Update conf.py: "warp only fields" custom section.
PiperOrigin-RevId: 830452471
Change-Id: Ib90afedacf760b3d0584e7d0dd81cdd9e3e35dc9
2025-11-10 08:21:45 -08:00
Yuval Tassa 1c6a05de98 Snap Y-axis range to nice decimal bounds in gl2 figures.
PiperOrigin-RevId: 830355030
Change-Id: I2e9f145fb8c626dd671d286560c8334202586c6b
2025-11-10 03:01:30 -08:00
Matija Kecman 4e46db8903 Refactor WASM binding directory structure
* All tests moved into wasm/codegen/tests folder
* Merged wasm/codegen/helpers/ into wasm/codegen/generators/

PiperOrigin-RevId: 829471173
Change-Id: I2dbc5d9351771817ec260c7ddf87c31e66a9eabe
2025-11-07 09:37:26 -08:00
Matija Kecman 44220fcc51 Refactor WASM bindings in preparation for codegen directory structure update
PiperOrigin-RevId: 829459535
Change-Id: I4045e163a6e7fcee9d9585131d1e5e30f0b50b89
2025-11-07 09:02:43 -08:00
Google DeepMind 59debb50b1 Add SLEEP to EnableBit enum.
This change exposes the `mjENBL_SLEEP` flag from MuJoCo's `mjtEnableBit` in MJX's `EnableBit` type.

PiperOrigin-RevId: 829446801
Change-Id: Ia95b31a3488ecba0431646c889e10a5ae5fb60e8
2025-11-07 08:22:45 -08:00
Matija Kecman 2cd99e2ec6 Update the enums_test.ts using the generation script
PiperOrigin-RevId: 829445412
Change-Id: I8da1f019a4f4ad2278399a2c82d3096ef234240c
2025-11-07 08:18:10 -08:00
Taylor Howell 883836848a Fix box-box distance computation.
PiperOrigin-RevId: 829431553
Change-Id: I9e28bc8eb7687c3c83e5ff68c65e93d8a07378a9
2025-11-07 07:37:03 -08:00
Matija Kecman 45b079cfe8 Various minor cleanups in WASM bindings generation code
PiperOrigin-RevId: 829430835
Change-Id: Iadb0e4f8a197da69e093eccfd75d07cf6db5faaf
2025-11-07 07:34:41 -08:00
Matija Kecman 80a91cfbea Internal change
PiperOrigin-RevId: 829417225
Change-Id: Ib2304c6a40fb7a2a9fed900a587b9f7ed4b3103a
2025-11-07 06:49:00 -08:00
Matias Manevi 6fb4394701 Refactor array initialization for mjData and mjvScene in MuJoCo WASM bindings.
PiperOrigin-RevId: 829406147
Change-Id: Ib93c49e938086fb277e4959ade1f25e6ced5c70d
2025-11-07 06:12:14 -08:00
Yuval Tassa 8734cab366 Add sleeping documentation
https://youtu.be/vct493lGQ8Q

PiperOrigin-RevId: 829390353
Change-Id: I92f85a03be0bb585d2d8e29de1ed1a2e848f247f
2025-11-07 05:12:42 -08:00
Yuval Tassa 769f37b653 Implement sleeping in engine
PiperOrigin-RevId: 829361787
Change-Id: I6f64d8e25c4248cf32c18cd94d37ff5def78946e
2025-11-07 03:33:07 -08:00
Sergei Lebedev 1e0226d360 Ignore pytype errors produced with --use-functools-partial-overlay
PiperOrigin-RevId: 829338416
Change-Id: I1867bd18a7c57e2faf0f121d89dfc4129c5f31b8
2025-11-07 02:08:04 -08:00
Yuval Tassa 252a0d73df Add sleep related data structures
PiperOrigin-RevId: 829055431
Change-Id: I1ccbd77a57044a754ae7db611b4c2c0010fbda53
2025-11-06 12:10:55 -08:00
Baruch Tabanpour 3080e3424f Update mjx-warp ffi, prepare for render.
PiperOrigin-RevId: 829027266
Change-Id: Ifca30885fb6302e8ce61f949fdc0f56674bbe9e4
2025-11-06 11:04:44 -08:00
Baruch Tabanpour fa062768f4 Import google-deepmind/mujoco_warp from GitHub.
PiperOrigin-RevId: 829017789
Change-Id: I2756e349297cd0ae53a63a38fb203e2fd2d5cb99
2025-11-06 10:42:32 -08:00
Matija Kecman 7dfd92098f Simplified struct field handling in the WASM bindings
PiperOrigin-RevId: 829003969
Change-Id: I139f9c0dad96e1664b1bd054f09fcdf58aff260e
2025-11-06 10:10:18 -08:00
Matias Manevi 06ecdd6ba1 Refactor: Generate all struct bindings within the codegen.
PiperOrigin-RevId: 828973537
Change-Id: I3f371d2f88e1cd9b1bb5c0a9c6a5ace7a21673fb
2025-11-06 08:49:48 -08:00
Haroon Qureshi 2c2773e36d Include third_party_deps cmake files.
PiperOrigin-RevId: 828957097
Change-Id: I2aeea2ae9e2621c8c62a34095af6ea8fd0797f08
2025-11-06 08:02:28 -08:00
Google DeepMind b807d5f852 Remove MjVFS from generated Emscripten bindings.
PiperOrigin-RevId: 828943991
Change-Id: I681079854c71059392518c328a4488bb47127433
2025-11-06 07:20:11 -08:00
Sam Haves 8051f40817 During mj_parse, if mju_openResource fails pass a resource with only the filename to decoders.
This enables decoders to leverage their own file resolution systems. For example: USD can compose a stage (scene) from memory, via a file on disk, or via custom asset resolver.

Passing it through to the decoder reduces the need for custom resource providers that wrap these other resolution systems.

This will also enable a fun, but likely niche usecase where the decoder does procedural generation and does not have to be backed by a resource. See the tests for an example of this.

PiperOrigin-RevId: 828939899
Change-Id: Ic319a685332d91198a4ae926867c834bf7f7f724
2025-11-06 07:06:06 -08:00
Taylor Howell 89fec8f7b2 MuJoCo Warp documentation: Performance Tuning.
PiperOrigin-RevId: 828908430
Change-Id: Iece454fce7dea71df2a5b6f60d81b611c5a3730d
2025-11-06 05:20:19 -08:00
Baruch Tabanpour d0f32a7fe6 Modify mjx.Model tex_data type.
PiperOrigin-RevId: 828606695
Change-Id: I708dcf8e75766bf16d339999a9e8c70c8f65fd0c
2025-11-05 13:33:11 -08:00
Baruch Tabanpour c34ac712a0 Import warp-lang 1.10.0.
PiperOrigin-RevId: 828583884
Change-Id: Ia1c6d8c41fa0785360b85287cab562228fcc80cf
2025-11-05 12:35:25 -08:00
Google DeepMind 3577c98f82 Refactor Emscripten bindings generation for MuJoCo structs.
PiperOrigin-RevId: 828550215
Change-Id: Iab0bf3a9fbaca4d7774f89a4d8977e762aa57629
2025-11-05 11:14:29 -08:00
Google DeepMind 8104235f8e Generate wrappers for anonymous structs within mjVisual.
PiperOrigin-RevId: 828548681
Change-Id: I07f8b407157b91ac24b38604b20826541e20e23e
2025-11-05 11:10:52 -08:00
Google DeepMind c3858f267a Change default values of WrappedFieldData string fields to empty strings.
PiperOrigin-RevId: 828547058
Change-Id: I0dc0f993cd93a8feab3f1a53b7ee6c47266093e0
2025-11-05 11:07:29 -08:00
Google DeepMind ff0ae09bc4 Remove debug printing functionality from WASM codegen.
PiperOrigin-RevId: 828545426
Change-Id: I136e6290c7ffdd4c2029aaf72cb90e0fc3cc7a9f
2025-11-05 11:03:28 -08:00
Haroon Qureshi 01b0ea5b7d Use webgl backend in emscripten builds.
(Also only display the model name if its a file.)

PiperOrigin-RevId: 828498906
Change-Id: I7def85992f413b321c115ea63db2af057f5fd372
2025-11-05 09:17:34 -08:00
Haroon Qureshi 8b7eb097db Remove Sync and Scene functions from Renderer.
PiperOrigin-RevId: 828481721
Change-Id: Id0399139653b0ec27f0d365437e62cadefadfe6c
2025-11-05 08:33:28 -08:00
Taylor Howell 17d36d8e75 MuJoCo Warp documentation: `naconmax`.
PiperOrigin-RevId: 828478607
Change-Id: I90e8b95cf5b869ba60a731b3d2ee962c411da943
2025-11-05 08:24:25 -08:00
Haroon Qureshi 30a99de3b9 Remove dependencies on mjvScene for interactions.
Interactions (like moving the camera or mouse picking) no longer depend
on needing an mjvScene. Instead, everything is done relative to the
camera directly.

This duplicates some code in engine_vis_visualize which we will try to
resolve and recombine at a future time.

PiperOrigin-RevId: 828461259
Change-Id: If26329c1a7c37516f0213b18056c3e31760f60ae
2025-11-05 07:33:42 -08:00
Yuval Tassa 2245210e87 Fix formatting error in the 3.3.6 changelog
PiperOrigin-RevId: 828455246
Change-Id: I6cd08f7819bde27c32ddd1ff56cbd9b23b92134d
2025-11-05 07:17:47 -08:00
Yuval Tassa d5e953e707 Use sphinx.ext.extlinks for GitHub issue and PR links.
Added `sphinx.ext.extlinks` to the Sphinx configuration and defined `extlinks` for `:issue:` and `:pr:` roles, pointing to the MuJoCo GitHub repository. Updated `changelog.rst` to use these new roles, replacing `:github:issue:` and `:github:pull:` which are currently failing.

Also fix a formatting bug in the 3.3.7 changelog

PiperOrigin-RevId: 828403002
Change-Id: I7f0134e4dd555fc59a3fee090338de56aababe1c
2025-11-05 04:12:08 -08:00
Google DeepMind fe1b6b7c80 Refactor: Group autogenerated structs source in bindings.cc
This change modifies the code generation for structs in `bindings.cc`. Instead of placing each struct's constructor and member functions under individual markers, all autogenerated struct source code is now grouped together under a single `// {{ AUTOGENNED_STRUCTS_SOURCE }}` marker. This improves the organization of the generated file and simplifies the template.

Future work would move the rest of the structs into this pattern

PiperOrigin-RevId: 828390272
Change-Id: Iee9d0e8766db86b2c1d4296a37ac7a8e6e05428b
2025-11-05 03:26:09 -08:00
Google DeepMind 5b00b033af Refactor struct dependency sorting to use wrapped field data.
The `sort_structs_by_dependency` function now takes a dictionary of `WrappedStructData` and uses the pre-computed `typename` within `WrappedFieldData` for dependency analysis, instead of re-introspecting the AST. This change also includes populating the `typename` in various `WrappedFieldData` generation methods.

PiperOrigin-RevId: 828389481
Change-Id: Ie97c1a66e5e69bd148a928fda26afdaa09f56687
2025-11-05 03:23:35 -08:00
Matija Kecman 29c1a3a0a5 Cleanup WASM bindings generators so they all have a similar interface
PiperOrigin-RevId: 827965451
Change-Id: I657fc4d3a480fbc62124c84fe9ddc0900a91183f
2025-11-04 07:32:32 -08:00
Matija Kecman 776fc32eb4 Cleanup WASM bindings struct generation
PiperOrigin-RevId: 827949686
Change-Id: I4115e397f64963244e3c30a7eaff5be7534aadf2
2025-11-04 06:44:02 -08:00
Matija Kecman 4b79a58fa0 Add convenience methods to CodeBuilder and cleanup some WASM bindings code generation
PiperOrigin-RevId: 827916844
Change-Id: Ie382f2a5af3d7e3ec2c81cde5d6b768835da2365
2025-11-04 05:02:59 -08:00
Adrian Collister 740afe22b3 Append warnings to model compile errors.
PiperOrigin-RevId: 827903480
Change-Id: I2ad17bf4cea0dae0ab803fbb7baa9bd70eef303d
2025-11-04 04:15:07 -08:00
Matija Kecman 34e5eecba5 Autogenerate more of mjVFS and mjvGeom WASM bindings
PiperOrigin-RevId: 827898643
Change-Id: I95f9eaa129f663cbeb3606d286c2080c47cfbcc4
2025-11-04 04:00:13 -08:00
Matija Kecman f808632cf8 Rename WASM bindings function helper file
PiperOrigin-RevId: 827897836
Change-Id: Ifb13ebaf54dacabc2a3ed8a8ea4244ecea2a8f41
2025-11-04 03:57:03 -08:00