Commit Graph

257 Commits

Author SHA1 Message Date
Saran Tunyasuvunakool 0630b7543d Bump version number to 2.3.4.
PiperOrigin-RevId: 525745444
Change-Id: I8a9994b72a0a2ba3f371bee2c2bea947ad8f4fd1
2023-04-20 07:52:46 -07:00
Saran Tunyasuvunakool b362cb4972 Expose a handle for the Python viewer.
This change also requires user scripts to explicitly synchronize changes to physics state to the viewer. The Simulate class was reconfigured so that certain UI events are handled during this sync operation, outside of the render loop on the main thread. These correspond to operations that require access to the full mjModel/mjData.

To support other, more interactive operations (e.g. camera movements), a new mjvSceneState struct is introduced which captures only the portion of the physics state required for scene re-rendering. The mjvSceneState is updated from mjModel/mjData during the viewer sync operation, and is significantly cheaper than a full mj_copyModel and mj_copyData.

Fixes https://github.com/deepmind/mujoco/issues/796

PiperOrigin-RevId: 525723636
Change-Id: Id08d0210a2c067d5afe85e2bf104f276aeddd75e
2023-04-20 05:59:19 -07:00
Kyle Bayes fe3dccfd1d Add a new plugin / extension mechanism called a resource provider along with retrofitting VFS on top of it.
A resource provider provides a mechanism for MuJoCo to read from filesystems other than the OS filesystem or the Virtual File System (VFS).

PiperOrigin-RevId: 525394983
Change-Id: I077ff5a7e2e76806b48b6defb531280aadc8b169
2023-04-19 03:02:22 -07:00
Yuval Tassa d7ec409eb6 Improve code block for mjFREESTACK documentation.
PiperOrigin-RevId: 525150006
Change-Id: Ief5af7ea78658f89449795b58466dac14ab7e32a
2023-04-18 08:11:45 -07:00
Yuval Tassa c69e0b97fb Improve documentation of the internal stack.
PiperOrigin-RevId: 525119946
Change-Id: I49c757506f4af2b588dc07f978c8a72acad1b5bc
2023-04-18 05:40:44 -07:00
Yuval Tassa 9b7d42acb8 Improved numeric constants docs section.
PiperOrigin-RevId: 524799733
Change-Id: Ibb941d5bbb57f884ec31e1f00ae0e99cedac2980
2023-04-17 03:26:30 -07:00
Nimrod Gileadi 0e1f948c0a Change some redirecting links to direct links.
Files in github should be linked to using /blob/ rather than /tree/ URLs, while directories should be linked with /tree/.

PiperOrigin-RevId: 524796430
Change-Id: I72492a6acde0709b55d8d8620ad9b538619e7606
2023-04-17 03:06:06 -07:00
Yuval Tassa d7456f5d35 Add image and model explaining the geom-fromto attribute.
PiperOrigin-RevId: 524796118
Change-Id: I9e694d84a4be308baafbdbaab89cfb2570b13586
2023-04-17 03:05:10 -07:00
Nimrod Gileadi a1de6ee693 Update MuJoCo docs dependencies.
PiperOrigin-RevId: 524796002
Change-Id: I8fa2492e3fc5544bc8dadab710b4eae9822a5bb8
2023-04-17 03:04:08 -07:00
Tom Erez 4204109a5a Add some notes to the Python documentation.
PiperOrigin-RevId: 524293742
Change-Id: I43fcfcddd374a73e3a8fe4929784a4ac070fa067
2023-04-14 08:10:04 -07:00
Yuval Tassa 018503a0ec Fix badly formed links in the changelog.
PiperOrigin-RevId: 523988103
Change-Id: I069700af2328104b38831a544b61e136e8d8c6db
2023-04-13 06:51:56 -07:00
Saran Tunyasuvunakool 2e23594fe8 Add an introspect module for structs.
Also missing struct fields to the Python bindings that were discovered as a result of the new `introspect` metadata.

PiperOrigin-RevId: 523947396
Change-Id: I367fd2dc8d5fd7e5712a45b70a5c50da51d152e4
2023-04-13 02:50:23 -07:00
Saran Tunyasuvunakool 34226bf52d Fix a race condition in launch_passive and launch_repl.
Before this change, these functions can return before an internal call to `mj_forward`, which results in a race condition if the user script then tries to modify the physics state.

Fixes #783
Fixes #790

PiperOrigin-RevId: 523214378
Change-Id: I8a4c6cef0f5d3ec781fd2c5cae3c20dd4b8be67f
2023-04-10 14:35:53 -07:00
Saran Tunyasuvunakool 6d63e046fd Add low-level CGL context management for macOS.
This allows rendering from non-main threads as the context is not tied to a Cocoa window.

Fixes #742
Fixes #798

