""" Isaac Sim 4.x / 5.x API compatibility layer. IS 5.0 renamed all `omni.isaac.*` modules to `isaacsim.*`. This module provides unified imports that work across both versions. Import from here instead of directly from omni.isaac.* or isaacsim.*. """ # ===== Core ===== try: from isaacsim.core.api import World except ImportError: from omni.isaac.core import World # ===== Controllers ===== try: from isaacsim.core.api.controllers.base_controller import BaseController except ImportError: from omni.isaac.core.controllers import BaseController # ===== Tasks ===== try: from isaacsim.core.api.tasks.base_task import BaseTask except ImportError: from omni.isaac.core.tasks import BaseTask # ===== Robots ===== try: from isaacsim.core.api.robots.robot import Robot except ImportError: from omni.isaac.core.robots.robot import Robot # ===== Prims (class names changed in IS 5.x) ===== try: from isaacsim.core.prims import SingleXFormPrim as XFormPrim except ImportError: from omni.isaac.core.prims import XFormPrim try: from isaacsim.core.prims import SingleRigidPrim as RigidPrim except ImportError: from omni.isaac.core.prims import RigidPrim try: from isaacsim.core.prims import SingleGeometryPrim as GeometryPrim except ImportError: from omni.isaac.core.prims import GeometryPrim try: from isaacsim.core.api.sensors.rigid_contact_view import RigidContactView except ImportError: from omni.isaac.core.prims import RigidContactView # ===== Articulations ===== try: from isaacsim.core.prims import SingleArticulation as Articulation except ImportError: from omni.isaac.core.articulations.articulation import Articulation # ===== Objects ===== try: from isaacsim.core.api.objects.cylinder import VisualCylinder except ImportError: from omni.isaac.core.objects.cylinder import VisualCylinder try: from isaacsim.core.api.objects import cuboid, sphere except ImportError: from omni.isaac.core.objects import cuboid, sphere # ===== Materials ===== try: from isaacsim.core.api.materials import PreviewSurface except ImportError: from omni.isaac.core.materials import PreviewSurface try: from isaacsim.core.api.materials import OmniPBR except ImportError: try: from omni.isaac.core.materials import OmniPBR except ImportError: from omni.isaac.core.materials.omni_pbr import OmniPBR try: from isaacsim.core.api.materials import OmniGlass except ImportError: from omni.isaac.core.materials import OmniGlass # ===== Scenes ===== try: from isaacsim.core.api.scenes.scene import Scene except ImportError: from omni.isaac.core.scenes.scene import Scene # ===== Utils: prims ===== try: from isaacsim.core.utils.prims import ( get_prim_at_path, create_prim, delete_prim, is_prim_path_valid, ) except ImportError: from omni.isaac.core.utils.prims import ( get_prim_at_path, create_prim, delete_prim, is_prim_path_valid, ) # ===== Utils: transformations ===== try: from isaacsim.core.utils.transformations import ( get_relative_transform, pose_from_tf_matrix, tf_matrix_from_pose, tf_matrices_from_poses, ) except ImportError: from omni.isaac.core.utils.transformations import ( get_relative_transform, pose_from_tf_matrix, tf_matrix_from_pose, tf_matrices_from_poses, ) # ===== Utils: stage ===== try: from isaacsim.core.utils.stage import ( get_current_stage, add_reference_to_stage, ) except ImportError: from omni.isaac.core.utils.stage import ( get_current_stage, add_reference_to_stage, ) # ===== Utils: xforms ===== try: from isaacsim.core.utils.xforms import get_world_pose except ImportError: from omni.isaac.core.utils.xforms import get_world_pose # ===== Utils: types ===== try: from isaacsim.core.utils.types import ArticulationAction except ImportError: from omni.isaac.core.utils.types import ArticulationAction # ===== Utils: viewports ===== try: from isaacsim.core.utils.viewports import set_camera_view except ImportError: from omni.isaac.core.utils.viewports import set_camera_view # ===== Utils: semantics ===== try: from isaacsim.core.utils.semantics import add_update_semantics except ImportError: from omni.isaac.core.utils.semantics import add_update_semantics # ===== Utils: string ===== try: from isaacsim.core.utils.string import find_unique_string_name except ImportError: from omni.isaac.core.utils.string import find_unique_string_name # ===== Utils: stage units ===== try: from isaacsim.core.utils.stage import get_stage_units except ImportError: from omni.isaac.core.utils.stage import get_stage_units # ===== Utils: extensions ===== try: from isaacsim.core.utils.extensions import enable_extension except ImportError: from omni.isaac.core.utils.extensions import enable_extension # ===== Utils: nucleus ===== try: from isaacsim.storage.native import get_assets_root_path as nucleus_path except ImportError: from omni.isaac.core.utils.nucleus import get_assets_root_path as nucleus_path # ===== Sensor: Camera ===== try: from isaacsim.sensors.camera import Camera except ImportError: from omni.isaac.sensor import Camera # ===== SimulationApp ===== try: from isaacsim import SimulationApp except ImportError: from omni.isaac.kit import SimulationApp