Commit Graph

3522 Commits

Author SHA1 Message Date
Haroon Qureshi 9b7e7e471d Add line and linebox geom primitives.
PiperOrigin-RevId: 818570050
Change-Id: If02873dd878a23b442368ce69bc024e0310e9d02
2025-10-13 02:59:13 -07:00
Haroon Qureshi 66a1c22cae Label all bodies, not just selected bodies, when mjLABEL_BODY is set.
An earlier refactor incorrectly assumed that only selected bodies needed
labels.

PiperOrigin-RevId: 818568645
Change-Id: I7aea07c5342673dd589e1891d0db1f2b0c489fe4
2025-10-13 02:54:34 -07:00
Taylor Howell d9399d6f84 Update doc/conf.py.
PiperOrigin-RevId: 818544892
Change-Id: I4bb14309ebb4abe9eca1a61fa91b1bba6992a1e5
2025-10-13 01:47:09 -07:00
Yuval Tassa a7fe06c717 Further simplification to mj_crb
PiperOrigin-RevId: 818241421
Change-Id: I67dd2a60f415eb17b41f5ee553939118ab124123
2025-10-12 01:43:30 -07:00
Yuval Tassa 12f0e3df9a Quick return for static bodies in mj_object{Velocity,Acceleration}
PiperOrigin-RevId: 818238459
Change-Id: I340a2f61439db2a149cc64a5fee543680fdcad0f
2025-10-12 01:25:05 -07:00
Kyle Bayes 9e0885a4fa Handle exceptions in VFS C API.
PiperOrigin-RevId: 817688877
Change-Id: Ia2e306fe4cd1848eb5731212aa4e959080a9d377
2025-10-10 10:03:36 -07:00
Haroon Qureshi b63252e4bb Render labels for any geom with a label, not just label geoms.
PiperOrigin-RevId: 817686605
Change-Id: I030626dd942e50eef33e0de7e9d0f314fd2f457d
2025-10-10 09:58:21 -07:00
Taylor Howell 5f55e96810 Fix _get_data_into_warp.
PiperOrigin-RevId: 817681130
Change-Id: Iceb622e5655021ac25388ec28f1f78fe61f58ddc
2025-10-10 09:44:35 -07:00
Matija Kecman 624ae0ac26 Silence warning/error relating to not using a const-ref in a for loop.
PiperOrigin-RevId: 817652277
Change-Id: Ia700c67fe2c163c7a1e6e35fbbaed632cca213c3
2025-10-10 08:22:11 -07:00
Haroon Qureshi ff7c613c79 Initial implementation of the filament rendering backend for mujoco.
This is intended as a drop-in replacement for mjr_render to enable high
quality, physically-based rendering (PBR) using the filament render engine.

This is a work-in-progress and, as such, some features may be missing. This
is also a code-only drop; build files (including instructions on how to
generate the filament materials) will be provided at a later date.

This library is intended to be run with the experimental studio app.

PiperOrigin-RevId: 817593684
Change-Id: Ib9cd14c1881e4897c1111275bd749aa38ebb5317
2025-10-10 05:01:39 -07:00
Matija Kecman bd68f0c6cc Update CMake to use C++20
PiperOrigin-RevId: 817573868
Change-Id: I22c98515763623d7411fd12910cf88cdaa336e6e
2025-10-10 03:54:47 -07:00
Matija Kecman 59a5a7bf5f Improve error messages in LoadMujocoModel
PiperOrigin-RevId: 817565307
Change-Id: I367298cdf77d26b6f8deb5c6a0d5c3cab1e4d065
2025-10-10 03:24:50 -07:00
Taylor Howell 38af2e2d00 Export mujoco_warp/pyproject.toml.
PiperOrigin-RevId: 817541914
Change-Id: I271f66c26699c1c9d15133420e189d5c525deae6
2025-10-10 02:02:57 -07:00
Baruch Tabanpour 192da87475 Remove _full_compat from MJX io.
PiperOrigin-RevId: 817337868
Change-Id: Ic61b8d57937452371b85416c624ff2672c908aac
2025-10-09 14:26:19 -07:00
Erik Frey 50e163748d Use correct tile sizes in 3p mujoco_warp now that launch_tiled bugs are fixed.
PiperOrigin-RevId: 817310391
Change-Id: I652509ba8d6dcd514b264eb450952e6980e48f1e
2025-10-09 13:18:45 -07:00
Taylor Howell a9632a9825 MuJoCo Warp feature parity documentation.
PiperOrigin-RevId: 817123818
Change-Id: I21e4fd64943d68ffd714a1d84309ed5085764d6a
2025-10-09 04:33:24 -07:00
Haroon Qureshi abe88202d0 Remove redundant flags argument.
PiperOrigin-RevId: 817115667
Change-Id: I4e5096206d7c24f5861e1bb9e8049149803dceeb
2025-10-09 04:07:43 -07:00
Alessio Quaglino 98682ae284 Do not modify mesh position when fitting a geom to the mesh AABB.
Also, unify the meaning of fitting a geom to an AABB: it now means to find the smallest geom such that its AABB contains the mesh AABB.

