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
Haroon Qureshi
1b2206fc50
Do not generate mipmaps for textures loaded from KTX files.
...
PiperOrigin-RevId: 830874812
Change-Id: Ie9dccc52acd5ffd26e5d4f3597f3834f81ebebcb
2025-11-11 05:51:36 -08:00
Haroon Qureshi
2261733aa4
Toggle profiler window using F3.
...
PiperOrigin-RevId: 830869956
Change-Id: I396f89f95672096f59b909b9415be2168aac6473
2025-11-11 05:33:57 -08:00
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
Matija Kecman
80a91cfbea
Internal change
...
PiperOrigin-RevId: 829417225
Change-Id: Ib2304c6a40fb7a2a9fed900a587b9f7ed4b3103a
2025-11-07 06:49:00 -08:00
Yuval Tassa
769f37b653
Implement sleeping in engine
...
PiperOrigin-RevId: 829361787
Change-Id: I6f64d8e25c4248cf32c18cd94d37ff5def78946e
2025-11-07 03:33:07 -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
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
Sam Haves
7d7648f7ed
Update UsdWriter to write any parts of MjSpec that are not from USD to the EditTarget.
...
This enables two workflows:
1) Users that parsed some other format into MjSpec, or built it programmatically can export animated USD easily with as minimal as possible interaction with USD.
2) Creating a spec from USD, then modifying the spec, should not cause a duplication of data when writing to USD.
PiperOrigin-RevId: 827627520
Change-Id: I02c8c14a18569547710e54f3704d52ac0bf70ce6
2025-11-03 13:29:46 -08:00
Yuval Tassa
abc02b736e
Minor fixes to viewer diagnostics
...
- When `mjData.nefc` was 0 (solver not run at all), we were plotting the stale diagnostics from the last run; now fixed.
- In the case where islands were used, the semantic of the plotted diagnostic `sqrt_nnz` (square root of Hessian nonzeros) is changed. It used to be the sum of square roots of solver nonzeros per island, it is now the square root of the sum of all nonzeros in all islands. The semantic `sqrt(sum(nnz_i))` was found to be more consistent than `sum(sqrt(nnz_i))`, in the sense that switching islanding on/off leads to smaller changes and is more in line with the interpretation of islanding as [block-diagonalization](https://mujoco.readthedocs.io/en/3.3.7/computation/#constraint-islands ).
PiperOrigin-RevId: 827624908
Change-Id: I5fc86364ead585a4752a6d44823fb75cf6c7c318
2025-11-03 13:23:05 -08:00
Sam Haves
9319956a16
Modify mujoco_to_usd to operate on SdfLayer intead of SdfAbstractData.
...
Since we don't do any on demand data loading for USD and always convert everything it should be safe to use the SdfLayer API instead of the SdfAbstractData API. This enables other codepaths such as the USD writer class to reuse the same logic to generate USD specification from an mjSpec.
PiperOrigin-RevId: 827431722
Change-Id: I60a581e0c9577164a4a66229ea9dcb8912afcf74
2025-11-03 04:16:37 -08:00
Haroon Qureshi
80eb511620
Remove dependency on Window, Physics, and Renderer classes.
...
PiperOrigin-RevId: 825137441
Change-Id: I099a518ca9618698401d0330a6ef08278168f88e
2025-10-28 11:42:17 -07:00
Haroon Qureshi
4620b9f23a
Merge HandleMouseEvents and HandleKeyboardEvents back into app.cc.
...
PiperOrigin-RevId: 825081195
Change-Id: I36445b8c452b15ca26056a52fd1844cf77083c0a
2025-10-28 09:44:42 -07:00
Haroon Qureshi
3b79d3f14b
Set flags directly on Renderer class.
...
This removes a dependency on mjvScene from the App class.
PiperOrigin-RevId: 824983816
Change-Id: I20dd411e6359ee411f9b0b86d4442c090ba4bd5c
2025-10-28 05:24:05 -07:00
Haroon Qureshi
7ba0d96d77
Use mjvCamera directly for generating camera string.
...
PiperOrigin-RevId: 824982264
Change-Id: I0d8760bb27153849c8f4dacb10aa3162f29c2f6e
2025-10-28 05:18:58 -07:00