import os from pathlib import Path from huggingface_hub import snapshot_download def make_env(n_envs: int = 1, use_async_envs: bool = False): """ Create vectorized environments for leisaac task. Bi-arm direct: pick torus and cuboid into the box (2 objects). Args: n_envs: Number of parallel environments use_async_envs: Whether to use AsyncVectorEnv or SyncVectorEnv (not use now) Returns: ManagerBasedRLEnv or DirectRLEnv inherit from gym.Env implemented in IsaacLab """ # Scene/robot assets live on the upstream Hub repo; materialize them next to this script so # thin forks (e.g. kd-forge/leisaac_env with only envs/*.py) still resolve LEISAAC_ASSETS_ROOT. repo_root = Path(__file__).resolve().parent.parent assets_root = repo_root / "assets" snapshot_download( repo_id="kd-forge/leisaac_env", local_dir=str(repo_root), allow_patterns=["assets/**"], ) os.environ["LEISAAC_ASSETS_ROOT"] = str(assets_root) from isaaclab.app import AppLauncher _ = AppLauncher({"enable_cameras": True}) from leisaac.utils.envhub_utils import export_env return export_env( "LeIsaac-SO101-CleanToyTable-2Objects-v0", device="cuda:0", num_envs=n_envs, )