From aff03ee6862373340c5229f99aa29235f9afafc4 Mon Sep 17 00:00:00 2001 From: Pascal Roth Date: Wed, 19 Nov 2025 19:42:39 +0100 Subject: [PATCH 1/4] fixes --- source/isaaclab/isaaclab/sim/utils/stage.py | 41 ++++++++++----------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/source/isaaclab/isaaclab/sim/utils/stage.py b/source/isaaclab/isaaclab/sim/utils/stage.py index 171926ab8bf..4d4ee7e4fc8 100644 --- a/source/isaaclab/isaaclab/sim/utils/stage.py +++ b/source/isaaclab/isaaclab/sim/utils/stage.py @@ -7,14 +7,13 @@ import contextlib import logging import threading -import typing +from typing import Literal, Callable, Iterable from collections.abc import Generator import carb import omni import omni.kit.app from isaacsim.core.utils import stage as sim_stage -from isaacsim.core.utils.carb import get_carb_setting from isaacsim.core.version import get_version from omni.metrics.assembler.core import get_metrics_assembler_interface from omni.usd.commands import DeletePrimsCommand @@ -58,7 +57,7 @@ def attach_stage_to_usd_context(attaching_early: bool = False): If the stage is not in memory or rendering is not enabled, this function will return without attaching. Args: - attaching_early: Whether to attach the stage to the usd context before stage is created. Defaults to False. + Whether to attach the stage to the usd context before stage is created. Defaults to False. """ from isaacsim.core.simulation_manager import SimulationManager @@ -81,7 +80,7 @@ def attach_stage_to_usd_context(attaching_early: bool = False): # this carb flag is equivalent to if rendering is enabled carb_setting = carb.settings.get_settings() - is_rendering_enabled = get_carb_setting(carb_setting, "/physics/fabricUpdateTransformations") + is_rendering_enabled = carb_setting.get("/physics/fabricUpdateTransformations") # if rendering is not enabled, we don't need to attach it if not is_rendering_enabled: @@ -142,7 +141,7 @@ def use_stage(stage: Usd.Stage) -> Generator[None, None, None]: In Isaac Sim < 5.0, this is a no-op to maintain compatibility. Args: - stage: The stage to set temporarily. + The stage to set temporarily. Raises: AssertionError: If the stage is not a USD stage instance. @@ -243,7 +242,7 @@ def update_stage() -> None: # TODO: make a generic util for setting all layer properties -def set_stage_up_axis(axis: str = "z") -> None: +def set_stage_up_axis(axis: Literal["x", "y", "z"] = "z") -> None: """Change the up axis of the current stage Args: @@ -271,7 +270,7 @@ def get_stage_up_axis() -> str: """Get the current up-axis of USD stage. Returns: - str: The up-axis of the stage. + The up-axis of the stage. Example: @@ -286,11 +285,11 @@ def get_stage_up_axis() -> str: return UsdGeom.GetStageUpAxis(stage) -def clear_stage(predicate: typing.Callable[[str], bool] | None = None) -> None: +def clear_stage(predicate: Callable[[str], bool] | None = None) -> None: """Deletes all prims in the stage without populating the undo command buffer Args: - predicate: user defined function that takes a prim_path (str) as input and returns True/False if the prim + predicate: user defined function that takes a prim_path as input and returns True/False if the prim should/shouldn't be deleted. If predicate is None, a default is used that deletes all prims Example: @@ -445,7 +444,7 @@ def create_new_stage() -> Usd.Stage: """Create a new stage attached to the USD context. Returns: - Usd.Stage: The created USD stage. + The created USD stage. Example: @@ -493,13 +492,13 @@ def open_stage(usd_path: str) -> bool: """Open the given usd file and replace currently opened stage. Args: - usd_path (str): Path to the USD file to open. + usd_path: Path to the USD file to open. Raises: ValueError: When input path is not a supported file type by USD. Returns: - bool: True if operation is successful, otherwise false. + True if operation is successful, otherwise false. Example: @@ -523,14 +522,14 @@ def save_stage(usd_path: str, save_and_reload_in_place=True) -> bool: """Save usd file to path, it will be overwritten with the current stage Args: - usd_path (str): File path to save the current stage to + usd_path: File path to save the current stage to save_and_reload_in_place (bool, optional): use ``save_as_stage`` to save and reload the root layer in place. Defaults to True. Raises: ValueError: When input path is not a supported file type by USD. Returns: - bool: True if operation is successful, otherwise false. + True if operation is successful, otherwise false. Example: @@ -555,7 +554,7 @@ def save_stage(usd_path: str, save_and_reload_in_place=True) -> bool: return result -def close_stage(callback_fn: typing.Callable | None = None) -> bool: +def close_stage(callback_fn: Callable | None = None) -> bool: """Closes the current opened USD stage. .. note:: @@ -566,7 +565,7 @@ def close_stage(callback_fn: typing.Callable | None = None) -> bool: callback_fn: Callback function to call while closing. Defaults to None. Returns: - bool: True if operation is successful, otherwise false. + True if operation is successful, otherwise false. Example: @@ -597,7 +596,7 @@ def close_stage(callback_fn: typing.Callable | None = None) -> bool: return result -def traverse_stage(fabric=False) -> typing.Iterable: +def traverse_stage(fabric=False) -> Iterable: """Traverse through prims (hidden or not) in the opened Usd stage. Returns: @@ -630,7 +629,7 @@ def is_stage_loading() -> bool: """Convenience function to see if any files are being loaded. Returns: - bool: True if loading, False otherwise + True if loading, False otherwise Example: @@ -723,11 +722,11 @@ def get_next_free_path(path: str, parent: str = None) -> str: """Returns the next free usd path for the current stage Args: - path (str): path we want to check - parent (str, optional): Parent prim for the given path. Defaults to None. + path: path we want to check + parent: Parent prim for the given path. Defaults to None. Returns: - str: a new path that is guaranteed to not exist on the current stage + A new path that is guaranteed to not exist on the current stage Example: From 13b7d9d0f328b940bed99d8d5e911e86c4da1eff Mon Sep 17 00:00:00 2001 From: Pascal Roth Date: Wed, 19 Nov 2025 22:38:37 +0100 Subject: [PATCH 2/4] add fixme --- source/isaaclab/isaaclab/sim/utils/stage.py | 1 + 1 file changed, 1 insertion(+) diff --git a/source/isaaclab/isaaclab/sim/utils/stage.py b/source/isaaclab/isaaclab/sim/utils/stage.py index 4d4ee7e4fc8..9dabb071adb 100644 --- a/source/isaaclab/isaaclab/sim/utils/stage.py +++ b/source/isaaclab/isaaclab/sim/utils/stage.py @@ -26,6 +26,7 @@ # _context is a singleton design in isaacsim and for that reason # until we fully replace all modules that references the singleton(such as XformPrim, Prim ....), we have to point # that singleton to this _context +# FIXME: remove once split from isaac-sim is completed sim_stage._context = _context AXES_TOKEN = { From b777d410ed2fb72aaeea32082c57eeb1f65dae78 Mon Sep 17 00:00:00 2001 From: Pascal Roth Date: Sun, 23 Nov 2025 10:54:15 +0100 Subject: [PATCH 3/4] remove simulationcontext of IsaacSim --- scripts/tools/check_instanceable.py | 6 ++---- source/isaaclab/isaaclab/sim/utils/stage.py | 4 ++-- source/isaaclab/isaaclab/ui/widgets/line_plot.py | 3 ++- .../isaaclab/ui/widgets/manager_live_visualizer.py | 2 +- .../isaaclab/test/deps/isaacsim/check_ref_count.py | 5 +++-- .../deps/isaacsim/check_rep_texture_randomizer.py | 14 +++----------- source/isaaclab/test/devices/check_keyboard.py | 5 ++--- .../test/markers/test_visualization_markers.py | 4 ++-- .../isaaclab/test/sensors/check_contact_sensor.py | 4 ++-- source/isaaclab/test/sensors/check_imu_sensor.py | 13 ++----------- source/isaaclab/test/sensors/check_ray_caster.py | 14 ++------------ source/isaaclab/test/sim/test_mesh_converter.py | 4 ++-- source/isaaclab/test/sim/test_mjcf_converter.py | 4 ++-- source/isaaclab/test/sim/test_schemas.py | 4 ++-- .../isaaclab/test/sim/test_simulation_context.py | 7 ------- source/isaaclab/test/sim/test_spawn_from_files.py | 4 ++-- source/isaaclab/test/sim/test_spawn_lights.py | 4 ++-- source/isaaclab/test/sim/test_spawn_materials.py | 4 ++-- source/isaaclab/test/sim/test_spawn_meshes.py | 4 ++-- source/isaaclab/test/sim/test_spawn_sensors.py | 4 ++-- source/isaaclab/test/sim/test_spawn_shapes.py | 4 ++-- source/isaaclab/test/sim/test_spawn_wrappers.py | 4 ++-- source/isaaclab/test/sim/test_urdf_converter.py | 4 ++-- .../test/terrains/check_terrain_importer.py | 13 ++----------- 24 files changed, 47 insertions(+), 91 deletions(-) diff --git a/scripts/tools/check_instanceable.py b/scripts/tools/check_instanceable.py index a18c2207404..8abfd6f753f 100644 --- a/scripts/tools/check_instanceable.py +++ b/scripts/tools/check_instanceable.py @@ -65,11 +65,11 @@ import isaacsim.core.utils.prims as prim_utils -from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.cloner import GridCloner from isaacsim.core.utils.carb import set_carb_setting from isaacsim.core.utils.stage import get_current_stage +from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.utils import Timer from isaaclab.utils.assets import check_file_path @@ -80,9 +80,7 @@ def main(): if not check_file_path(args_cli.input): raise ValueError(f"Invalid file path: {args_cli.input}") # Load kit helper - sim = SimulationContext( - stage_units_in_meters=1.0, physics_dt=0.01, rendering_dt=0.01, backend="torch", device="cuda:0" - ) + sim = SimulationContext(SimulationCfg(dt=0.01)) # get stage handle stage = get_current_stage() diff --git a/source/isaaclab/isaaclab/sim/utils/stage.py b/source/isaaclab/isaaclab/sim/utils/stage.py index 9dabb071adb..e76ad7703c4 100644 --- a/source/isaaclab/isaaclab/sim/utils/stage.py +++ b/source/isaaclab/isaaclab/sim/utils/stage.py @@ -7,8 +7,8 @@ import contextlib import logging import threading -from typing import Literal, Callable, Iterable -from collections.abc import Generator +from collections.abc import Callable, Generator, Iterable +from typing import Literal import carb import omni diff --git a/source/isaaclab/isaaclab/ui/widgets/line_plot.py b/source/isaaclab/isaaclab/ui/widgets/line_plot.py index e31410e6b6b..0544a3feea9 100644 --- a/source/isaaclab/isaaclab/ui/widgets/line_plot.py +++ b/source/isaaclab/isaaclab/ui/widgets/line_plot.py @@ -11,7 +11,8 @@ from typing import TYPE_CHECKING import omni -from isaacsim.core.api.simulation_context import SimulationContext + +from isaaclab.sim import SimulationContext with suppress(ImportError): # isaacsim.gui is not available when running in headless mode. diff --git a/source/isaaclab/isaaclab/ui/widgets/manager_live_visualizer.py b/source/isaaclab/isaaclab/ui/widgets/manager_live_visualizer.py index bf4d43a4d2e..6d0fecee724 100644 --- a/source/isaaclab/isaaclab/ui/widgets/manager_live_visualizer.py +++ b/source/isaaclab/isaaclab/ui/widgets/manager_live_visualizer.py @@ -12,9 +12,9 @@ from typing import TYPE_CHECKING import omni.kit.app -from isaacsim.core.api.simulation_context import SimulationContext from isaaclab.managers import ManagerBase +from isaaclab.sim import SimulationContext from isaaclab.utils import configclass from .image_plot import ImagePlot diff --git a/source/isaaclab/test/deps/isaacsim/check_ref_count.py b/source/isaaclab/test/deps/isaacsim/check_ref_count.py index 0cd579b559b..88ae248dd6a 100644 --- a/source/isaaclab/test/deps/isaacsim/check_ref_count.py +++ b/source/isaaclab/test/deps/isaacsim/check_ref_count.py @@ -39,9 +39,10 @@ import torch # noqa: F401 import isaacsim.core.utils.prims as prim_utils -from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.prims import Articulation +from isaaclab.sim import SimulationCfg, SimulationContext + # import logger logger = logging.getLogger(__name__) import isaaclab.sim.utils.nucleus as nucleus_utils @@ -103,7 +104,7 @@ def main(): """Spawns the ANYmal robot and clones it using Isaac Sim Cloner API.""" # Load kit helper - sim = SimulationContext(physics_dt=0.005, rendering_dt=0.005, backend="torch", device="cuda:0") + sim = SimulationContext(SimulationCfg(dt=0.005)) # Enable hydra scene-graph instancing # this is needed to visualize the scene when flatcache is enabled diff --git a/source/isaaclab/test/deps/isaacsim/check_rep_texture_randomizer.py b/source/isaaclab/test/deps/isaacsim/check_rep_texture_randomizer.py index 5700b5c9044..51e5096eace 100644 --- a/source/isaaclab/test/deps/isaacsim/check_rep_texture_randomizer.py +++ b/source/isaaclab/test/deps/isaacsim/check_rep_texture_randomizer.py @@ -47,27 +47,19 @@ import isaacsim.core.utils.prims as prim_utils import omni.replicator.core as rep -from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.cloner import GridCloner from isaacsim.core.objects import DynamicSphere from isaacsim.core.prims import RigidPrim from isaacsim.core.utils.viewports import set_camera_view +from isaaclab.sim import SimulationCfg, SimulationContext + def main(): """Spawn a bunch of balls and randomly change their textures.""" # Load kit helper - sim_params = { - "use_gpu": True, - "use_gpu_pipeline": True, - "use_flatcache": True, # deprecated from Isaac Sim 2023.1 onwards - "use_fabric": True, # used from Isaac Sim 2023.1 onwards - "enable_scene_query_support": True, - } - sim = SimulationContext( - physics_dt=1.0 / 60.0, rendering_dt=1.0 / 60.0, sim_params=sim_params, backend="torch", device="cuda:0" - ) + sim = SimulationContext(SimulationCfg()) # Set main camera set_camera_view([0.0, 30.0, 25.0], [0.0, 0.0, -2.5]) diff --git a/source/isaaclab/test/devices/check_keyboard.py b/source/isaaclab/test/devices/check_keyboard.py index 711423d3e5e..8ed0f5e9e24 100644 --- a/source/isaaclab/test/devices/check_keyboard.py +++ b/source/isaaclab/test/devices/check_keyboard.py @@ -23,9 +23,8 @@ import ctypes -from isaacsim.core.api.simulation_context import SimulationContext - from isaaclab.devices import Se3Keyboard, Se3KeyboardCfg +from isaaclab.sim import SimulationCfg, SimulationContext def print_cb(): @@ -41,7 +40,7 @@ def quit_cb(): def main(): # Load kit helper - sim = SimulationContext(physics_dt=0.01, rendering_dt=0.01) + sim = SimulationContext(SimulationCfg(dt=0.01)) # Create teleoperation interface teleop_interface = Se3Keyboard(Se3KeyboardCfg(pos_sensitivity=0.1, rot_sensitivity=0.1)) diff --git a/source/isaaclab/test/markers/test_visualization_markers.py b/source/isaaclab/test/markers/test_visualization_markers.py index f6a41a6dcb8..8be4ddd8179 100644 --- a/source/isaaclab/test/markers/test_visualization_markers.py +++ b/source/isaaclab/test/markers/test_visualization_markers.py @@ -15,11 +15,11 @@ import torch import pytest -from isaacsim.core.api.simulation_context import SimulationContext import isaaclab.sim as sim_utils from isaaclab.markers import VisualizationMarkers, VisualizationMarkersCfg from isaaclab.markers.config import FRAME_MARKER_CFG, POSITION_GOAL_MARKER_CFG +from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.sim.utils import stage as stage_utils from isaaclab.utils.math import random_orientation from isaaclab.utils.timer import Timer @@ -33,7 +33,7 @@ def sim(): # Open a new stage stage_utils.create_new_stage() # Load kit helper - sim_context = SimulationContext(physics_dt=dt, rendering_dt=dt, backend="torch", device="cuda:0") + sim_context = SimulationContext(SimulationCfg(dt=dt)) yield sim_context # Cleanup sim_context.stop() diff --git a/source/isaaclab/test/sensors/check_contact_sensor.py b/source/isaaclab/test/sensors/check_contact_sensor.py index 190e94ebe78..00dd5b1b01b 100644 --- a/source/isaaclab/test/sensors/check_contact_sensor.py +++ b/source/isaaclab/test/sensors/check_contact_sensor.py @@ -37,13 +37,13 @@ import torch import isaacsim.core.utils.prims as prim_utils -from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.cloner import GridCloner from isaacsim.core.utils.viewports import set_camera_view import isaaclab.sim as sim_utils from isaaclab.assets import Articulation from isaaclab.sensors.contact_sensor import ContactSensor, ContactSensorCfg +from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.utils.timer import Timer ## @@ -76,7 +76,7 @@ def main(): """Spawns the ANYmal robot and clones it using Isaac Sim Cloner API.""" # Load kit helper - sim = SimulationContext(physics_dt=0.005, rendering_dt=0.005, backend="torch", device="cuda:0") + sim = SimulationContext(SimulationCfg(dt=0.005)) # Set main camera set_camera_view([2.5, 2.5, 2.5], [0.0, 0.0, 0.0]) diff --git a/source/isaaclab/test/sensors/check_imu_sensor.py b/source/isaaclab/test/sensors/check_imu_sensor.py index 652e2d95073..1a6f7ed3705 100644 --- a/source/isaaclab/test/sensors/check_imu_sensor.py +++ b/source/isaaclab/test/sensors/check_imu_sensor.py @@ -40,7 +40,6 @@ import carb import omni -from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.cloner import GridCloner from isaacsim.core.utils.viewports import set_camera_view from pxr import PhysxSchema @@ -49,6 +48,7 @@ import isaaclab.terrains as terrain_gen from isaaclab.assets import RigidObject, RigidObjectCfg from isaaclab.sensors.imu import Imu, ImuCfg +from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.terrains.config.rough import ROUGH_TERRAINS_CFG from isaaclab.terrains.terrain_importer import TerrainImporter from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR @@ -115,16 +115,7 @@ def main(): """Main function.""" # Load kit helper - sim_params = { - "use_gpu": True, - "use_gpu_pipeline": True, - "use_flatcache": True, # deprecated from Isaac Sim 2023.1 onwards - "use_fabric": True, # used from Isaac Sim 2023.1 onwards - "enable_scene_query_support": True, - } - sim = SimulationContext( - physics_dt=1.0 / 60.0, rendering_dt=1.0 / 60.0, sim_params=sim_params, backend="torch", device="cuda:0" - ) + sim = SimulationContext(SimulationCfg()) # Set main camera set_camera_view([0.0, 30.0, 25.0], [0.0, 0.0, -2.5]) diff --git a/source/isaaclab/test/sensors/check_ray_caster.py b/source/isaaclab/test/sensors/check_ray_caster.py index e1d3473ecc4..d4aa6c1c13a 100644 --- a/source/isaaclab/test/sensors/check_ray_caster.py +++ b/source/isaaclab/test/sensors/check_ray_caster.py @@ -42,7 +42,6 @@ import torch import isaacsim.core.utils.prims as prim_utils -from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.cloner import GridCloner from isaacsim.core.prims import RigidPrim from isaacsim.core.utils.viewports import set_camera_view @@ -50,6 +49,7 @@ import isaaclab.sim as sim_utils import isaaclab.terrains as terrain_gen from isaaclab.sensors.ray_caster import RayCaster, RayCasterCfg, patterns +from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.terrains.config.rough import ROUGH_TERRAINS_CFG from isaaclab.terrains.terrain_importer import TerrainImporter from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR @@ -89,17 +89,7 @@ def design_scene(sim: SimulationContext, num_envs: int = 2048): def main(): """Main function.""" - # Load kit helper - sim_params = { - "use_gpu": True, - "use_gpu_pipeline": True, - "use_flatcache": True, # deprecated from Isaac Sim 2023.1 onwards - "use_fabric": True, # used from Isaac Sim 2023.1 onwards - "enable_scene_query_support": True, - } - sim = SimulationContext( - physics_dt=1.0 / 60.0, rendering_dt=1.0 / 60.0, sim_params=sim_params, backend="torch", device="cuda:0" - ) + sim = SimulationContext(SimulationCfg()) # Set main camera set_camera_view([0.0, 30.0, 25.0], [0.0, 0.0, -2.5]) diff --git a/source/isaaclab/test/sim/test_mesh_converter.py b/source/isaaclab/test/sim/test_mesh_converter.py index 761d5bfa0a6..658f7b36079 100644 --- a/source/isaaclab/test/sim/test_mesh_converter.py +++ b/source/isaaclab/test/sim/test_mesh_converter.py @@ -20,9 +20,9 @@ import isaacsim.core.utils.prims as prim_utils import omni import pytest -from isaacsim.core.api.simulation_context import SimulationContext from pxr import UsdGeom, UsdPhysics +from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.sim.converters import MeshConverter, MeshConverterCfg from isaaclab.sim.schemas import schemas_cfg from isaaclab.sim.utils import stage as stage_utils @@ -66,7 +66,7 @@ def sim(): # Simulation time-step dt = 0.01 # Load kit helper - sim = SimulationContext(physics_dt=dt, rendering_dt=dt, backend="numpy") + sim = SimulationContext(SimulationCfg(dt=dt)) yield sim # stop simulation sim.stop() diff --git a/source/isaaclab/test/sim/test_mjcf_converter.py b/source/isaaclab/test/sim/test_mjcf_converter.py index 8160d12d4ce..f7beb6fdc6e 100644 --- a/source/isaaclab/test/sim/test_mjcf_converter.py +++ b/source/isaaclab/test/sim/test_mjcf_converter.py @@ -16,9 +16,9 @@ import isaacsim.core.utils.prims as prim_utils import pytest -from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.utils.extensions import enable_extension, get_extension_path_from_name +from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.sim.converters import MjcfConverter, MjcfConverterCfg from isaaclab.sim.utils import stage as stage_utils @@ -31,7 +31,7 @@ def test_setup_teardown(): # Setup: Create simulation context dt = 0.01 - sim = SimulationContext(physics_dt=dt, rendering_dt=dt, backend="numpy") + sim = SimulationContext(SimulationCfg(dt=dt)) # Setup: Create MJCF config enable_extension("isaacsim.asset.importer.mjcf") diff --git a/source/isaaclab/test/sim/test_schemas.py b/source/isaaclab/test/sim/test_schemas.py index aef0703c820..125ba036508 100644 --- a/source/isaaclab/test/sim/test_schemas.py +++ b/source/isaaclab/test/sim/test_schemas.py @@ -16,10 +16,10 @@ import isaacsim.core.utils.prims as prim_utils import pytest -from isaacsim.core.api.simulation_context import SimulationContext from pxr import UsdPhysics import isaaclab.sim.schemas as schemas +from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.sim.utils import find_global_fixed_joint_prim from isaaclab.sim.utils import stage as stage_utils from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR @@ -34,7 +34,7 @@ def setup_simulation(): # Simulation time-step dt = 0.1 # Load kit helper - sim = SimulationContext(physics_dt=dt, rendering_dt=dt, backend="numpy") + sim = SimulationContext(SimulationCfg(dt=dt)) # Set some default values for test arti_cfg = schemas.ArticulationRootPropertiesCfg( enabled_self_collisions=False, diff --git a/source/isaaclab/test/sim/test_simulation_context.py b/source/isaaclab/test/sim/test_simulation_context.py index f0f783463d2..6aae65c3573 100644 --- a/source/isaaclab/test/sim/test_simulation_context.py +++ b/source/isaaclab/test/sim/test_simulation_context.py @@ -16,7 +16,6 @@ import isaacsim.core.utils.prims as prim_utils import pytest -from isaacsim.core.api.simulation_context import SimulationContext as IsaacSimulationContext from isaaclab.sim import SimulationCfg, SimulationContext @@ -39,9 +38,7 @@ def test_singleton(): """Tests that the singleton is working.""" sim1 = SimulationContext() sim2 = SimulationContext() - sim3 = IsaacSimulationContext() assert sim1 is sim2 - assert sim1 is sim3 # try to delete the singleton sim2.clear_instance() @@ -49,11 +46,7 @@ def test_singleton(): # create new instance sim4 = SimulationContext() assert sim1 is not sim4 - assert sim3 is not sim4 assert sim1.instance() is sim4.instance() - assert sim3.instance() is sim4.instance() - # clear instance - sim3.clear_instance() @pytest.mark.isaacsim_ci diff --git a/source/isaaclab/test/sim/test_spawn_from_files.py b/source/isaaclab/test/sim/test_spawn_from_files.py index 5da16d81f5e..52f232fa64a 100644 --- a/source/isaaclab/test/sim/test_spawn_from_files.py +++ b/source/isaaclab/test/sim/test_spawn_from_files.py @@ -14,10 +14,10 @@ import isaacsim.core.utils.prims as prim_utils import pytest -from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.utils.extensions import enable_extension, get_extension_path_from_name import isaaclab.sim as sim_utils +from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.sim.utils import stage as stage_utils from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR @@ -30,7 +30,7 @@ def sim(): # Simulation time-step dt = 0.1 # Load kit helper - sim = SimulationContext(physics_dt=dt, rendering_dt=dt, backend="numpy") + sim = SimulationContext(SimulationCfg(dt=dt)) # Wait for spawning stage_utils.update_stage() diff --git a/source/isaaclab/test/sim/test_spawn_lights.py b/source/isaaclab/test/sim/test_spawn_lights.py index ee8446188cd..344d5d3c354 100644 --- a/source/isaaclab/test/sim/test_spawn_lights.py +++ b/source/isaaclab/test/sim/test_spawn_lights.py @@ -14,10 +14,10 @@ import isaacsim.core.utils.prims as prim_utils import pytest -from isaacsim.core.api.simulation_context import SimulationContext from pxr import UsdLux import isaaclab.sim as sim_utils +from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.sim.utils import stage as stage_utils from isaaclab.utils.string import to_camel_case @@ -30,7 +30,7 @@ def test_setup_teardown(): # Simulation time-step dt = 0.1 # Load kit helper - sim = SimulationContext(physics_dt=dt, rendering_dt=dt, backend="numpy") + sim = SimulationContext(SimulationCfg(dt=dt)) # Wait for spawning stage_utils.update_stage() diff --git a/source/isaaclab/test/sim/test_spawn_materials.py b/source/isaaclab/test/sim/test_spawn_materials.py index df2a5778831..cd3d4b394ac 100644 --- a/source/isaaclab/test/sim/test_spawn_materials.py +++ b/source/isaaclab/test/sim/test_spawn_materials.py @@ -14,10 +14,10 @@ import isaacsim.core.utils.prims as prim_utils import pytest -from isaacsim.core.api.simulation_context import SimulationContext from pxr import UsdPhysics, UsdShade import isaaclab.sim as sim_utils +from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.sim.utils import stage as stage_utils from isaaclab.utils.assets import NVIDIA_NUCLEUS_DIR @@ -27,7 +27,7 @@ def sim(): """Create a simulation context.""" stage_utils.create_new_stage() dt = 0.1 - sim = SimulationContext(physics_dt=dt, rendering_dt=dt, backend="numpy") + sim = SimulationContext(SimulationCfg(dt=dt)) stage_utils.update_stage() yield sim sim.stop() diff --git a/source/isaaclab/test/sim/test_spawn_meshes.py b/source/isaaclab/test/sim/test_spawn_meshes.py index bc65bb4923b..71b7e459641 100644 --- a/source/isaaclab/test/sim/test_spawn_meshes.py +++ b/source/isaaclab/test/sim/test_spawn_meshes.py @@ -14,9 +14,9 @@ import isaacsim.core.utils.prims as prim_utils import pytest -from isaacsim.core.api.simulation_context import SimulationContext import isaaclab.sim as sim_utils +from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.sim.utils import stage as stage_utils @@ -28,7 +28,7 @@ def sim(): # Simulation time-step dt = 0.1 # Load kit helper - sim = SimulationContext(physics_dt=dt, rendering_dt=dt, device="cuda:0") + sim = SimulationContext(SimulationCfg(dt=dt)) # Wait for spawning stage_utils.update_stage() yield sim diff --git a/source/isaaclab/test/sim/test_spawn_sensors.py b/source/isaaclab/test/sim/test_spawn_sensors.py index 8896d669b31..6cc40cd38ae 100644 --- a/source/isaaclab/test/sim/test_spawn_sensors.py +++ b/source/isaaclab/test/sim/test_spawn_sensors.py @@ -14,9 +14,9 @@ import isaacsim.core.utils.prims as prim_utils import pytest -from isaacsim.core.api.simulation_context import SimulationContext import isaaclab.sim as sim_utils +from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.sim.spawners.sensors.sensors import CUSTOM_FISHEYE_CAMERA_ATTRIBUTES, CUSTOM_PINHOLE_CAMERA_ATTRIBUTES from isaaclab.sim.utils import stage as stage_utils from isaaclab.utils.string import to_camel_case @@ -27,7 +27,7 @@ def sim(): """Create a simulation context.""" stage_utils.create_new_stage() dt = 0.1 - sim = SimulationContext(physics_dt=dt, rendering_dt=dt, backend="numpy") + sim = SimulationContext(SimulationCfg(dt=dt)) stage_utils.update_stage() yield sim sim.stop() diff --git a/source/isaaclab/test/sim/test_spawn_shapes.py b/source/isaaclab/test/sim/test_spawn_shapes.py index 970be4a47f9..6843055c568 100644 --- a/source/isaaclab/test/sim/test_spawn_shapes.py +++ b/source/isaaclab/test/sim/test_spawn_shapes.py @@ -14,9 +14,9 @@ import isaacsim.core.utils.prims as prim_utils import pytest -from isaacsim.core.api.simulation_context import SimulationContext import isaaclab.sim as sim_utils +from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.sim.utils import stage as stage_utils @@ -25,7 +25,7 @@ def sim(): """Create a simulation context.""" stage_utils.create_new_stage() dt = 0.1 - sim = SimulationContext(physics_dt=dt, rendering_dt=dt, backend="numpy") + sim = SimulationContext(SimulationCfg(dt=dt)) stage_utils.update_stage() yield sim sim.stop() diff --git a/source/isaaclab/test/sim/test_spawn_wrappers.py b/source/isaaclab/test/sim/test_spawn_wrappers.py index 2449cd5ad85..7e207d99323 100644 --- a/source/isaaclab/test/sim/test_spawn_wrappers.py +++ b/source/isaaclab/test/sim/test_spawn_wrappers.py @@ -14,9 +14,9 @@ import isaacsim.core.utils.prims as prim_utils import pytest -from isaacsim.core.api.simulation_context import SimulationContext import isaaclab.sim as sim_utils +from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.sim.utils import stage as stage_utils from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR @@ -26,7 +26,7 @@ def sim(): """Create a simulation context.""" stage_utils.create_new_stage() dt = 0.1 - sim = SimulationContext(physics_dt=dt, rendering_dt=dt, backend="numpy") + sim = SimulationContext(SimulationCfg(dt=dt)) stage_utils.update_stage() yield sim sim.stop() diff --git a/source/isaaclab/test/sim/test_urdf_converter.py b/source/isaaclab/test/sim/test_urdf_converter.py index 15ba6d66b3c..d8437df26fe 100644 --- a/source/isaaclab/test/sim/test_urdf_converter.py +++ b/source/isaaclab/test/sim/test_urdf_converter.py @@ -17,10 +17,10 @@ import isaacsim.core.utils.prims as prim_utils import pytest -from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.prims import Articulation from isaacsim.core.utils.extensions import enable_extension, get_extension_path_from_name +from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.sim.converters import UrdfConverter, UrdfConverterCfg from isaaclab.sim.utils import stage as stage_utils @@ -44,7 +44,7 @@ def sim_config(): # Simulation time-step dt = 0.01 # Load kit helper - sim = SimulationContext(physics_dt=dt, rendering_dt=dt, stage_units_in_meters=1.0, backend="numpy") + sim = SimulationContext(SimulationCfg(dt=dt)) yield sim, config # Teardown sim.stop() diff --git a/source/isaaclab/test/terrains/check_terrain_importer.py b/source/isaaclab/test/terrains/check_terrain_importer.py index 2de8b457e32..ae972c4eaad 100644 --- a/source/isaaclab/test/terrains/check_terrain_importer.py +++ b/source/isaaclab/test/terrains/check_terrain_importer.py @@ -70,7 +70,6 @@ from isaacsim.core.api.materials import PhysicsMaterial from isaacsim.core.api.materials.preview_surface import PreviewSurface from isaacsim.core.api.objects import DynamicSphere -from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.cloner import GridCloner from isaacsim.core.prims import RigidPrim, SingleGeometryPrim, SingleRigidPrim from isaacsim.core.utils.extensions import enable_extension @@ -78,6 +77,7 @@ import isaaclab.sim as sim_utils import isaaclab.terrains as terrain_gen +from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.terrains.config.rough import ROUGH_TERRAINS_CFG from isaaclab.terrains.terrain_importer import TerrainImporter from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR @@ -89,16 +89,7 @@ def main(): """Generates a terrain from isaaclab.""" # Load kit helper - sim_params = { - "use_gpu": True, - "use_gpu_pipeline": True, - "use_flatcache": True, - "use_fabric": True, - "enable_scene_query_support": True, - } - sim = SimulationContext( - physics_dt=1.0 / 60.0, rendering_dt=1.0 / 60.0, sim_params=sim_params, backend="torch", device="cuda:0" - ) + sim = SimulationContext(SimulationCfg()) # Set main camera set_camera_view([0.0, 30.0, 25.0], [0.0, 0.0, -2.5]) From e71ad7d6308f58443853a9b2a804d27557f59b5b Mon Sep 17 00:00:00 2001 From: Pascal Roth Date: Sun, 23 Nov 2025 18:33:01 +0100 Subject: [PATCH 4/4] changes from review --- source/isaaclab/test/deps/isaacsim/check_ref_count.py | 5 ++--- source/isaaclab/test/terrains/check_terrain_importer.py | 3 +-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/source/isaaclab/test/deps/isaacsim/check_ref_count.py b/source/isaaclab/test/deps/isaacsim/check_ref_count.py index 88ae248dd6a..0cd579b559b 100644 --- a/source/isaaclab/test/deps/isaacsim/check_ref_count.py +++ b/source/isaaclab/test/deps/isaacsim/check_ref_count.py @@ -39,10 +39,9 @@ import torch # noqa: F401 import isaacsim.core.utils.prims as prim_utils +from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.prims import Articulation -from isaaclab.sim import SimulationCfg, SimulationContext - # import logger logger = logging.getLogger(__name__) import isaaclab.sim.utils.nucleus as nucleus_utils @@ -104,7 +103,7 @@ def main(): """Spawns the ANYmal robot and clones it using Isaac Sim Cloner API.""" # Load kit helper - sim = SimulationContext(SimulationCfg(dt=0.005)) + sim = SimulationContext(physics_dt=0.005, rendering_dt=0.005, backend="torch", device="cuda:0") # Enable hydra scene-graph instancing # this is needed to visualize the scene when flatcache is enabled diff --git a/source/isaaclab/test/terrains/check_terrain_importer.py b/source/isaaclab/test/terrains/check_terrain_importer.py index ae972c4eaad..394cf1575ee 100644 --- a/source/isaaclab/test/terrains/check_terrain_importer.py +++ b/source/isaaclab/test/terrains/check_terrain_importer.py @@ -73,7 +73,6 @@ from isaacsim.core.cloner import GridCloner from isaacsim.core.prims import RigidPrim, SingleGeometryPrim, SingleRigidPrim from isaacsim.core.utils.extensions import enable_extension -from isaacsim.core.utils.viewports import set_camera_view import isaaclab.sim as sim_utils import isaaclab.terrains as terrain_gen @@ -91,7 +90,7 @@ def main(): # Load kit helper sim = SimulationContext(SimulationCfg()) # Set main camera - set_camera_view([0.0, 30.0, 25.0], [0.0, 0.0, -2.5]) + sim.set_camera_view(eye=(0.0, 30.0, 25.0), target=(0.0, 0.0, -2.5)) # Parameters num_balls = 2048