| name | asset-converter |
| description | Convert EmbodiedGen URDF assets to simulator-specific formats (USD/MJCF/URDF) using embodied_gen.data.asset_converter APIs. Use this skill whenever users ask to export assets for IsaacSim, MuJoCo, Genesis, IsaacGym, PyBullet, or SAPIEN, batch-convert URDF assets, or choose the correct converter/source_type per simulator. |
Asset Converter
Unified entry for simulator-targeted asset conversion using embodied_gen.data.asset_converter.
When To Use
Use this skill when users want to:
- Convert EmbodiedGen assets for IsaacSim (
USD) or MuJoCo/Genesis (MJCF).
- Batch-convert multiple URDF assets into simulator-ready outputs.
- Map simulator names to the correct target format and conversion strategy.
- Decide when conversion is unnecessary (URDF can be used directly).
Routing Rules (Core)
- IsaacSim -> convert to
USD.
- MuJoCo / Genesis -> convert to
MJCF (.xml).
- SAPIEN / IsaacGym / PyBullet -> use EmbodiedGen
.urdf directly (no conversion required).
Pre-checks
- Run from repository root with
embodiedgen environment active.
- Confirm input URDF path(s) exist.
- For USD conversion, ensure IsaacLab/IsaacSim conversion dependencies are available.
- Prefer list inputs for
urdf_files and target_dirs (same length, aligned by index).
Standard Python API Template
from embodied_gen.data.asset_converter import cvt_embodiedgen_asset_to_anysim
from embodied_gen.utils.enum import AssetType, SimAssetMapper
simulator_name = "mujoco"
asset_paths = cvt_embodiedgen_asset_to_anysim(
urdf_files=[
"outputs/demo_assets/remote_control/result/remote_control.urdf",
],
target_dirs=[
"outputs/demo_assets/remote_control/mjcf",
],
target_type=SimAssetMapper[simulator_name],
source_type=AssetType.URDF,
overwrite=True,
)
print(asset_paths)
Source Type Guidance
- For
MJCF target: prefer source_type=AssetType.URDF.
- For
USD target: use source_type=AssetType.MESH by default; AssetType.URDF path is also supported when needed.
- For direct-URDF simulators (
sapien, isaacgym, pybullet): skip conversion.
Direct Converter Template (Advanced)
from embodied_gen.data.asset_converter import AssetConverterFactory
from embodied_gen.utils.enum import AssetType
converter = AssetConverterFactory.create(
target_type=AssetType.USD,
source_type=AssetType.MESH,
)
with converter:
converter.convert(
"outputs/demo_assets/remote_control/result/remote_control.urdf",
"outputs/demo_assets/remote_control/usd/remote_control.usd",
)
Output Conventions
MJCF: <target_dir>/<asset_name>.xml
USD: <target_dir>/<asset_name>.usd
- API return:
{<input_urdf_path>: <converted_output_path>}
Failure Handling and Retry
- Unsupported conversion pair: verify
target_type + source_type mapping.
- Missing dependencies (USD path): install/activate IsaacLab + required USD stack.
- Missing output file: verify parent output directory permissions and path correctness.
- Batch mismatch: ensure
len(urdf_files) == len(target_dirs).