Matija Kecman
58d6910afa
Refactor StepControl and GUI to return change status.
...
StepControl methods SetSpeed, SetNoiseParameters, and SetPauseState now return a boolean indicating whether the state was actually changed. The GUI functions NoiseGui and StepControlGui also return a boolean reflecting if any parameters were modified. Noise parameters are now directly managed by StepControl rather than being stored in UxState. The StepControlEvent message has been expanded to include all step control parameters. Keyboard event handling has been slightly refactored to better align with event-based updates.
PiperOrigin-RevId: 940656342
Change-Id: I3701623a2fdcfc4c084b5db0ae19048669040de4
2026-06-30 14:21:00 -07:00
Matija Kecman
f4b2f76def
Updates NativeViewer instantiations in sample scripts to pass a ViewerConfig object
...
PiperOrigin-RevId: 940654165
Change-Id: I984cb296593e992dd0d99ca44b43c54de4c3e96d
2026-06-30 14:17:02 -07:00
Matija Kecman
3a623aaf33
Internal change.
...
PiperOrigin-RevId: 940601733
Change-Id: I83855569f85012173c3edf167eca78d236f6cdea
2026-06-30 12:38:11 -07:00
Taylor Howell
1810051d16
MuJoCo Warp documentation: Large scenes
...
PiperOrigin-RevId: 940590426
Change-Id: I006e245b54cd4165928927bee76f44d730bdd895
2026-06-30 12:14:48 -07:00
Google DeepMind
095608ef5f
Make a bindings.h header file with the declarations, so that other projects can reuse the declared structs.
...
Add parseXMLString overload that supports passing in an MjVFS.
PiperOrigin-RevId: 940579266
Change-Id: I8294988bc4279e80795fab21024f64562a9e6743
2026-06-30 11:57:50 -07:00
Haroon Qureshi
e2d7955437
Enable status bar by default for python studio.
...
PiperOrigin-RevId: 940557724
Change-Id: I0a4c96a53a0bcfcb5677515705c874d12bfd300d
2026-06-30 11:18:24 -07:00
Matija Kecman
7a84022092
Add ImGui bindings for Docking and window size constraints
...
PiperOrigin-RevId: 940470346
Change-Id: I731eedd0bd04afbd0c526ed8b27e6fb804596d20
2026-06-30 08:32:46 -07:00
Yuval Tassa
584ccd73d5
Improve error/warning display in studio.
...
PiperOrigin-RevId: 940299502
Change-Id: I8b13e2f984627a638a01b52f7dadca43f2c2ca80
2026-06-30 01:12:22 -07:00
Martin Schuck
407be2fc0b
Copybara import of the project:
...
--
83a17d2844770fc2bbff37eda73b82df56076414 by Martin Schuck <martin.schuck@tum.de >:
Fix overflow cast
--
d12211c6665e1d791f77338daf8c62fa2374e3c8 by Martin Schuck <martin.schuck@tum.de >:
Prevent skipping warnings from cached jax functions by clearning the cache before invokation
COPYBARA_INTEGRATE_REVIEW=https://github.com/google-deepmind/mujoco/pull/3369 from amacati:fix.overflow_cast d12211c6665e1d791f77338daf8c62fa2374e3c8
PiperOrigin-RevId: 939914544
Change-Id: I0ab6e9ad1e7c45f352d2f49642049ad930955f0b
2026-06-29 10:45:40 -07:00
Sam Haves
4e1795b9a4
Add special case support for MJB and TXT files to mj_encode.
...
PiperOrigin-RevId: 939875974
Change-Id: I57fc753871b348a7f6342aca0a892e74acb74173
2026-06-29 09:32:50 -07:00
Sam Haves
d83ef0b6b9
Change mj_encode return type to 64-bit (mjtSize)
...
This supports encoding files larger than 2GB.
PiperOrigin-RevId: 939828697
Change-Id: If60d36c61475ced20b4eb58408ffb37e25bf3db7
2026-06-29 07:41:52 -07:00
Taylor Howell
1e04c568e8
Studio launcher
...
PiperOrigin-RevId: 939814201
Change-Id: If3fb1a1a9f9114835452fce63f39931db7818db3
2026-06-29 07:07:54 -07:00
Yuval Tassa
7c706b273a
Report nnz(J) for CG solver.
...
PiperOrigin-RevId: 939806054
Change-Id: Icb2955511e33be046a4665fb39bce2546d6d4e3d
2026-06-29 06:49:23 -07:00
Matija Kecman
e0bb2b0665
Introduce message and endpoint abstractions for MuJoCo Studio communication.
...
- `messages.py`: Defines base classes for `Message`, `Snapshot`, and `Event`, along with `SnapshotChannel` and `EventChannel` protocols. It also includes concrete message types for state, reset, model, perturbation, pause state, and exit events.
- `endpoints.py`: Provides `ViewerEndpoint` and `SimEndpoint` classes to manage message routing between the simulation and the viewer via the defined channels. A `make_endpoints` function is included to create both endpoints.
PiperOrigin-RevId: 939659912
Change-Id: I61a52a7d25431bc4ed38a184813882145eb421d1
2026-06-29 00:24:15 -07:00
Matija Kecman
f594778813
Refactor viewer initialization and protocol.
...
Introduced a ViewerConfig dataclass to encapsulate common viewer window parameters. The NativeViewer now accepts a ViewerConfig and no longer requires a model at initialization. The Viewer protocol has been updated to include a close method (renamed from stop) and an upload_image method. Added checks for None models/data in studio event handling.
PiperOrigin-RevId: 939631378
Change-Id: Ibc07d0e775efa0d79ce5552ee52102e943a9b290
2026-06-28 23:07:02 -07:00
Haroon Qureshi
79f6deac99
Update bounds when updating the mesh.
...
PiperOrigin-RevId: 938628053
Change-Id: Ibd3d952d62614fc1eb049893937e6fb2d661da56
2026-06-26 09:25:06 -07:00
Yuval Tassa
c7b1171846
Improvements to studio profiler
...
PiperOrigin-RevId: 938503994
Change-Id: I3a12647feea4c761dd8f8ba239f92355ceccfba1
2026-06-26 03:49:08 -07:00
Taylor Howell
56a182e67c
Import Warp v1.14.0
...
PiperOrigin-RevId: 938464395
Change-Id: Iac99c53566e2e62f6e75f5e0904100919043b463
2026-06-26 02:03:42 -07:00
Haroon Qureshi
07e292bc6b
Make mjrf types opaque in header.
...
PiperOrigin-RevId: 938409081
Change-Id: I8b9680dcb04f56aadf9ffd601b08025fc624c656
2026-06-25 23:41:49 -07:00
Haroon Qureshi
2a5345ba8c
Add type attributes to help codegen.
...
PiperOrigin-RevId: 937935655
Change-Id: I14883a98b7b9b4bcc3dea8b60d839138c14ea444
2026-06-25 06:00:33 -07:00
Yuval Tassa
463b0fb27f
Add ImGui overlay utility and PAUSE/realtime overlays to Studio.
...
PiperOrigin-RevId: 937834952
Change-Id: I3f3a0500a89b34e2e03b2fe88344b928edeafe8f
2026-06-25 01:45:01 -07:00
Yuval Tassa
b6a0db7a17
Add Atkinson Hyperlegible Mono font support
...
PiperOrigin-RevId: 937799904
Change-Id: I89e4652cc45afdd9a55b3042395c4a56c70289fb
2026-06-25 00:16:39 -07:00
Haroon Qureshi
4b8a8fae92
Move code_builder.py to a common location.
...
PiperOrigin-RevId: 937332995
Change-Id: I2f03581cc47d96337bb637f30c678060207333fd
2026-06-24 07:44:40 -07:00
Yuval Tassa
0402bae176
Replicate the controls from the toolbar into the collapsible options sections and provides an option to hide the toolbar.
...
PiperOrigin-RevId: 937290592
Change-Id: I08f1f4880fd0b06123e817cb9ae7a3281daa8063
2026-06-24 06:09:24 -07:00
Haroon Qureshi
3d09a46d61
Use bulbradius as the vsm_blur_width as well.
...
PiperOrigin-RevId: 937286692
Change-Id: I03502da45951f90979b8f8d58915c80656a5eac7
2026-06-24 06:00:31 -07:00
Matija Kecman
38956ed95c
Handle None values for model and data in StepControl.advance.
...
The `StepControl.advance` method now checks if the provided `model` or `data` Python objects are `None` before attempting to cast them to `MjModelWrapper` or `MjDataWrapper`, passing `nullptr` to the underlying C++ function if they are `None`.
This fixes an oversight in the python bindings, C++ code already supported null models.
PiperOrigin-RevId: 937243996
Change-Id: Ie67b8603517e7390fb54bfefbfed79ccf7b2bc5e
2026-06-24 04:18:29 -07:00
Haroon Qureshi
a3039224ba
Add attributes for codegen assistance.
...
PiperOrigin-RevId: 937219243
Change-Id: If3a0830b7020d52ef346d97886a90950941f4908
2026-06-24 03:17:03 -07:00
Haroon Qureshi
3e33f93ddc
Remove unused material instances before rendering frame.
...
Also ensure material texture hashes are unique so that the material
cleanup works correctly.
PiperOrigin-RevId: 937206048
Change-Id: Ibed53457ee271f4faae3bcac5fb479b5ce9fc352
2026-06-24 02:46:33 -07:00
Haroon Qureshi
29b49991a2
Rename mjrf_getSamplerType to mjrf_getTextureSamplerType.
...
PiperOrigin-RevId: 937193469
Change-Id: I56f856e257fa1cf99b643f794139ef85817a0bb9
2026-06-24 02:18:07 -07:00
Yuval Tassa
080668df42
Add "(default)" to conflict warnings in user resolver.
...
When reporting conflicts between parent and child elements during attachment, the warning message now indicates if a value is derived from the default rather than being explicitly authored in the XML. This improves clarity in conflict resolution warnings.
PiperOrigin-RevId: 936724265
Change-Id: I68c677b19020c19bf0260f5b3b77fe6ca3661bb9
2026-06-23 09:44:29 -07:00
Haroon Qureshi
5637f74327
Add plugin for adding mjvGeoms to the scene.
...
PiperOrigin-RevId: 936709560
Change-Id: I69a01fc50e2d4b013d260d524515719c434bbf5f
2026-06-23 09:16:41 -07:00
Haroon Qureshi
557a2241f4
Add PreStep and PostStep plugin callbacks.
...
PiperOrigin-RevId: 936665884
Change-Id: Ie04562b02bfd61a62f9de77b3cef0fff534bf547
2026-06-23 07:49:29 -07:00
Haroon Qureshi
94a912d349
Allow plugins to request loading models by path.
...
PiperOrigin-RevId: 936638157
Change-Id: If594c6a9abac5eb0d62e7d6dce4dc2f558989969
2026-06-23 06:50:41 -07:00
Yuval Tassa
c499f7f2b0
Add Nesterov momentum with O'Donoghue-Candès restarts to PGS solver (~2x speedup)
...
Benchmark on `2humanoid100.xml` (nefc=1785, nv=654):
```
Convergence at fixed iteration count (mean relative error vs Newton):
20 iters: 2.98e-03 vs 1.54e-02 (5.2x better)
40 iters: 8.14e-05 vs 2.60e-03 (32x better)
80 iters: 1.17e-07 vs 1.77e-04 (1500x better)
Pipeline throughput (tolerance=1e-8, islands disabled):
Nesterov: 243 steps/s, 46 iters/step
Baseline: 151 steps/s, 95 iters/step
Solver speedup: 1.8x, overall step speedup: 1.6x
Pipeline throughput (tolerance=1e-8, islands enabled):
Nesterov: 306 steps/s, 442 iters/step
Baseline: 175 steps/s, 966 iters/step
Solver speedup: 2.1x, overall step speedup: 1.7x
```
PiperOrigin-RevId: 936610759
Change-Id: I2978e8bd545971d9151005623967e5cf0ad125cc
2026-06-23 05:52:14 -07:00
Haroon Qureshi
5cef2472d5
Remove custom step_fn for StepControl::Advance.
...
PiperOrigin-RevId: 936609234
Change-Id: I606cf4d71d856cbd260900d63b22c719974c977d
2026-06-23 05:49:20 -07:00
Taylor Howell
027cfd1201
simplify camera projection sensor
...
PiperOrigin-RevId: 936571266
Change-Id: I5647e61fcc81ba6eb482dd95d3c40438f478bb18
2026-06-23 04:17:38 -07:00
Haroon Qureshi
da2f0ebd7b
Add prestep/poststep callbacks to StepControl.
...
PiperOrigin-RevId: 936567801
Change-Id: I62d4d657791fe68101e63c2050adb63929128acf
2026-06-23 04:07:26 -07:00
Haroon Qureshi
7f66f42568
Make Renderer own the scenes.
...
PiperOrigin-RevId: 936547976
Change-Id: Iec87426a9ae255cdbd3efadc7b602d4183679c81
2026-06-23 03:15:48 -07:00
Haroon Qureshi
2800a682e4
Remove unused render_flags parameters.
...
PiperOrigin-RevId: 936528056
Change-Id: Iae8545ec1d71bc7d5a20c46394104fb1db369d5d
2026-06-23 02:29:25 -07:00
Haroon Qureshi
7a00c1f3e0
Factor out AstProcessor into its own library.
...
PiperOrigin-RevId: 936518263
Change-Id: I597ef4382e7ddc953f8daedd4f5123d71f0e8a42
2026-06-23 02:08:57 -07:00
Yuval Tassa
5d043d8f72
Minor tweaks to studio GUI style parameters.
...
PiperOrigin-RevId: 936508032
Change-Id: I93806ba3d0569b5ee01e95384f7f835a201b8253
2026-06-23 01:46:31 -07:00
Kyle Bayes
0fd7bea973
Modernize struct and enum style in MuJoCo headers.
...
PiperOrigin-RevId: 936485706
Change-Id: I31864acc4bd44573127d3d04c6b1a23f9d9c4cbc
2026-06-23 00:48:11 -07:00
Yuval Tassa
afccd36dd4
Add threading support to PGS
...
PiperOrigin-RevId: 936252614
Change-Id: I6762245cc2dbdb95568f0a927c26b575dc494b51
2026-06-22 14:29:17 -07:00
Michael Moss
5700829122
Update MuJoCo version to 3.10.1 following the 3.10.0 release
...
PiperOrigin-RevId: 936044969
Change-Id: If0ebcc192419302da01741ebabb2b7dd3d7f7baf
2026-06-22 07:25:02 -07:00
Michael Moss
28009f9105
Update changelog for the 3.10.0 release.
...
PiperOrigin-RevId: 936044016
Change-Id: I4b6e3205819b7bd0469415fe0b57990b68309d1b
2026-06-22 07:22:23 -07:00
Yuval Tassa
e2528cbd93
Rename "Stats" window to "Info" and remove "Stats" dock.
...
PiperOrigin-RevId: 936026479
Change-Id: I72e4f2cba6df255d5446faedc81727b39ef735bc
2026-06-22 06:38:03 -07:00
Michael Moss
4b1320a5f9
Patch Abseil to verify compiler support for std::source_location.
...
PiperOrigin-RevId: 936018935
Change-Id: I2cabbdf497dbb67452c27fc5ed02c56e6884f3d4
2026-06-22 06:16:36 -07:00
Kyle Bayes
1490336955
Change LoadModelFromString to return a smart pointer, add MakeData, and update tests to have C++ RAII clean up model and data.
...
PiperOrigin-RevId: 935980153
Change-Id: I41d25bfab4935494dc984168820cb7cad123cadf
2026-06-22 04:19:01 -07:00
Michael Moss
34d142ee50
Force Abseil's SourceLocation implementation for compatibility with clang 13/14.
...
PiperOrigin-RevId: 935926249
Change-Id: I063544e37eb735d0461a20c2ede7e23ea28d23bc
2026-06-22 02:02:00 -07:00
Yuval Tassa
bf59ca6a1b
Make the info overlay position fixed (bottom left)
...
PiperOrigin-RevId: 935868629
Change-Id: I26b8d50f276b05c9869ea0f6cc5c3033ab6ef2f9
2026-06-21 23:39:55 -07:00