Decentralized Simulation Framework designed to integrate multiple advanced physics engines along with various photo-realistic graphics engines to simulate everything, everywhere, all at once.
Multiverse.mp4
Make sure to use a virtual environment. You can choose from conda, virtualenv, or virtualenvwrapper.
Clone the repository with all submodules (shallow clone):
git clone --recurse-submodules https://github.com/Multiverse-Framework/Multiverse --depth 1
cd Multiverse
Alternatively, if you already cloned the repo without
--recurse-submodules
, run:git submodule update --init --recursive
pip install -r ./Multiverse-Launch/requirements.txt
pip install -r ./Multiverse-Utilities/requirements.txt
Choose the connector depending on the simulator you're using. Default: MuJoCo.
pip install -r ./Multiverse-Launch/src/multiverse_connectors/multiverse_simulators_connector/src/mujoco_connector/requirements.txt
source /opt/ros/$ROS_DISTRO/setup.bash
cd ./Multiverse-Launch/src/multiverse_connectors/multiverse_ros_connector/ros_ws
-
For ROS 1:
cd multiverse_ws catkin build
-
For ROS 2:
cd multiverse_ws2 colcon build --symlink-install
pip install -r ./Multiverse-Parser/requirements.txt
cd Multiverse-Parser
./setup.sh
To test the framework, run the default example:
./Multiverse-Launch/bin/multiverse_launch
This will spawn 4 instances of the MuJoCo simulator. Each instance runs independently but remains interconnected with the others in real time — demonstrating the decentralized and modular nature of the framework.
If you use this framework in your research, please cite:
@software{Multiverse,
author = {Giang Nguyen and Michael Beetz},
title = {Multiverse},
month = {December},
year = {2024},
url = {https://github.com/Multiverse-Framework/Multiverse},
doi = {10.5281/zenodo.14035537}
}