A general-purpose physics engine for fast, accurate simulation of articulated bodies in contact, widely used in robotics and machine learning research.
URLab-Sim/UnrealRoboticsLab
An Unreal Engine 5 plugin that runs MuJoCo physics inside the editor and runtime, pairing accurate contact dynamics with Unreal's rendering.
- Stars
- 564
- Forks
- 67
- Open issues
- 9
- Last commit
- 27 days ago
What is it?
UnrealRoboticsLab (URLab) embeds the MuJoCo physics engine into Unreal Engine 5, so robots are simulated with MuJoCo's contact dynamics and rendered with Unreal's lighting, materials, and cameras. Physics runs on its own thread while Unreal handles rendering.
MJCF .xml models can be dragged into the Content Browser to produce an articulation Blueprint ready to simulate, including joints, actuators, tendons, muscles, and flexcomp. Any static mesh can also be turned into a physics body with a single component.
Robots can be driven from Blueprints, an in-editor dashboard, or Python and ROS 2 over the network, with PD controllers and live gain tuning. Robot cameras can output RGB, depth, and segmentation data using real camera intrinsics, and episodes can be recorded and replayed deterministically.
Key features
- 01Imports MJCF models into ready-to-simulate Articulation Blueprints.
- 02Runs MuJoCo physics on a separate thread alongside Unreal rendering.
- 03Controls actuators from Blueprints, the editor dashboard, Python, or ROS 2.
- 04Captures RGB, depth, and segmentation from robot cameras.
- 05Records and replays simulation episodes deterministically.
- 06Provides visual debugging overlays for islands, tendons, muscles, and collisions.
Use cases
- Simulating robot arms or legged robots with photorealistic camera output for vision training.
- Generating labeled RGB, depth, and segmentation data from simulated robot cameras.
- Prototyping robot control policies in Python or ROS 2 against a MuJoCo model inside Unreal.
- Replaying recorded robot episodes for debugging and evaluation.
Quick start
- 1
Clone the plugin with submodules into your project's Plugins folder
git clone --recurse-submodules https://github.com/URLab-Sim/UnrealRoboticsLab.git - 2
Build the native dependencies once (use build_all.ps1 on Windows)
./build_all.sh - 3
Build your Unreal Engine C++ project
Things to know
- Only Unreal Engine 5.7 is tested and supported, and 5.8 is to be avoided due to Linux Vulkan driver regressions.
- Your project must be a C++ project, since URLab is a C++ plugin.
- Supported platforms are Windows (Win64) and Linux (x86_64) only.
- Building the bundled dependencies requires CMake 3.24+ and a compiler setup.
In collections
Topics
FAQ
- What is UnrealRoboticsLab?
- An Unreal Engine 5 plugin that runs MuJoCo physics inside the editor and runtime, pairing accurate contact dynamics with Unreal's rendering. UnrealRoboticsLab (URLab) embeds the MuJoCo physics engine into Unreal Engine 5, so robots are simulated with MuJoCo's contact dynamics and rendered with Unreal's lighting, materials, and cameras. Physics runs on its own thread while Unreal handles rendering.
- Is UnrealRoboticsLab free to use? What license does it have?
- UnrealRoboticsLab is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is UnrealRoboticsLab still maintained?
- Actively maintained. The last commit to UnrealRoboticsLab was on Oct 11, 2026.
- What can I use UnrealRoboticsLab for?
- Simulating robot arms or legged robots with photorealistic camera output for vision training. Generating labeled RGB, depth, and segmentation data from simulated robot cameras. Prototyping robot control policies in Python or ROS 2 against a MuJoCo model inside Unreal. Replaying recorded robot episodes for debugging and evaluation.
- How do I install UnrealRoboticsLab?
- Clone the plugin with submodules into your project's Plugins folder: git clone --recurse-submodules https://github.com/URLab-Sim/UnrealRoboticsLab.git Build the native dependencies once (use build_all.ps1 on Windows): ./build_all.sh Build your Unreal Engine C++ project
- Where can I get UnrealRoboticsLab?
- The source code and installation instructions are on GitHub: https://github.com/URLab-Sim/UnrealRoboticsLab
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A ROS 2 Humble integration for the Franka Emika Panda arm that runs the same ros2_control controllers on real robots and in MuJoCo simulation.
A MuJoCo-based simulation stack for the Hello Robot Stretch mobile manipulator, with joint and base control, camera and lidar data.
Open-source robot simulator for modeling, programming and simulating robots, vehicles and mechanical systems.
An open-source, engine-independent simulator for drones, fixed-wing aircraft and ground vehicles, with optional Unreal Engine 5 rendering.
A collection of MuJoCo-based robotics reinforcement learning environments built on the Gymnasium API.