|
1 | 1 | <div align="center"> |
2 | 2 | <h1>Rusty MuJoCo Binding</h1> |
3 | 3 | <p>Rust bindings for the <a href="https://mujoco.org">MuJoCo</a> physics simulator</p> |
4 | | - <p>MuJoCo Version: <a href="https://github.com/google-deepmind/mujoco/releases/tag/3.3.2"><strong>3.3.2</strong></a></p> |
| 4 | + <p>MuJoCo Version: <a href="https://github.com/google-deepmind/mujoco/releases/tag/3.3.2">3.3.2</a></p> |
5 | 5 | </div> |
6 | 6 |
|
7 | 7 | <br> |
8 | 8 |
|
9 | | -- Provides direct Rusty binding to all MuJoCo APIs. |
10 | | -- Provides getter methods for all struct fields and setter methods for all fields |
11 | | - intended to be user-modifiable, instead of direct field access. |
12 | | -- Offers as much type-safety and efficiency as possible on the lean binding interface. |
13 | | - (e.g. `mj_name2id` and many other functions or methods handle `ObjectId<T>` |
14 | | - instead of primitive integer, requiring only once `mj_name2id` call per object and |
15 | | - assuring the object id to be valid in entire a simulation) |
16 | | -- Automatically handles resource management of some types with heap allocation. |
17 | | - (e.g. calling `mj_deleteModel` for `mjModel` in its `Drop` impl) |
| 9 | +- Offers safe, direct Rust wrappers for the entire MuJoCo API. |
| 10 | +- Provides getters for all struct fields and setters for user-modifiable fields, |
| 11 | + instead of allowing direct field access. |
| 12 | +- Implements automatic resource management via Rust's RAII pattern. |
| 13 | + For example, `mjModel` automatically calls `mj_deleteModel` in its `Drop` implementation, preventing memory leaks. |
| 14 | +- Emphasizes type-safety and efficiency within a lean binding interface. |
| 15 | + For instance, the `ObjectId<T>` type system replaces raw integer IDs to: |
| 16 | + - Ensure compile-time safety for all object-related operations. |
| 17 | + - Improve performance by eliminating the need for repeated `mj_name2id` lookups. |
18 | 18 |
|
19 | 19 | <div align="right"> |
20 | 20 | <a href="https://github.com/rust-control/rusty_mujoco/blob/main/LICENSE"> |
|
0 commit comments