MuBlE: MuJoCo and Blender simulation Environment for task planning in Robotics Manipulation
September 12, 2026 · View on GitHub
Usage
To use the framework, run demo scripts, please follow the documentation
Export to robotsim
robotsim_export.py writes MuBlE scenes into the neutral handoff format read by
robotsim, a Blender-based simulator that
renders aligned photorealistic, line-art, object-index and metric-depth passes
from one viewpoint, and executes real control firmware against the simulated
plant.
The two projects make opposite trades — MuBlE spends its effort on contact fidelity and task structure, robotsim on the render modalities — so the handoff is more useful than a merge.
./robotsim_export.py demo_output/scene_generaion/NS_AP_scenes.json -o out/
./robotsim_export.py scenes.json --index 3 -o scene3.json
Each object carries its shape name, scale, orientation quaternion, MuBlE's own
3d_coords origin, the convex-hull decomposition from meshes/, and whether
its appearance was randomised for that scene. robotsim appends the authored
.blend from scene_generation/data/shapes for rendering and loads the hulls
into MuJoCo for collision, so both the image and the physics are MuBlE's rather
than an approximation.
Nothing in environment is imported at module scope, so exporting a generated
scene file needs neither robosuite, MuJoCo nor Blender installed.
Notes
- Object ids start at 1; 0 is background in robotsim's object-index pass.
- Only material slots named
Changableare overridden, matchingscene_generation/utils.add_material. The documentation indocs/muble/scene_gen.mdgives this as Changeable; the code does not, and the code is what runs. Matching the documented spelling silently repaints nothing. 3d_coordsis an object's mid-bottom, not its centre. The exporter emits both that (origin, for the real mesh) and the bounding-box centre (position, for consumers that only have the box).