Haroon Qureshi
d1fd11bccd
Refactor SaveScreenshot into a more useful RenderToTexture function.
...
Removes a few unused functions from helpers library.
PiperOrigin-RevId: 846661437
Change-Id: I815ffe1990098dedb71f694af088d85294f9c7de
2025-12-19 03:33:59 -08:00
Haroon Qureshi
522ff1cd80
Allow ImGui uploaded images to be resized or destroyed.
...
PiperOrigin-RevId: 846354598
Change-Id: I86882813ab607945fffc763122248e167be856a8
2025-12-18 11:42:19 -08:00
Sam Haves
b5b654f00c
Correctly handle segmentation and ID_COLOR flag in filament.
...
PiperOrigin-RevId: 846319715
Change-Id: I244ae52c34079b79d3179fafdf6aa506cc89e1ff
2025-12-18 10:14:13 -08:00
Sam Haves
05e1c452c7
Add VFS parameter to mjpDecoder decoding function.
...
PiperOrigin-RevId: 846242734
Change-Id: I317e11e6fcd965f66416abcf690a3a65d043e9ee
2025-12-18 06:38:40 -08:00
Haroon Qureshi
bebdd62943
Allow studio to search for models in predetermined search paths.
...
A future CL will allow users to specify search paths in their settings.
PiperOrigin-RevId: 846240293
Change-Id: I1a1a4027d0fc85004a12fe01a406f50fd929f3e4
2025-12-18 06:32:24 -08:00
Haroon Qureshi
7190bd4912
Add flag for depth rendering.
...
PiperOrigin-RevId: 846203691
Change-Id: I5ec494446bcfc1f7c81536a87dd24f9967973563
2025-12-18 04:36:26 -08:00
Yuval Tassa
08b4b4144d
Add tests for mju_cholUpdate and mju_cholUpdateSparse.
...
PiperOrigin-RevId: 845229292
Change-Id: Ide1406f85e49fe5a5b339bedff7ff6dd8099e5e8
2025-12-16 05:59:40 -08:00
Yuval Tassa
2b9940bc67
Add private function mju_fillInt
...
PiperOrigin-RevId: 845217293
Change-Id: I604372ab7ea7f4d47d9427d36dc8cd78e60d84ca
2025-12-16 05:16:50 -08:00
Sam Haves
eef71832db
Remove usage of usdImaging tokens to avoid needing to build imaging.
...
PiperOrigin-RevId: 844768270
Change-Id: Iba0a03646e56d9be5accf754f97ec37db8055425
2025-12-15 07:44:18 -08:00
Yuval Tassa
ccbfc6c8bf
Improve line search initialization logic and first Newton step acceptance.
...
PiperOrigin-RevId: 844316808
Change-Id: I0a7639a486c75f122db7f8b8c0df42ef810f060c
2025-12-14 01:50:52 -08:00
Yuval Tassa
e3a860de69
Update function signatures in engine_util_spatial.h to appease fussy GCC
...
PiperOrigin-RevId: 843752024
Change-Id: I041efe6acc5a4a44488bb9ec09101681d47c37c5
2025-12-12 10:47:31 -08:00
Haroon Qureshi
43bcbb158c
Load last saved GUI configuration on first load.
...
Also save theme to the configuration.
PiperOrigin-RevId: 843710929
Change-Id: I7ce9ce0f026d2cb5f79addf6c16c9b540bf11954
2025-12-12 08:56:53 -08:00
Yuval Tassa
499291e5c2
Fix aliasing issues in engine_core_smooth.c
...
PiperOrigin-RevId: 843699660
Change-Id: I21d4ed09284624ce80fcd5b1d572b9084e95e1f1
2025-12-12 08:25:06 -08:00
Haroon Qureshi
3da421afaa
First-pass implementation of web-based studio app.
...
PiperOrigin-RevId: 843685213
Change-Id: I2642a21d5573ef548eece0eb9a2c634e4881eec5
2025-12-12 07:42:42 -08:00
Yuval Tassa
157d261701
Fix aliasing issues in engine_collision_primitive.c
...
PiperOrigin-RevId: 843665186
Change-Id: I76cd479991f6083495e7ad95c2f57a8ef8fde925
2025-12-12 06:36:34 -08:00
Yuval Tassa
9fc37a3be4
Fix aliasing violations in engine_collision_box.c
...
PiperOrigin-RevId: 843647612
Change-Id: If8ad12c058a30ec475b9eb47d315019edbb8a7bb
2025-12-12 05:35:42 -08:00
Yuval Tassa
600f0f20bc
Introduce private header engine_inline.h exploiting restrict and avoiding loops and copies in some commonly used utility functions.
...
PiperOrigin-RevId: 843635464
Change-Id: I3b0553eea98424ccc7def77e3769e2994f3e9014
2025-12-12 04:49:29 -08:00
Haroon Qureshi
a0a56065e0
Use hex values instead of u8 string literals.
...
PiperOrigin-RevId: 843583709
Change-Id: Ib55cfd472de2f83b0455ebf95f6826c887f6dd70
2025-12-12 01:45:13 -08:00
Haroon Qureshi
e07adc387a
Update themes to differentiate from default dear_imgui themes and add a classic theme that's similar to simulate.
...
PiperOrigin-RevId: 843313013
Change-Id: Id01841097f32a5b01acd8fcf59392a73acad8f27
2025-12-11 11:46:12 -08:00
Haroon Qureshi
87d333c64a
Allow MJB and XML content to be loaded directly.
...
PiperOrigin-RevId: 843180720
Change-Id: Id4f2bf81507b971dfbbf250d775d7fdfc76517df
2025-12-11 05:41:43 -08:00
Yuval Tassa
1ff74ba810
Change the type of state signature arguments from unsigned int to int
...
PiperOrigin-RevId: 843162492
Change-Id: I51d3324f088e8055898e115bdd32267c5950a412
2025-12-11 04:34:36 -08:00
Yuval Tassa
fe0a11d58d
Change Filament background color to black.
...
PiperOrigin-RevId: 843152096
Change-Id: I2ef87ffffb9cc8662fa6353c6d38f1046f21b34b
2025-12-11 03:56:34 -08:00
Haroon Qureshi
caec236b2f
Make mj_loadModelBuffer a public API.
...
PiperOrigin-RevId: 843105390
Change-Id: I4058471b4cf64995dd5ab43e9c8c24e322004b62
2025-12-11 01:24:17 -08:00
Yuval Tassa
6bcb22730d
Minor clean-up of some visualization code.
...
Move mjvGeom acquire/release into helper functions, where possible.
PiperOrigin-RevId: 842675435
Change-Id: Ie5aaf206927251e79b20cc4101a7017645d5dd4b
2025-12-10 05:09:53 -08:00
Haroon Qureshi
9c1b8d8cfb
Enable font loading for wasm builds.
...
PiperOrigin-RevId: 842627994
Change-Id: I347f79ec668f31a8bbc4d26638a045e29084d715
2025-12-10 02:31:46 -08:00
Yuval Tassa
f06aa45ea6
Consolidate ray normal functions.
...
PiperOrigin-RevId: 842300829
Change-Id: Ic5e921084710cb044a4f49ea9b566d277838aaa1
2025-12-09 10:36:10 -08:00
Yuval Tassa
85e6f6de3c
Ignore unsupported light types in GL3 renderer.
...
PiperOrigin-RevId: 842271116
Change-Id: I632f7ed8e2a6488d5a8eb228928e26c8fcbdff66
2025-12-09 09:22:29 -08:00
Yuval Tassa
32d7b87ba7
Improve studio 2D plots
...
PiperOrigin-RevId: 842260702
Change-Id: I4644b69da92b9d015eb2d140b98f68c05d31a222
2025-12-09 08:56:51 -08:00
Yuval Tassa
5b1fa666fb
Add mj_rayHfieldNormal (not exposed in public header)
...
PiperOrigin-RevId: 842259581
Change-Id: I27d6c46024d55addbc22eed276331e2ef5acfa7d
2025-12-09 08:53:47 -08:00
Haroon Qureshi
7553541b4b
Use public mj_parseXml function.
...
PiperOrigin-RevId: 842245812
Change-Id: I26e1f992f82050a36373ee3a3f2c97c399b4e788
2025-12-09 08:14:32 -08:00
Haroon Qureshi
97eb307ce9
First pass at mjSpec Explorer and Properties windows.
...
Displays the list of bodies and joints from the mjSpec and displays
values for the selected element.
Functionality is very limited and a bit non-intuitive. However, we want
to get this into our users hands to start getting feedback.
PiperOrigin-RevId: 842228895
Change-Id: I2491cd5e0acaf622110e0f6b8406919024d3607a
2025-12-09 07:28:26 -08:00
Yuval Tassa
c064abc3da
Change row-flipping logic for heightfields.
...
Move row-flipping logic from `mjCModel::CopyBack` to `mjXWriter`.
PiperOrigin-RevId: 842220322
Change-Id: I6fb09db6c9e8689f6e435f82f58dd3e7c4314478
2025-12-09 07:02:21 -08:00
Haroon Qureshi
925c533580
Move playback speed control to the toolbar.
...
Initialize playback speed based on the model's global.realtime setting.
Adjust layout and tweak colours of the status and tool bars.
PiperOrigin-RevId: 842214796
Change-Id: Iff9cda74178df28a0787693242fee81e011014fc
2025-12-09 06:47:38 -08:00
Yuval Tassa
cc914c9ec7
Modify studio keyboard bindings to conform to MuJoCo API.
...
PiperOrigin-RevId: 842197387
Change-Id: I6ee9b1f5050cb4a8c2f67253f37481c61c91fdbd
2025-12-09 05:53:14 -08:00
Yuval Tassa
f65c1cdfd1
Add mj_raySdfNormal (not exposed in public header)
...
PiperOrigin-RevId: 842178540
Change-Id: I5d2db555e9b6c0fa0daaa8bc14c7781663e4c94e
2025-12-09 04:43:39 -08:00
Haroon Qureshi
e1e2248925
Internal changes only.
...
PiperOrigin-RevId: 842099953
Change-Id: Ia11feec323504976cdc3e6d7170435b74ed33fcd
2025-12-09 00:18:06 -08:00
Haroon Qureshi
99a90cb649
Don't do GUI rendering when rendering to texture.
...
PiperOrigin-RevId: 842089364
Change-Id: Iaecebdc677e946c7fc618395205097462a56f2d1
2025-12-08 23:44:50 -08:00
Yuval Tassa
735b31fc89
Fix triangle lighting in native renderer.
...
PiperOrigin-RevId: 841796563
Change-Id: I778e0e02aa8b4033531d4fadc091610418ab909e
2025-12-08 09:27:04 -08:00
Haroon Qureshi
e238b65843
Support both 3 and 4 channel images and use a safer way to assign IDs to images.
...
PiperOrigin-RevId: 841727607
Change-Id: I319db4291ecee27f4ceb7b7e952c6f68e7f8b96d
2025-12-08 05:55:00 -08:00
Gabe Oppenheimer
96e376451c
Update MuJoCo version from 3.4.0 to 3.4.1 following the 3.4.0 release
...
PiperOrigin-RevId: 840914696
Change-Id: Iffabc70dd174384ba1c535cafcd34982ff8e5712
2025-12-05 16:15:56 -08:00
Haroon Qureshi
fcdacd0690
Fix crash when using image-based textures.
...
Image lights are not normal lights, so use nullptr as a placeholder.
Add checks for nullness when iterating over the lights.
PiperOrigin-RevId: 840695579
Change-Id: I092515ae814523e85f4f5ce87b2bac2241f4ea35
2025-12-05 06:08:13 -08:00
Haroon Qureshi
6e7b2ba4c3
Reuse renderable entity instead of recreating every frame.
...
PiperOrigin-RevId: 840680350
Change-Id: Ie26862f8993c4b1cf071ee867d89bcc8182d3dd2
2025-12-05 05:10:12 -08:00
Haroon Qureshi
f18c9996e6
Allow uploading textures for use with ImGui.
...
PiperOrigin-RevId: 840669528
Change-Id: I7c5854d966dd024cd492953f86bca961cfaf88b8
2025-12-05 04:31:32 -08:00
Matija Kecman
e93786c161
Fix WebGL rendering for the webdemo
...
PiperOrigin-RevId: 840640628
Change-Id: I4bac3bf634e66da01174927bf6096bc1df642e10
2025-12-05 02:39:54 -08:00
Haroon Qureshi
6ed9f2be7a
Removed unused font uploading functionality.
...
Font textures are handled directly through ImGui.
PiperOrigin-RevId: 840259537
Change-Id: I5b6b0dc5d2c1c7066b4a23f0106de34285f40e6c
2025-12-04 08:38:58 -08:00
Haroon Qureshi
da36e822a8
Allow material default classes to define texture layers.
...
PiperOrigin-RevId: 840254100
Change-Id: I59f67fc4d1485cf80bbc005d1b35cda6224248ed
2025-12-04 08:22:55 -08:00
Haroon Qureshi
5ee8b646f7
Move Style and Layout configuration to shared GUI library.
...
PiperOrigin-RevId: 840246253
Change-Id: Ic4664b62e86e70fd6780cd9eb885978064c5f585
2025-12-04 08:02:16 -08:00
Haroon Qureshi
5f59104877
Properly handle PBR materials where no color texture is provided.
...
In this case, we'll use the mujoco material color which is then multiplied with a white fallback texture.
PiperOrigin-RevId: 840244521
Change-Id: I2134f45dcbaed7db268e5278ca8ac5429488943d
2025-12-04 07:57:24 -08:00
Haroon Qureshi
680e9a6b79
Update studio build script and instructions.
...
Mujoco studio now works on Windows and MacOS.
PiperOrigin-RevId: 840235447
Change-Id: I66d3430d5d994de2eb13ee08ad3051c6c7187e12
2025-12-04 07:27:37 -08:00
Haroon Qureshi
c5cd276e1f
Cleanup model loading flow.
...
Inlines the platform::LoadMujocoModel into the App class which simplifies
the logic and allows us to correctly display loading errors.
Also updates shortcuts:
Load Model (Ctrl+L) -> Open File (Ctrl+O)
Reload Model (Ctrl+R) -> Reload Model (Ctrl+L)
PiperOrigin-RevId: 840232553
Change-Id: I957d29046ae681d2aeb69310c3a2eec64d042d49
2025-12-04 07:20:02 -08:00