Fixes #2881.

PiperOrigin-RevId: 817097544
Change-Id: I883c686feffa803bd16ba461db24a474dfec7712
2025-10-09 03:05:00 -07:00
Sam Haves 3a299c49ca Remove use of usdaFileFormat from mjcf_file_format.
Previously this was just used for the USDA file format token, which we can confidently just construct ourselves.

Since [this PR in OpenUSD](https://github.com/PixarAnimationStudios/OpenUSD/commit/5bb9ad1fb2a034e1f9b48c7db936f296b5b78e25) the file lives in a different place now and public usage will be deprecated anyways.

PiperOrigin-RevId: 816801204
Change-Id: I42e92d2af52b0f9ff0a679ecb96f3d2dbf623531
2025-10-08 11:54:44 -07:00
Haroon Qureshi 1335ec87e4 Move font assets data targets into toolbox library.
PiperOrigin-RevId: 816654994
Change-Id: Ic56fab2b0af0c8d85682f8b233342a0d088d5cca
2025-10-08 05:09:42 -07:00
Haroon Qureshi 8e4932170a Remove unused params.
PiperOrigin-RevId: 816654011
Change-Id: Ib26bc90dcda167e8acf1feaa3b015acb5aa7aceb
2025-10-08 05:05:59 -07:00
Haroon Qureshi e7e331b11e Update sensor decor elements to be of type mjOBJ_SENSOR.
PiperOrigin-RevId: 816640568
Change-Id: I838608c0482ec1ee499fe9598ddb33aa6c5331e9
2025-10-08 04:17:40 -07:00
Haroon Qureshi 7b9f6a5cc1 Invert early-out checks to reduce nesting.
PiperOrigin-RevId: 816606107
Change-Id: I325d3f4695cdeb189694088d8a81b198d65f96ea
2025-10-08 02:21:14 -07:00
Baruch Tabanpour b56cf98e41 Import google-deepmind/mujoco_warp from GitHub. Update MJX io.py.
PiperOrigin-RevId: 816431884
Change-Id: I54881e7e350fbe5b2be1833e66745894b122f374
2025-10-07 16:43:30 -07:00
Saran Tunyasuvunakool f83ee3fd73 Update mujoco_warp.
Also remove mujoco_warp tests and test data from this repo.

PiperOrigin-RevId: 816239754
Change-Id: Ie89ef043d40bb43d1e1150acd33b5f4cbf162ab8
2025-10-07 09:50:21 -07:00
Haroon Qureshi fbab761627 Cleanup how different rendering backends are selected.
PiperOrigin-RevId: 816169098
Change-Id: I915aa45fa3a6d45a5178d3ff7bfdd0f1b1e01789
2025-10-07 17:48:23 +01:00
Taylor Howell fd9b989bf8 Import google-deepmind/mujoco_warp from GitHub.
PiperOrigin-RevId: 816099854
Change-Id: I6302a97c2f5d4594a08ebf4bc53a180b804360e6
2025-10-07 17:47:55 +01:00
Yuval Tassa 414888b716 Mark some mjData fields as mutable.
PiperOrigin-RevId: 815819490
Change-Id: I1a62fda556b4197aec451f2747c69f34bab13220
2025-10-06 11:43:38 -07:00
Yuval Tassa 52eff3da0f Fix mismatched argument format in mju_mulInertVec declaration.
PiperOrigin-RevId: 815818142
Change-Id: Id9caa581962705095f227a113505fc3e3ddd1054
2025-10-06 11:40:32 -07:00
Yuval Tassa ab9575d8a6 Refactor and speed up mj_crb and add a benchmark.
This is a no-op "prefactor" of `mj_crb` to reduce the number of lines changed in the upcoming sleeping CL. The main change here is that `mj_crb` now avoids accessing the model and data pointer repeatedly, but instead has the input and output pointers explicitly declared as local variables. A benchmark test found a healthy **14% perf bump** due to two changes:
- Adding `restrict` to `mju_mulInertVec`
- The function-local pointers.

Adding `restrict` to the local pointers had no effect. Note that `mj_crb` is not a particularly expensive function so these speed bumps are not significant per se, but rather indicative of possible future gains with these techniques.

```
Benchmark                Time(ns)        CPU(ns)     Iterations
---------------------------------------------------------------

ORGINAL BASELINE
BM_CRB_BASELINE_mean         4325           4348         993200  230.052k items/s

BASELINE + RESTRICT
BM_CRB_BASELINE_mean         4057           4090        1186150  244.573k items/s

LOCAL POINTERS + RESTRICT
BM_CRB_mean                  3772           3800        1001750  263.209k items/s
```

PiperOrigin-RevId: 815798225
Change-Id: Iffdf57b544e8e10562807c617f73ca4ccd1c614f
2025-10-06 10:54:01 -07:00
Taylor Howell b75af81c75 Update .readthedocs.yml.
PiperOrigin-RevId: 815776443
Change-Id: I6637a7d303232ca41840e80e27b6dd9d6b6d803c
2025-10-06 10:07:55 -07:00
Taylor Howell 9e5c5b110d Update .readthedocs.yml.
PiperOrigin-RevId: 815693650
Change-Id: Ibeb1ceab983768b4af5759d9654ea857faa2db64
2025-10-06 06:15:51 -07:00
Taylor Howell e10853e52e MuJoCo Warp basic usage and minimal example documentation.
PiperOrigin-RevId: 815654625
Change-Id: Ifa90a7469ef827777317bd3c4cda216130a5c7e9
2025-10-06 04:03:36 -07:00
Yuval Tassa 431f96572e Remove unused mjOption.apirate.
PiperOrigin-RevId: 815633571
Change-Id: Ib98f3eb2df47f96fa1fe6e987a3a0cd23a9479f6
2025-10-06 02:51:17 -07:00
Haroon Qureshi a849fedcd2 Separate mjv_addGeoms into separate functions for each category.
PiperOrigin-RevId: 815607891
Change-Id: I16b29061c7e2229146bd0e0152721bca40fa4fd1
2025-10-06 01:30:26 -07:00
Taylor Howell 680f880b03 Remove unused functions from collision_convex.py.
PiperOrigin-RevId: 815605363
Change-Id: Ia1978a2e84cedd3c4382164562d672d1d6f20c43
2025-10-06 01:21:47 -07:00
Sam Haves e4704cd28b Create list_dependencies sample to list all dependencies for an MCJF file.
PiperOrigin-RevId: 814816067
Change-Id: Idc6232e5d1ef1ff0318aeacd0e3d4b4a5a303485
2025-10-03 13:47:28 -07:00
Baruch Tabanpour 6ae9cc8061 Fix #2508.
PiperOrigin-RevId: 814761747
Change-Id: Ic3d1ed359f377799126987c3640b7e534e764c6b
2025-10-03 11:17:14 -07:00
Baruch Tabanpour d321ba7642 Bump warp-lang version.
PiperOrigin-RevId: 814757185
Change-Id: Ia3ee1fd731bf19b621a8816fdb7ce670f2bc035c
2025-10-03 11:05:48 -07:00
Yuval Tassa 6e6253c4d5 Remove redundant line in types.py
PiperOrigin-RevId: 814749110
Change-Id: Ic335e3ffc724a62a2d0660295afdfeb288f6c96a
2025-10-03 10:43:52 -07:00
Yuval Tassa 18779ab54a Clean up engine_core_util
PiperOrigin-RevId: 814709359
Change-Id: If4ec66808e7de51e16b772afdb8485fa4ff30030
2025-10-03 08:48:11 -07:00
Sam Haves b5c35f87fc Add material parsing path for colliders instead of strictly visual gprims.
PiperOrigin-RevId: 814692421
Change-Id: If92a36d0382f60e0d92c7d90320dec51c20ea739
2025-10-03 07:52:55 -07:00
Taylor Howell 709caa0628 Update .readthedocs.yml.
PiperOrigin-RevId: 814687463
Change-Id: Ia319c9bb77cb954d71b7afd27eedf33a65aeb5d1
2025-10-03 07:34:50 -07:00
Haroon Qureshi 24679b47e4 Separate out site and geom frame construction.
PiperOrigin-RevId: 814677737
Change-Id: I623f9d1e23ac6b3076a577e97911f7ec73492f52
2025-10-03 06:56:53 -07:00
Taylor Howell 9f796c3e70 Add missing constants to Python bindings.
PiperOrigin-RevId: 814663674
Change-Id: Ib5abb561a8b950cc6db86b4786ab01cd3326de78
2025-10-03 06:06:22 -07:00
Taylor Howell 53360f51a9 Update .readthedocs.yml to install MuJoCo Warp in order to generate API documentation. Additionally, mirror mujoco_warp/pyproject.toml in mjx/mujoco/mjx/third_party/mujoco_warp.
PiperOrigin-RevId: 814656860
Change-Id: Ie4c0e9076c90b598dedc65a3e9793ed3d2375c37
2025-10-03 05:39:45 -07:00
Kyle Bayes 50920450d2 Update box geom docs.
PiperOrigin-RevId: 814646973
Change-Id: I6ef294c2b740ca2ebbf2501974120d13d08bf56e
2025-10-03 05:00:26 -07:00
Taylor Howell 33a30480f8 Updates for MJX viewer related to Warp backend.
PiperOrigin-RevId: 814604809
Change-Id: I1cdb135f8f01b399163ece7415b09fd977ce7ad8
2025-10-03 02:25:24 -07:00
Haroon Qureshi 493d73062c Misc cleanup to addFrameGeoms.
PiperOrigin-RevId: 814582959
Change-Id: I2546bf1c13334628d379ad24737de095085e1b1f
2025-10-03 01:14:32 -07:00
Baruch Tabanpour 8eacacfd13 Import NVIDIA/warp from GitHub.
PiperOrigin-RevId: 814423562
Change-Id: Ibf441f161e25c51c494de84b0d263b32af76545c
2025-10-02 16:08:26 -07:00