PiperOrigin-RevId: 523144359
Change-Id: I98432debdd034814c313eda94e38c248c3c1f76c
2023-04-10 10:09:49 -07:00
Yuval Tassa b536e46cc0 Add implicitfast to XML reference.
PiperOrigin-RevId: 522916631
Change-Id: Ica9261b7b84a3c269503a4ae21af251803c76b63
2023-04-09 02:06:00 -07:00
Yuval Tassa 7cc42ecf2a Remove "global" option from [compiler/coordinate](https://mujoco.readthedocs.io/en/latest/XMLreference.html#compiler-coordinate) attribute.
Keeping this rarely-used setting complicates the compiler logic and is blocking future improvements. In order to convert older models which used this option, load and save them in MuJoCo 2.3.3 or older.

PiperOrigin-RevId: 521739137
Change-Id: If0cb40d5db4879a4db9318cc2be258a7923e6e85
2023-04-04 05:59:38 -07:00
Yuval Tassa 01b84089dd Document engine plugins.
Rename `mjPLUGIN_DYNAMIC_LIBRARY_INIT` -> `mjPLUGIN_LIB_INIT`.

PiperOrigin-RevId: 521458377
Change-Id: I42aaec923e4f392899dfe53ab6ce1dddc75a83b3
2023-04-03 07:55:21 -07:00
Yuval Tassa ebb150fa3d Change docs preferred monospace font to Inconsolata
PiperOrigin-RevId: 521425957
Change-Id: Ie3014b924fbf711ce643f1e555aa723b85383023
2023-04-03 04:53:38 -07:00
Yuval Tassa 4ce00f7e2d Add notes section to APItypes documentation, add note about representation of convex hulls.
PiperOrigin-RevId: 521416156
Change-Id: Ia752b2fc5e4826a8d27af4167c40d9d7424bb069
2023-04-03 03:55:10 -07:00
Yuval Tassa 64229c089a Cosmetic improvements to public headers.
PiperOrigin-RevId: 521415262
Change-Id: Iee5d6baec78242f5a033c8b5cdd285af4a0895fa
2023-04-03 03:49:24 -07:00
Alessio Quaglino 5f132af625 Add midphase and broadphase statistics to mjData.
PiperOrigin-RevId: 521387641
Change-Id: Id50f2549d119e364216491a23b107e04d9ebb5b6
2023-04-03 00:59:59 -07:00
Yuval Tassa c29f32657c Fix broken links in the documentation.
PiperOrigin-RevId: 520657874
Change-Id: Idd01c40f87e0f2afcbd2d2bfd98fab95edc2371e
2023-03-30 09:18:06 -07:00
Yuval Tassa 3fd5164524 Fix heading level of function types.
PiperOrigin-RevId: 520653499
Change-Id: I8b5265b9a9b43eab40616a78570f558ff85e4ec8
2023-03-30 09:00:46 -07:00
Yuval Tassa 7951b4597f Improve favicons for iOS and Android.
PiperOrigin-RevId: 520336136
Change-Id: I002393b49a42ce257b3d36942203c0acadc01685
2023-03-29 08:01:55 -07:00
Yuval Tassa 045609c704 Add high-res readthedocs favicons for iOS and Android.
PiperOrigin-RevId: 520324992
Change-Id: If22c228eee50570c63357f08b8cd1eab2fab55f8
2023-03-29 07:06:34 -07:00
Yuval Tassa 24b9bf9bc7 Lint doc/conf.py
PiperOrigin-RevId: 520317031
Change-Id: I33fb5bdc8344a6a69e4c3d3038b52ece81c73000
2023-03-29 06:23:11 -07:00
Yuval Tassa 2127d0bb3f Improvements to API TOC
PiperOrigin-RevId: 520284861
Change-Id: Iac8c05d6d18f1e7f89728c5c5f5aa6395d0a1899
2023-03-29 03:21:43 -07:00
Yuval Tassa 62aa38f5f1 Reduce size of ellipsoidinertia image in changelog.
PiperOrigin-RevId: 519203289
Change-Id: Ia23cd9429d8266a7e293ae9310609724276d1d12
2023-03-24 12:00:27 -07:00
Kevin Zakka 3f14d97f6b Add equivalent inertia ellipsoid visualization.
PiperOrigin-RevId: 519154067
Change-Id: I35f1993c1493df9be752b7163385004649498070
2023-03-24 08:47:43 -07:00
Yuval Tassa 2a471d1e11 Standardize docstrings in mjmodel.h
PiperOrigin-RevId: 519139821
Change-Id: I5a28c7415870012de1e219d2d00ea4ea9a495ec7
2023-03-24 07:38:39 -07:00
Kevin Zakka 5bc497cdf7 Fix a typo in mjvisualize.h.
PiperOrigin-RevId: 518940577
Change-Id: Iedb0c54cfde3ee01a99a4a706f9ff6833ad3333c
2023-03-23 13:00:26 -07:00
Yuval Tassa ce6c9053e2 Fix bug in engine_derivative.c
- The inner loop was reusing and modifying an outer loop variable.

PiperOrigin-RevId: 518843275
Change-Id: I922f8768c4e8ef74c2fb2b1fd897de8234336acf
2023-03-23 06:32:31 -07:00
Nimrod Gileadi e58d53e747 Update changelog.rst for version 2.3.3
PiperOrigin-RevId: 517932202
Change-Id: I55063e9bc5da2d424b1ad303834d8f11cb0a0fa9
2023-03-20 04:40:15 -07:00
Nimrod Gileadi 33a2ce73d4 Update MuJoCo version to 2.3.3.
PiperOrigin-RevId: 517931617
Change-Id: I7c9960290f1b6e5d5f68a54df617a580f23c57e9
2023-03-20 04:36:09 -07:00
Kyle Bayes 8696247f9d Add mj_stackAllocInt to get correct size for allocating ints on mjData stack. Reducing stack memory usage by 10% - 15%.
PiperOrigin-RevId: 517672195
Change-Id: Ie14e6c9c99e8b9e1c5d3686b77631f2df0651c67
2023-03-18 13:04:14 -07:00
Yuval Tassa fae5e822c0 Add links to default attributes.
PiperOrigin-RevId: 517639045
Change-Id: I45f766bda8ce5bd182ba2669c4121c21896d40c1
2023-03-18 07:07:01 -07:00
Yuval Tassa d97ff39e86 Improvements to schema table.
- Schema table now has attribute links and is open by default.
- Attributes are in 4 columns.
- Fixed various documentation bugs made visible by this change.
- Removed distance equality constraint from xml_native_reader.cc

PiperOrigin-RevId: 517558035
Change-Id: Ibc7715587dd4e72253231bfd55bd037f0193b3fd
2023-03-17 18:57:34 -07:00
Saran Tunyasuvunakool 7a0def9791 Add viewer.launch_passive and mjpython to the changelog.
PiperOrigin-RevId: 517458183
Change-Id: Idaa39fed2ab9d4a82b92b7a1a1cefb80b5b36fcf
2023-03-17 11:09:27 -07:00
Yuval Tassa 7bff68dac8 Fix syntax of permalinks.
PiperOrigin-RevId: 517428359
Change-Id: I1409f91ca3b82116464b264c1b798807636506f0
2023-03-17 09:12:54 -07:00
Yuval Tassa 62d200db33 Improve mid-phase images in changelog.
PiperOrigin-RevId: 517390561
Change-Id: Ib2775a5590bc5d03cf7cec1112659829d0dc8ce8
2023-03-17 05:38:39 -07:00
Alessio Quaglino 70959c1a2c Added a collision midphase on geom pairs using rotated AABBs static trees.
PiperOrigin-RevId: 517357695
Change-Id: I068fee714d9638be2fb6d042d5d86f8ff970635b
2023-03-17 02:37:29 -07:00
Yuval Tassa d59a919ef6 Minor style fixes.
PiperOrigin-RevId: 517193740
Change-Id: I093e57efa1480e5d1d6053493b665e145f9b3f87
2023-03-16 12:24:06 -07:00
Saran Tunyasuvunakool e20ab6c96f Add a number of missing struct fields to Python bindings.
It is quite possible that there are a few other fields still missing since we currently do not yet have automated testing of struct field existence.

Fixes #747.

PiperOrigin-RevId: 517189048
Change-Id: I7c1d95e700eaea05aaa3cde1fd05e1a259553117
2023-03-16 12:05:50 -07:00
Copybara-Service a04c4314fd Merge pull request #770 from jonas-eschmann:patch-1
PiperOrigin-RevId: 517174871
Change-Id: I9a52f6bc79777fb7d987eaf057185d9c0e87e477
2023-03-16 11:15:11 -07:00
Yuval Tassa 1731baa925 Add links to all attributes in XMLreference.rst
PiperOrigin-RevId: 517158584
Change-Id: Ia50a2840049e1c5c24eb2f571483d65537276296
2023-03-16 10:22:53 -07:00
Yuval Tassa 448ab1a299 More consistent formatting of mjdata.h
PiperOrigin-RevId: 517142236
Change-Id: I3ee93e10b843cb3f3a73a6a19e6b96f23be05cc3
2023-03-16 09:23:53 -07:00
Yuval Tassa 8c7f6ce5a0 New implicitfast integrator and sparse RNE derivatives for implicit.
PiperOrigin-RevId: 516910733
Change-Id: I29a0465c0f0b1749a73e3d7e01925200d025ddd0
2023-03-15 13:17:41 -07:00
jonas-eschmann 1fa538a43b Fixing typo in the documentation 2023-03-15 16:10:50 -04:00
Kyle Bayes 056e849273 Provide improved mju_sqrMatTDSparse implementation that doesn't require dense memory allocation for sparse matrices.
PiperOrigin-RevId: 516812783
Change-Id: Ieb43337831d8d3b2c7f18a7facd8e0a0f2b0eff5
2023-03-15 06:56:16 -07:00
Yuval Tassa fe18e58ad2 Rendering of mjGEOM_LINE respects size[0] (width argument of mjv_makeconnector), denominated in pixels.
- Before this change, line width was hardcoded to 3 pixels and the width argument of mjv_makeConnector was ignored.
- After this change, the width argument is respected and interpreted in units of pixel. The non-standard width unit is ok since lines can only be drawn programmatically.

PiperOrigin-RevId: 516529265
Change-Id: I27bffabba69cde415d2ada67263a887c9240efbf
2023-03-14 08:17:36 -07:00