Skip to main content

MuJoCo-LiDAR: High-Performance LiDAR Simulation

PyPI Python

High-performance LiDAR simulation for MuJoCo with CPU, Taichi, JAX, and Warp backends.

中文文档 | Installation | Usage Guide | Development | Contributing

Features

  • Multi-Backend Support:
    • CPU: MuJoCo native mj_multiRay, no GPU required
    • Taichi: GPU parallel computing, supports Mesh and Hfield
    • JAX: GPU + MJX integration, batch simulation support
    • Warp: NVIDIA Warp ray casting, supports dynamic mesh scenes and batched scenes
  • High Performance: 1M+ rays/sec on GPU, real-time BVH construction
  • Multiple LiDAR Models: Velodyne (HDL-64E, VLP-32C), Livox (mid360, avia), Ouster (OS-128), custom patterns
  • ROS Integration: Ready-to-use ROS1/ROS2 examples

Quick Start

Installation

From PyPI:

# Python 3.10-3.13

# Basic (CPU only)
uv add mujoco-lidar

# With Taichi backend (GPU)
uv add "mujoco-lidar[taichi]"

# With JAX backend (GPU + batch)
uv add "mujoco-lidar[jax]"

# With Warp backend (GPU + dynamic mesh + batch)
uv add "mujoco-lidar[warp]"

From Source:

git clone https://github.com/TATP-233/MuJoCo-LiDAR.git
cd MuJoCo-LiDAR

# Python 3.10-3.13
uv sync --extra dev --extra examples

# Optional GPU backends
uv sync --extra dev --extra examples --extra taichi
uv sync --extra dev --extra examples --extra warp
uv sync --extra dev --extra examples --extra taichi --extra jax --extra warp

Run a non-ROS example after installing from source:

# Native MuJoCo viewer, CPU backend
uv run --extra dev --extra examples python examples/example_native.py --backend cpu

# Same example with the Warp backend, if installed
uv run --extra dev --extra examples --extra warp python examples/example_native.py --backend warp

# Unitree Go2, no ROS required
uv run --extra dev --extra examples --extra warp python examples/unitree_go2.py --backend warp --stand

See Installation Guide for details.

Basic Usage

import mujoco
from mujoco_lidar import MjLidarWrapper, scan_gen

# Load model
model = mujoco.MjModel.from_xml_path("scene.xml")
data = mujoco.MjData(model)

# Create LiDAR
lidar = MjLidarWrapper(
    model,
    site_name="lidar_site",
    backend="cpu",  # or "taichi", "jax", "warp"
    cutoff_dist=50.0
)

# Generate scan pattern
theta, phi = scan_gen.generate_HDL64()

# Trace rays
ranges = lidar.trace_rays(data, theta, phi)

See Usage Guide for more examples.

Performance

Backend Rays/sec Hardware Batch Support
CPU ~9M Native No
Taichi ~62M GPU Yes
JAX ~231M GPU Yes
Warp ~100M GPU Yes

Run benchmarks: make benchmark

Documentation

Examples

Development

git clone https://github.com/TATP-233/MuJoCo-LiDAR.git
cd MuJoCo-LiDAR
uv sync --extra dev

make test      # Run tests
make lint      # Check code quality
make benchmark # Run performance tests

See CONTRIBUTING.md for contribution guidelines.

License

MIT License - see LICENSE for details.

Citation

If you use this project in your research, please cite:

@article{jia2025discoverse,
      title={DISCOVERSE: Efficient Robot Simulation in Complex High-Fidelity Environments},
      author={Yufei Jia and Guangyu Wang and Yuhang Dong and Junzhe Wu and Yupei Zeng and Haonan Lin and Zifan Wang and Haizhou Ge and Weibin Gu and Chuxuan Li and Ziming Wang and Yunjie Cheng and Wei Sui and Ruqi Huang and Guyue Zhou},
      journal={arXiv preprint arXiv:2507.21981},
      year={2025},
      url={https://arxiv.org/abs/2507.21981}
}

Metadata

Release files for mujoco-lidar 0.3.5

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

Source distribution (sdist)

Source distribution for mujoco-lidar 0.3.5
File Size Uploaded Provenance
mujoco_lidar-0.3.5.tar.gz 39.3 MB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mujoco-lidar 0.3.5
File Interpreter ABI Platform
mujoco_lidar-0.3.5-py3-none-any.whl Python 3 none any Details

Total release size: 78.6 MB

Release files / mujoco_lidar-0.3.5.tar.gz

Download URL mujoco_lidar-0.3.5.tar.gz
Size 39.3 MB
Tags Source
SHA-256 checksum
How to use checksums
4c59f3fada7f768f537a1e8807ff5a5c1278f8fe9aedb7e99de12eaaa461bbbf
BLAKE2b-256 checksum
How to use checksums
6ce85719a42148575db8580556288bb9d09150ebf695ab704ea2d98aa3024d27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / mujoco_lidar-0.3.5-py3-none-any.whl

Download URL mujoco_lidar-0.3.5-py3-none-any.whl
Size 39.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
ddd8697b17e96e6f9f25a10b763e9f5c07da7d79749d1f3be45d59614937d7de
BLAKE2b-256 checksum
How to use checksums
57724ec4ed2ad01e860d209a52086668fd4e2c33d643be2651458bdd594bbc77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Security for mujoco-lidar 0.3.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for mujoco_lidar-0.3.5.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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