You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
MuJoCo bindings and wrappers for the Rust programming language. Includes a Rust-native viewer and also
7
+
MuJoCo bindings and high-level wrappers for the Rust programming language. Includes a Rust-native viewer and also
9
8
bindings to a modified C++ one.
10
9
11
10
[MuJoCo](https://mujoco.org/) is a general purpose physics simulator.
@@ -19,9 +18,6 @@ More detailed documentation is available at the:
19
18
## MuJoCo version
20
19
This library uses FFI bindings to MuJoCo **3.3.7**.
21
20
22
-
You can download it from [official MuJoCo releases](https://github.com/google-deepmind/mujoco/releases/tag/3.3.7).
23
-
24
-
25
21
## Installation
26
22
For installation, see the [**guide book**](https://mujoco-rs.readthedocs.io/en/stable/installation.html).
27
23
@@ -34,6 +30,7 @@ The main features on top of MuJoCo include
34
30
- Automatic allocation and cleanup.
35
31
- Lifetime guarantees.
36
32
33
+
- Automatic download and setup of MuJoCo.
37
34
- Methods as function wrappers.
38
35
- Easy manipulation of simulation data via attribute views.
39
36
- High-level model editing.
@@ -43,37 +40,36 @@ The main features on top of MuJoCo include
43
40
- Viewer: onscreen visualization of the 3D simulation.
44
41
45
42
46
-
47
43
## Rust-native viewer
48
44
Screenshot of the built-in Rust viewer. Showing scene from [MuJoCo's menagerie](https://github.com/google-deepmind/mujoco_menagerie/tree/main/boston_dynamics_spot).
49
45

50
46
51
47
52
48
## Optional Cargo features
53
49
Optional Cargo features can be enabled:
54
-
-``viewer``: enables the Rust-native MuJoCo viewer. This can currently
55
-
display everything and respond to mouse/keyboard. No side-panels (the user menu) currently exists.
56
-
-``cpp-viewer``: enables the Rust wrapper around the C++ MuJoCo viewer. This is only available if you build the MuJoCo yourself using the steps above (yes, you need to use the forked repository).
57
-
-``renderer``: enables the offscreen rendering code for reading RGB and depth data to memory or file.
50
+
51
+
-``auto-download-mujoco``: MuJoCo dependency will be automatically downloaded and configured.
58
52
59
-
By default, ``viewer`` and ``renderer`` are enabled.
53
+
- This is only available on Linux and Windows.
60
54
61
-
## Missing libraries
62
-
MuJoCo-rs should on Windows work without problems after the MuJoCo library
63
-
is provided. On Linux (and potentially MacOS, which we don't test) you may need
64
-
additional build-time dependencies, such as CMake. This depends
65
-
on your Linux distro and whether you want visualization/rendering support. See the [installation guide](https://mujoco-rs.readthedocs.io/en/stable/installation.html#build-dependencies-visualization-rendering-only) for more information.
55
+
-``use-rpath``: On Linux and MacOS, when dynamically linking, set the RPATH of the final binary.
56
+
-``viewer``: enables the Rust-native MuJoCo viewer.
57
+
58
+
-``viewer-ui``: enables the (additional) user UI within the viewer.
59
+
60
+
-``cpp-viewer``: enables the Rust wrapper around the C++ MuJoCo viewer.
61
+
This requires static linking to a modified fork of MuJoCo, as described in :ref:`installation`.
62
+
-``renderer``: enables offscreen rendering for writing RGB and
63
+
depth data to memory or file.
64
+
65
+
By default, ``viewer``, ``viewer-ui`` and ``renderer`` are enabled.
66
66
67
-
## NOTE
68
-
This project is WIP but functional. I accept pull requests about bug fixes
69
-
and feature requests. If you have any questions, please open a **discussion**.
70
67
71
68
## Example
72
69
This example shows how to launch the viewer and print the coordinates
73
70
of a moving ball to the terminal.
74
71
Other examples can be found under the ``examples/`` directory.
75
72
76
-
77
73
```rust
78
74
//! Example of using views.
79
75
//! The example shows how to obtain a [`MjJointInfo`] struct that can be used
0 commit comments