Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

HEXFELLOW MUJOCO DRIVER

DOI              


📖 Overview

What is hex_driver_mujoco

hex_driver_mujoco is a Python library for MuJoCo robot simulation with a unified interface. It supports the following robot models:

Model Arm DOF Cameras Special Features
E3 Desktop 6 per arm (dual‑arm) 3 (head, left, right) Dual‑arm manipulation, per‑camera type config
Archer Y6 6 1 (head) MIT / joint position / Cartesian pose commands

The library runs each simulation in a background daemon thread, streams robot states and camera images via deque ring buffers, and exposes simple get_*_state / get_*_color_img / get_*_depth_img APIs. A callback variant is also available for each robot model.

What problem it solves

  • Unified simulation interface: Use the same API for different robot models (E3 Desktop, Archer Y6).
  • Background simulation: Each simulation runs in its own daemon thread; the main thread only reads the latest state when needed.
  • Low‑latency sharing: States and images are passed through deque buffers within the same process, avoiding serialization overhead.
  • Real‑time control: Supports joint position, Cartesian pose, and MIT commands; command dict field names (jnt_pos, jnt_vel, pose_pos, pose_quat, mit_kp, mit_kd, …) are consistent across robot models.
  • Callback support: Every robot model provides a *Callback class that accepts user‑defined callables for state and image streams.

Target users

  • Robotics researchers prototyping manipulation pipelines with MuJoCo simulations.
  • Developers who need a simple, consistent way to interface with simulated robots.
  • Anyone who wants to switch between different robot models without changing client code.

Project structure

hex_driver_mujoco/
├── hex_driver_mujoco/
│   ├── __init__.py                 # Package exports (all public classes)
│   ├── base.py                     # HexMujocoBase (abstract) & HexMujocoBaseParams
│   ├── mujoco_archer_y6/
│   │   ├── __init__.py
│   │   └── mujoco.py              # Archer Y6 simulation + callback + params
│   │   └── model/                 # MuJoCo model files (scene.xml, robot.xml, STL assets)
│   └── mujoco_e3_desktop/
│       ├── __init__.py
│       └── mujoco.py              # E3 Desktop simulation + callback + params
│       └── model/                 # MuJoCo model files (scene.xml, robot.xml, STL assets)
├── example/
│   ├── archer_y6_example.py
│   ├── archer_y6_callback_example.py
│   ├── e3_desktop_example.py
│   └── e3_desktop_callback_example.py
└── docs/
    ├── api.md                     # Full API reference
    └── example.md                 # Usage walkthroughs

📦 Installation

Requirements

  • Python ≥ 3.10
  • OS: Linux (macOS/Windows may work but are less tested)
  • Core dependencies:
    • hex_util_runtime ≥ 0.0.0, < 0.1.0
    • hex_util_robot ≥ 0.0.0, < 0.1.0
    • hex_util_urdf ≥ 0.0.0, < 0.1.0
    • hex_util_msg ≥ 0.0.0, < 0.1.0
    • opencv-python ≥ 4.10.0
    • mujoco ≥ 3.3.0

Install from PyPI

pip install hex_driver_mujoco

Install from Source

For those who need examples, you can install the package from source code with examples.

Note: We use uv to manage the Python environment. Please install it first.

  1. Clone and install in editable mode. The venv.sh script expects uv.

    git clone https://github.com/hexfellow/hex_driver_mujoco.git
    cd hex_driver_mujoco
    ./venv.sh
    
    • ./venv.sh — creates .venv, installs hex_driver_mujoco in editable mode.
  2. Activate before running examples:

    source .venv/bin/activate
    

📑 API

See API for details of all MuJoCo driver classes and parameters.

💡 Example

See Example for usage examples of each robot model.

📚 Citation

If you want to cite this project in your work, you can use the following BibTeX entry:

@software{hex_driver_mujoco,
  author    = {Dong, Zhaorui and Chen, Zejun},
  title     = {Hex Driver MuJoCo: A MuJoCo-Based Robot Simulation Driver},
  year      = {2025},
  publisher = {Zenodo},
  version   = {v1.0.0},
  doi       = {10.5281/zenodo.18309960},
  url       = {https://doi.org/10.5281/zenodo.18309960}
}

📄 License

Apache License 2.0. See LICENSE.

🌟 Star History

Star History Chart

👥 Contributors

Metadata

Release files for hex-driver-mujoco 0.1.1a5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hex-driver-mujoco 0.1.1a5
File Size Uploaded
hex_driver_mujoco-0.1.1a5.tar.gz 4.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for hex-driver-mujoco 0.1.1a5
File Interpreter ABI Platform
hex_driver_mujoco-0.1.1a5-py3-none-any.whl Python 3 none any Details

Total release size: 9.8 MB

Release files / hex_driver_mujoco-0.1.1a5.tar.gz

Download URL hex_driver_mujoco-0.1.1a5.tar.gz
Size 4.9 MB
Tags Source
SHA-256 checksum
How to use checksums
2a9007a55e612be1e35270e6801aa03d782aaeca06dcee81c933a2784dd16fa6
BLAKE2b-256 checksum
How to use checksums
f378341cd37f2ba1beeca0f0d29f221487a4c6cbe9261be9033f0be9d971295e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12

Release files / hex_driver_mujoco-0.1.1a5-py3-none-any.whl

Download URL hex_driver_mujoco-0.1.1a5-py3-none-any.whl
Size 4.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
9969fcd3f4ea0acbdc1746e79bd3c0c7c1da5983d2dae19f0a6e091ae05aad0a
BLAKE2b-256 checksum
How to use checksums
5cf20d5c1b0825388c6914c9d0de3bde9b7a4bf98f2f9b9f62eb34c9285dc0f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page