Commit Graph

3494 Commits

Author SHA1 Message Date
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
Sam Haves 32e08f9507 Expose userfacenormal to mjsMesh
PiperOrigin-RevId: 814253177
Change-Id: I644974feea0722f03e7c3b01be7b702dba233f0a
2025-10-02 08:53:42 -07:00
Sam Haves 6320b95957 Add mju_getXMLDependencies that given an MJCF file returns filepaths to all of it's dependencies.
PiperOrigin-RevId: 814203235
Change-Id: Ib5c2e2f4dd42224a768c88d76473544190c72bc0
2025-10-02 06:14:48 -07:00
Taylor Howell 7e16ecaa25 Updates for testspeed.cc ctrl noise.
PiperOrigin-RevId: 814192687
Change-Id: I0498c8efc8e71cd578e6b9d40ffa1411447d3e43
2025-10-02 05:37:48 -07:00
Haroon Qureshi 6ed2ceaa83 Add non-decorative elements before decorative elements.
PiperOrigin-RevId: 814165875
Change-Id: Iab09e2fe1fa129b0c19760c969b5639e690a95d9
2025-10-02 03:59:06 -07:00
Kyle Bayes 91257896c0 Implement faster mju_isZeroByte.
PiperOrigin-RevId: 814148714
Change-Id: Iaf5ed9d3502eaaaee8d46a986f2db00811ae0707
2025-10-02 02:53:53 -07:00
Taylor Howell 401bf431b8 Modify Simulate::InjectNoise to set target of exponential decay to value from key_ctrl if a valid key is provided as input.
PiperOrigin-RevId: 813819040
Change-Id: I79508039b17fb3484b71ae0d19614c32adacfa10
2025-10-01 10:46:29 -07:00
Yuval Tassa edbdb5195c Change MuJoCo engine source code function-spacing convention from 3 blank lines to 2
PiperOrigin-RevId: 813754244
Change-Id: I6836e41c3b021cb727e922c25c60f629b9814c93
2025-10-01 07:58:17 -07:00
Sam Haves c439628f82 When parsing USD, infer gravity from stage metadata if UsdPhysicsScene missing or undefined.
PiperOrigin-RevId: 813705210
Change-Id: I13741af6dc87ecd9efb83219e978f5f06c72d021
2025-10-01 05:19:31 -07:00
Haroon Qureshi b1ae44d10f Refactor duplicated frame drawing logic into a utility function.
PiperOrigin-RevId: 813675737
Change-Id: I7f9094852f26b2ddc08534bf87cf2f71476d99ec
2025-10-01 03:36:14 -07:00
Haroon Qureshi f9d0bedb44 Minor cleanup: Move geom-related functions together.
PiperOrigin-RevId: 813661319
Change-Id: I6cdf74ff57f39f932ddd39268f15f1128ddf1df4
2025-10-01 02:46:45 -07:00
Haroon Qureshi 328a4ab293 Merge geomsExhausted into acquireGeom.
PiperOrigin-RevId: 813347956
Change-Id: I07bd566388383cc5c49e675f5b85fffb379ef6d1
2025-09-30 11:19:53 -07:00
Kyle Bayes de0ae73da7 Fix broken "building from source" link on Mujoco's README.
PiperOrigin-RevId: 813338644
Change-Id: I5a1e198556914619823ae180a63afac7450b3d6d
2025-09-30 10:59:10 -07:00
Sam Haves 4d590afdad Instead of caching PNGImage results, cache mjCTexture and mjCHField assets.
PiperOrigin-RevId: 813307632
Change-Id: I9de8b46423f57240d22811571d0533b010ee1e2b
2025-09-30 09:44:45 -07:00
Haroon Qureshi 59d0676dcc Remove redundant checks for exhausted geoms.
PiperOrigin-RevId: 813284297
Change-Id: I565c517bef782ba07ff323e206b75f6f905e5809
2025-09-30 08:44:17 -07:00
Sam Haves 2dc533b63b Allow flipping textures with any number of channels and user provided pixel data.
PiperOrigin-RevId: 813256285
Change-Id: I0d49885dc483ab8f093b2566ec4bef355575505e
2025-09-30 07:28:13 -07:00
Kyle Bayes bdccbcc60a Add multiccd fields to MJX and add simplex box-mesh model.
PiperOrigin-RevId: 813190617
Change-Id: Idc450da59d6420825077a642719525750f6551ec
2025-09-30 03:40:29 -07:00
Haroon Qureshi 70d03adc71 Store the status of the scene in the scene itself.
PiperOrigin-RevId: 813119377
Change-Id: Iebff9e7796ca9809ea22902522982bfd96eeba06
2025-09-30 00:06:00 -07:00
Haroon Qureshi fc8979ed4a Add test for checking exhausted geoms.
PiperOrigin-RevId: 812776271
Change-Id: Ic9456ab201610a69237182ac22147e3d3e240308
2025-09-29 07:18:12 -07:00
Sam Haves c31f11824e Add hfields to cache_hits benchmark.
PiperOrigin-RevId: 812759213
Change-Id: I155c2db58811dd1efa56a6361fd39aac669b63e7
2025-09-29 06:22:24 -07:00
Haroon Qureshi b17f4b26dc Add more scene golden tests.
PiperOrigin-RevId: 812708484
Change-Id: Icba94b128c89097703611ac4f6974f6d1cb19b4d
2025-09-29 03:19:48 -07:00
Haroon Qureshi 6a7566872a Functions for printing the contents of mjvScene.
PiperOrigin-RevId: 812699642
Change-Id: Iafff53c952c952624129ff01a8c1b0aa5d38eec5
2025-09-29 02:47:17 -07:00
Haroon Qureshi e1c7e19780 Add rendering flags to the studio UI.
PiperOrigin-RevId: 812649785
Change-Id: I47c6f974b7336bdd63c088ccfd06b5835e77ebff
2025-09-28 23:58:33 -07:00
Kyle Bayes 8de86c9944 Remove margin name from geomdist sensors.
PiperOrigin-RevId: 811775910
Change-Id: I4d265d4ad0206ea2d92c6c4b659f509a17f12baa
2025-09-26 05:24:12 -07:00
Yuval Tassa 9a5acbd662 Clarify subtree definition and self-collision matching in contact sensor docs.
PiperOrigin-RevId: 811731260
Change-Id: Ib890c59f67489de7d482cb239c146a9d565b6027
2025-09-26 02:34:56 -07:00
Yuval Tassa e51459f949 Break out struct initialization functions into engine_init.c.
PiperOrigin-RevId: 811598048
Change-Id: Ia832a8268e2209a5a264bbf79aa00dda487206bc
2025-09-25 19:22:27 -07:00
Yuval Tassa fe8384b6c5 Visualize joint and tendon limits by re-coloring.
PiperOrigin-RevId: 811590674
Change-Id: I5b65f2294a4bcda3c321fb51ebf29501bd0d416d
2025-09-25 19:02:26 -07:00
Alessio Quaglino c3bc793331 Add meshdir changelog item.
PiperOrigin-RevId: 811572927
Change-Id: I5aa3f5d8012781d39bd11fd4caa97f5d42577af3
2025-09-25 18:00:51 -07:00
Sam Haves 922aebbeed Provide explicit argument for asset cache ID.
This will allow assets to cache compiled results with different parameters. For example, we could cache both an RGB version of a texture and a Mono version.

PiperOrigin-RevId: 811341377
Change-Id: Ifd6a4ff88661a2b38be47c02d6a666de2c202885
2025-09-25 07:24:12 -07:00