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
Haroon Qureshi
8823e9fedf
Improve imgui texture management.
...
Keep track of all textures and recreate them as needed. This makes imgui
textures robust to render context reinitialization.
PiperOrigin-RevId: 840228061
Change-Id: Ia4ac35ff93a41ac74020f334adc438df4b030f7c
2025-12-04 07:05:14 -08:00
Haroon Qureshi
54070fc71b
Disable bent normals by default.
...
PiperOrigin-RevId: 840216781
Change-Id: Icf24d73939fa138da46e2da7aa69a6574e6f98ec
2025-12-04 06:28:53 -08:00
Sam Haves
a942fd4875
Make filament segmentation shader distinct colors optional.
...
Previously we were computing at material update time a color for the geom based of it's
segid. This made segids unrecoverable from the resulting buffer. With this change
we allow SceneView creators to specify if they want the segmentation buffer to be purely
for visualization with distinct colors.
PiperOrigin-RevId: 840016870
Change-Id: I5920f248ace0901023e6545c7d8dd2b23f9aa397
2025-12-03 19:26:20 -08:00
Tom Power
4a6b9456aa
Set default headlight intensity to zero if there are no physical lights in the scene.
...
PiperOrigin-RevId: 839962392
Change-Id: I086d8135604982c42381a9b49cec53773c7fa362
2025-12-03 16:31:11 -08:00
Sam Haves
8507b62556
Cache the rendering mode used to allow headless segmentation rendering.
...
This also moves the read call into the frame, per the recommendation in the filament documentation. We also don't need to flush and wait for the engine twice, just defer to the end of readPixels.
PiperOrigin-RevId: 839953612
Change-Id: I52205147794440322ca976c52fb4905207c21473
2025-12-03 16:06:39 -08:00
Haroon Qureshi
14513a04c2
Wait until previous render is finished before submitting another request.
...
PiperOrigin-RevId: 839707507
Change-Id: Ib39538540ff6080d197c2ea853b7273cc56084e7
2025-12-03 05:01:44 -08:00
Haroon Qureshi
e409538831
Ensure window scale is initialized on creation.
...
PiperOrigin-RevId: 839699437
Change-Id: I99e477ac49b56726b77389306aec49c895e160fa
2025-12-03 04:29:52 -08:00
Haroon Qureshi
448fc0e4d5
Report the actual GPU framerate rather than the main thread submit rate when using the filament renderer.
...
PiperOrigin-RevId: 838775463
Change-Id: If66644d284a4a9e0263cf31bfbd1785b18e0209b
2025-12-01 08:02:38 -08:00
Haroon Qureshi
9b7134b15b
Add OSX and WIN32 support for getting the native window pointer.
...
PiperOrigin-RevId: 838720433
Change-Id: Id7123bcf456d0c2d32e67b204564fe8c495004cd
2025-12-01 04:57:24 -08:00
Haroon Qureshi
139a5b6494
Rename toolbox to platform.
...
PiperOrigin-RevId: 838701951
Change-Id: I339eafd35d919710cb47bb04e9a8e29f92739513
2025-12-01 03:58:34 -08:00
Haroon Qureshi
fe74ea2e7b
Match definition with declaration.
...
PiperOrigin-RevId: 838682770
Change-Id: I537ae9652dc64a02d2e3de8ddda351102d3cec35
2025-12-01 02:49:18 -08:00
Haroon Qureshi
a7e62a6755
Set visual studio working directory to the bin directory.
...
PiperOrigin-RevId: 838681802
Change-Id: I764809d2145688c8a353907dc599a604ae944d0b
2025-12-01 02:45:53 -08:00
Haroon Qureshi
ea78d83363
Use working directory if no HOME path specified.
...
PiperOrigin-RevId: 838680600
Change-Id: I8869da40042bb0b4edcbfe1e626c3188d0631c5e
2025-12-01 02:42:14 -08:00
Yuval Tassa
8f9250472e
Improve names of Free camera control modes.
...
PiperOrigin-RevId: 837605181
Change-Id: I01b65706fc4f9857df4d025cd3f4587d24ee5af5
2025-11-27 13:34:09 -08:00
Yuval Tassa
2ea403575e
studio: invert mouse scroll direction for camera zoom.
...
PiperOrigin-RevId: 837603911
Change-Id: I193a1abc0a3317aa998e7f82b9ce4b282ae7a913
2025-11-27 13:28:24 -08:00
Haroon Qureshi
5163dfa823
Move UX drawing functions into a shared library.
...
PiperOrigin-RevId: 837528296
Change-Id: I153a000cde424254384cf168606f32f7925ca076
2025-11-27 07:34:51 -08:00
Haroon Qureshi
23825a5bcf
Implement sensor chart.
...
PiperOrigin-RevId: 837498928
Change-Id: I84b5911a44fe60a96b3ef34d514eb39702be7402
2025-11-27 05:38:24 -08:00
Haroon Qureshi
406062efaf
Remove TODO (charts have been implemented).
...
PiperOrigin-RevId: 837151123
Change-Id: Iae37fdf4ed143e0523a1e4244e3a897211a5751b
2025-11-26 09:13:58 -08:00
Haroon Qureshi
9274a0014a
Fix UV scaling.
...
PiperOrigin-RevId: 837147525
Change-Id: If54d069ddb3fec0852f1941788cb03d5604a252f
2025-11-26 09:01:56 -08:00
Haroon Qureshi
c7e0c01e80
Prevent decorative elements from casting shadows.
...
PiperOrigin-RevId: 837112208
Change-Id: I4ecc110eec1a2166df7a07d8bb9ec37df36b7c89
2025-11-26 07:27:41 -08:00
Haroon Qureshi
0425355efc
Use a switch statement for handling geometry types.
...
PiperOrigin-RevId: 837097811
Change-Id: Ic473f9da3d4189430e98670afdae7bb3cca5ccbc
2025-11-26 06:40:41 -08:00
Haroon Qureshi
aa25075ea4
Implement triangle geoms.
...
PiperOrigin-RevId: 837079122
Change-Id: If7aa0904c6f3e7c62477b75b17d67259fe2bdabb
2025-11-26 05:33:04 -08:00
Haroon Qureshi
ed69fe85f1
Only build fonts when using filament backend.
...
PiperOrigin-RevId: 837054382
Change-Id: I7ef3b6b954738776f266533f4c48ac4e3c43b4bf
2025-11-26 04:00:34 -08:00
Haroon Qureshi
fcad41a5b1
Implement solver stats charts.
...
PiperOrigin-RevId: 837045292
Change-Id: I1dfe1e10bb6d62f4d994a82c9b645b471fca5500
2025-11-26 03:25:45 -08:00
Matija Kecman
011166a13a
Update the studio/README.md to summarize platform support.
...
PiperOrigin-RevId: 837038187
Change-Id: I00882e0a9882947af7c684e2d5521356ad1468ce
2025-11-26 02:58:05 -08:00
Haroon Qureshi
4ce0ee2011
Update texture handling due to recent ImGui upgrade.
...
PiperOrigin-RevId: 837030453
Change-Id: I042c4a7df7dc6c7e07c40eb5f32e5031e5b1d60a
2025-11-26 02:36:02 -08:00
Haroon Qureshi
a1579ac3e1
Use static_cast instead of reinterpret_cast.
...
PiperOrigin-RevId: 836990495
Change-Id: I276b5d83e18cc87364f8f2cae0c585b6673c738e
2025-11-26 00:25:32 -08:00
Google DeepMind
c07e3cb8a8
Internal changes only.
...
PiperOrigin-RevId: 836814927
Change-Id: I18bde7ae47b5c106ab9c85e434a8b491c8d79d04
2025-11-25 14:36:57 -08:00
Haroon Qureshi
d8712808b9
Allow users to access mjrContext.
...
PiperOrigin-RevId: 836641787
Change-Id: I2f2aee30a047336d1adbe33b7996fee3ec845213
2025-11-25 06:25:14 -08:00
Haroon Qureshi
f28bcc4346
Allow binding to arbitrary textures.
...
PiperOrigin-RevId: 836625847
Change-Id: If02ea708f49bdfd9be5be7d9a273340ba2f082f0
2025-11-25 05:26:04 -08:00
Haroon Qureshi
589e013d9b
Fonts should have const data.
...
PiperOrigin-RevId: 836624808
Change-Id: I984c94cc34ef22b875ddda87c59893aa7f38a8a3
2025-11-25 05:22:54 -08:00
Haroon Qureshi
9b0f8dd963
Update CMakeLists.txt to add/remove files.
...
PiperOrigin-RevId: 836591285
Change-Id: I17745ad5055b861721c10daec33adc1f6f11ea32
2025-11-25 03:18:57 -08:00
Haroon Qureshi
eac8e60037
Merge Physics functionality into App.
...
The Physics class is no longer needed. This makes Studio similar to
other toolbox-based apps (like web demo and python viewer) which
manage their own mjModel and mjData instances.
PiperOrigin-RevId: 836588076
Change-Id: I3f695b49bf6a7bba1a2b639d3d75d0c996582f06
2025-11-25 03:09:21 -08:00
Haroon Qureshi
67b09f9afb
Refactor simulation state history tracking into a SimHistory class.
...
PiperOrigin-RevId: 836578736
Change-Id: I94a852b2d2a36cdd081371f25385dbb466dd8d4b
2025-11-25 02:38:09 -08:00
Haroon Qureshi
6d9d59cb98
Move pause handling into StepControl.
...
Also moves perturbation handling up to the App.
Combined, this makes Physics::Update only about advancing the StepControl and resonding to its Status.
PiperOrigin-RevId: 836569506
Change-Id: I148c787f0e1c18baac3e3038ee6ad0e337eb92a8
2025-11-25 02:08:08 -08:00
Matija Kecman
7e6cb642a3
Improve formatting of percent real time selection
...
PiperOrigin-RevId: 835192366
Change-Id: I17057f61b96d6380dea6156dcef867b1845e6abf
2025-11-21 06:05:53 -08:00
Haroon Qureshi
a2002eb3d7
Various UX improvements including:
...
- Add Toolbar and StatusBar.
- Reconfigure sections into Settings and Inspector groupings.
- Use docking for Settings/Inspector panels.
- Rename "Free" camera to "Tumble"; add WASD-based free camera.
- More dynamic layout of table-based elements.
- Remove "non-classic" UX mode.
- Switch to light mode by default.
PiperOrigin-RevId: 835174573
Change-Id: I1855caa79f00002e44ed2516631675727bdcb9f6
2025-11-21 04:58:20 -08:00
Haroon Qureshi
a2fd5fdd4a
Move profiler logic into a separate class.
...
PiperOrigin-RevId: 834200782
Change-Id: Ida050a5c055237c4e0a0c725a1277c9239a89538
2025-11-19 02:35:35 -08:00
Haroon Qureshi
7569ac960d
Create material instances for each draw call rather than for each clip rect.
...
This fixes a bug where the wrong instance was being used in some cases.
PiperOrigin-RevId: 833818151
Change-Id: If8b0cb90017ee0b89cde98a5ae64c36704c7338c
2025-11-18 08:16:55 -08:00
Haroon Qureshi
8077a6819c
Add support for OpenSans and font-awesome fonts.
...
PiperOrigin-RevId: 833666932
Change-Id: I5f0207c3331705b9078a1297b3e7b2a8d363ad60
2025-11-17 23:14:47 -08:00
Matija Kecman
85b6194f91
Add a README with instructions for how to build and run MuJoCo Studio externally
...
PiperOrigin-RevId: 833336577
Change-Id: Ib5f5ef33abe820796559a9da352360f57ea64bc8
2025-11-17 07:49:00 -08:00
Matija Kecman
8eca9926dc
Fix various MuJoCo Studio build issues on Windows, MacOS and Linux
...
PiperOrigin-RevId: 833313973
Change-Id: I7ec181374e0bb49c32420d025044c31f6fc3c657
2025-11-17 06:35:43 -08:00
Haroon Qureshi
999344c998
Use the path of the loaded model as the base path for all further load/save operations.
...
PiperOrigin-RevId: 832358035
Change-Id: I44fdf8cd31d755087ebd5ec9f84f5faabe5d0702
2025-11-14 10:00:43 -08:00
Haroon Qureshi
3f69deb328
Correctly initialize mjrContext before creation.
...
PiperOrigin-RevId: 832233427
Change-Id: I5e7301637e73a739f141d4a3207b27ae1676f6b6
2025-11-14 02:41:56 -08:00
Haroon Qureshi
83363f41ee
Fix arrow positioning.
...
PiperOrigin-RevId: 832233204
Change-Id: I10b780c261bf5c0b4891309559fa7aab4d47d32c
2025-11-14 02:40:31 -08:00
Matija Kecman
26c1622ac8
Internal change
...
PiperOrigin-RevId: 831782555
Change-Id: I1dda7700e1c1def21c0b0879a5452ddf96d45aa8
2025-11-13 03:22:47 -08:00
Haroon Qureshi
7b52d3034e
Fix crash if Renderer is destroyed without having been Init'ed.
...
PiperOrigin-RevId: 831375559
Change-Id: Ia1d0334e32dbbd0582d4f75723867d6ea47bf9da
2025-11-12 07:15:39 -08:00
Haroon Qureshi
28c536bd93
Remove support for custom fonts for OSS project for now.
...
PiperOrigin-RevId: 831294808
Change-Id: I3f366ceafc1181e0624d1b26ef09fd64ed6275b4
2025-11-12 02:30:23 -08:00
Haroon Qureshi
aa7cf15cc4
Set textures before assigning a material.
...
PiperOrigin-RevId: 830899288
Change-Id: I42029157e7be006d4dc18d0c84e27bf908af6f47
2025-11-11 07:10:18 -08:00