- C++ 95.7%
- CMake 2.8%
- Dockerfile 1.5%
| .devcontainer | ||
| .forgejo/workflows | ||
| examples/python | ||
| include/muse_protocol | ||
| src | ||
| tests | ||
| .clang-format | ||
| .gitignore | ||
| CMakeLists.txt | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
Overview
The MUSE (Multibody Unified Synchronization & Exchange) protocol is a messaging framework designed to configure, run, and control multibody system simulations.
MUSE relies on transport primitives provided by the ZeroMQ message broker and uses MessagePack to serialize messages, including body states, actuation forces and efforts, sensor data, and event triggers.
Developed primarily for use with the open-source physics engine Project Chrono, MUSE messages are also well-suited for most other multibody simulation software.
MUSE prioritizes readability and reliability. It is ideal for simulations where the time required to complete a simulation step is significantly longer than the serialization and deserialization time. If you require very high-performance serialization for strict real-time applications, MUSE may not be the best fit. However, if you are looking for an intuitive way to control your multibody simulation and abstract away transport details so you can focus on running your models, MUSE will get you started quickly.
Documentation
Features
- C++ API
- Compact serialization using MessagePack
- Clear and concise messaging interface definitions
- ZeroMQ transport layer (PAIR pattern)
- Heartbeat commands
- Body state commands
- Actuator (wrench or effort) commands
- Time control
License
Distributed under the MIT License.