embodiedgen/docs/tutorials/any_simulators.md
2025-11-06 16:00:24 +08:00

64 lines
2.5 KiB
Markdown

# 🎮 Use EmbodiedGen in Any Simulator
Leverage **EmbodiedGen-generated assets** with *accurate physical collisions* and *consistent visual appearance* across major simulation engines — **IsaacSim**, **MuJoCo**, **Genesis**, **PyBullet**, **IsaacGym**, and **SAPIEN**.
!!! tip "Universal Compatibility"
EmbodiedGen assets follow **standardized URDF semantics** with **physically consistent collision meshes**,
enabling seamless loading across multiple simulation frameworks — no manual editing needed.
---
## 🧩 Supported Simulators
| Simulator | Conversion Class |
|------------|------------------|
| [IsaacSim](https://github.com/isaac-sim/IsaacSim) | `MeshtoUSDConverter` |
| [MuJoCo](https://github.com/google-deepmind/mujoco) / [Genesis](https://github.com/Genesis-Embodied-AI/Genesis) | `MeshtoMJCFConverter` |
| [SAPIEN](https://github.com/haosulab/SAPIEN) / [IsaacGym](https://github.com/isaac-sim/IsaacGymEnvs) / [PyBullet](https://github.com/bulletphysics/bullet3) | `.urdf` generated by EmbodiedGen can be used **directly** |
!!! note "Simulator Integration Overview"
This table summarizes the compatibility of EmbodiedGen assets with various simulators:
| Simulator | Supported Format | Notes |
|-----------|-----------------|-------|
| IsaacSim | USD / .usda | Use `MeshtoUSDConverter` to convert mesh to USD format. |
| MuJoCo | MJCF (.xml) | Use `MeshtoMJCFConverter` for physics-ready assets. |
| Genesis | MJCF (.xml) | Same as MuJoCo; fully compatible with Genesis scenes. |
| SAPIEN | URDF (.urdf) | Can directly load EmbodiedGen `.urdf` assets. |
| IsaacGym | URDF (.urdf) | Directly usable. |
| PyBullet | URDF (.urdf) | Directly usable. |
---
## 🧱 Example: Conversion to Target Simulator
```python
from embodied_gen.data.asset_converter import SimAssetMapper, cvt_embodiedgen_asset_to_anysim
from typing import Literal
simulator_name: Literal[
"isaacsim",
"isaacgym",
"genesis",
"pybullet",
"sapien3",
"mujoco",
] = "mujoco"
dst_asset_path = cvt_embodiedgen_asset_to_anysim(
urdf_files=[
"path1_to_embodiedgen_asset/asset.urdf",
"path2_to_embodiedgen_asset/asset.urdf",
],
target_type=SimAssetMapper[simulator_name],
source_type=AssetType.MESH,
overwrite=True,
)
```
<img src="/EmbodiedGen/assets/simulators_collision.jpg" alt="simulators_collision" width="800">
Collision and visualization mesh across simulators, showing consistent geometry and material fidelity.