# 🎮 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 cvt_embodiedgen_asset_to_anysim
from embodied_gen.utils.enum import AssetType, SimAssetMapper
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_dirs=[
        "path1_to_target_dir/asset.usd",
        "path2_to_target_dir/asset.usd",
    ],
    target_type=SimAssetMapper[simulator_name],
    source_type=AssetType.MESH,
    overwrite=True,
)
```

<img src="../assets/simulators_collision.jpg" alt="simulators_collision" width="800">

Collision and visualization mesh across simulators, showing consistent geometry and material fidelity.
