diff --git a/apps/isaacsim_4_5/rendering_modes/xr.kit b/apps/isaacsim_4_5/rendering_modes/xr.kit deleted file mode 100644 index 8cfc2c988d7..00000000000 --- a/apps/isaacsim_4_5/rendering_modes/xr.kit +++ /dev/null @@ -1,35 +0,0 @@ -rtx.translucency.enabled = true - -rtx.reflections.enabled = true -rtx.reflections.denoiser.enabled = true - -rtx.directLighting.sampledLighting.denoisingTechnique = 5 -rtx.directLighting.sampledLighting.enabled = true - -rtx.sceneDb.ambientLightIntensity = 1.0 - -rtx.shadows.enabled = true - -rtx.indirectDiffuse.enabled = true -rtx.indirectDiffuse.denoiser.enabled = true - -rtx.domeLight.upperLowerStrategy = 4 - -rtx.ambientOcclusion.enabled = true -rtx.ambientOcclusion.denoiserMode = 0 - -rtx.raytracing.subpixel.mode = 1 -rtx.raytracing.cached.enabled = true - -# DLSS frame gen does not yet support tiled camera well -rtx-transient.dlssg.enabled = false -rtx-transient.dldenoiser.enabled = true - -# Set the DLSS model -rtx.post.dlss.execMode = 2 # can be 0 (Performance), 1 (Balanced), 2 (Quality), or 3 (Auto) - -# Avoids replicator warning -rtx.pathtracing.maxSamplesPerLaunch = 1000000 - -# Avoids silent trimming of tiles -rtx.viewTile.limit = 1000000 diff --git a/apps/isaacsim_4_5/extension.toml b/apps/isaacsim_5/extension.toml similarity index 100% rename from apps/isaacsim_4_5/extension.toml rename to apps/isaacsim_5/extension.toml diff --git a/apps/isaacsim_4_5/isaaclab.python.headless.kit b/apps/isaacsim_5/isaaclab.python.headless.kit similarity index 83% rename from apps/isaacsim_4_5/isaaclab.python.headless.kit rename to apps/isaacsim_5/isaaclab.python.headless.kit index 944e284c452..9c9d2587e01 100644 --- a/apps/isaacsim_4_5/isaaclab.python.headless.kit +++ b/apps/isaacsim_5/isaaclab.python.headless.kit @@ -15,7 +15,7 @@ keywords = ["experience", "app", "isaaclab", "python", "headless"] app.versionFile = "${exe-path}/VERSION" app.folder = "${exe-path}/" app.name = "Isaac-Sim" -app.version = "4.5.0" +app.version = "5.1.0" ################################## # Omniverse related dependencies # @@ -28,6 +28,10 @@ app.version = "4.5.0" "usdrt.scenegraph" = {} "omni.kit.telemetry" = {} "omni.kit.loop" = {} +# this is needed to create physics material through CreatePreviewSurfaceMaterialPrim +"omni.kit.usd.mdl" = {} +# this is used for converting assets that have the wrong units +"omni.usd.metrics.assembler.ui" = {} [settings] app.content.emptyStageOnStart = false @@ -69,6 +73,12 @@ app.hydraEngine.waitIdle = false # app.hydra.aperture.conform = 4 # in 105.1 pixels are square by default omni.replicator.asyncRendering = false +### FSD +# this .kit file is used for headless, no-rendering cases. There won't be a scene delegate +# created, but setting useFSD to false here is done to not do full fabric population, but +# instead to minimal population +app.useFabricSceneDelegate = false + # Enable Iray and pxr by setting this to "rtx,iray,pxr" renderer.enabled = "rtx" @@ -81,6 +91,9 @@ app.vulkan = true # Set profiler backend to NVTX by default app.profilerBackend = "nvtx" +# Disables rate limit in runloop +app.runLoops.main.rateLimitEnabled=false + # hide NonToggleable Exts exts."omni.kit.window.extensions".hideNonToggleableExts = true exts."omni.kit.window.extensions".showFeatureOnly = false @@ -88,11 +101,14 @@ exts."omni.kit.window.extensions".showFeatureOnly = false # set the default ros bridge to disable on startup isaac.startup.ros_bridge_extension = "" +# disable the metrics assembler change listener, we don't want to do any runtime changes +metricsAssembler.changeListenerEnabled = false + # Extensions ############################### [settings.exts."omni.kit.registry.nucleus"] registries = [ - { name = "kit/default", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/106/shared" }, + { name = "kit/default", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/107/shared" }, { name = "kit/sdk", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/sdk/${kit_version_short}/${kit_git_hash}" }, { name = "kit/community", url = "https://dw290v42wisod.cloudfront.net/exts/kit/community" }, ] @@ -148,6 +164,8 @@ fabricUpdateTransformations = false fabricUpdateVelocities = false fabricUpdateForceSensors = false fabricUpdateJointStates = false +### When Direct GPU mode is enabled (suppressReadback=true) use direct interop between PhysX GPU and Fabric +fabricUseGPUInterop = true # Performance improvement resourcemonitor.timeBetweenQueries = 100 @@ -166,6 +184,7 @@ folders = [ "${exe-path}/../isaacsim/extscache", # isaac cache extensions for pip "${exe-path}/../isaacsim/extsPhysics", # isaac physics extensions for pip "${app}", # needed to find other app files + "${app}/../source", # needed to find extensions in Isaac Lab "${app}/../../source", # needed to find extensions in Isaac Lab ] @@ -197,6 +216,6 @@ enabled=true # Enable this for DLSS # set the S3 directory manually to the latest published S3 # note: this is done to ensure prior versions of Isaac Sim still use the latest assets [settings] -persistent.isaac.asset_root.default = "http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.5" -persistent.isaac.asset_root.cloud = "http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.5" -persistent.isaac.asset_root.nvidia = "http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.5" +persistent.isaac.asset_root.default = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" +persistent.isaac.asset_root.cloud = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" +persistent.isaac.asset_root.nvidia = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" diff --git a/apps/isaacsim_4_5/isaaclab.python.headless.rendering.kit b/apps/isaacsim_5/isaaclab.python.headless.rendering.kit similarity index 81% rename from apps/isaacsim_4_5/isaaclab.python.headless.rendering.kit rename to apps/isaacsim_5/isaaclab.python.headless.rendering.kit index cb1b4e8a25d..2f0119b9345 100644 --- a/apps/isaacsim_4_5/isaaclab.python.headless.rendering.kit +++ b/apps/isaacsim_5/isaaclab.python.headless.rendering.kit @@ -32,7 +32,12 @@ cameras_enabled = true app.versionFile = "${exe-path}/VERSION" app.folder = "${exe-path}/" app.name = "Isaac-Sim" -app.version = "4.5.0" +app.version = "5.1.0" + +### FSD +app.useFabricSceneDelegate = true +# Temporary, should be enabled by default in Kit soon +rtx.hydra.readTransformsFromFabricInRenderDelegate = true # Disable print outs on extension startup information # this only disables the app print_and_log function @@ -78,6 +83,9 @@ app.updateOrder.checkForHydraRenderComplete = 1000 app.renderer.waitIdle=true app.hydraEngine.waitIdle=true +# Forces serial processing for omni graph to avoid NCCL timeout hangs in distributed training +app.execution.debug.forceSerial = true + app.audio.enabled = false # Enable Vulkan - avoids torch+cu12 error on windows @@ -86,12 +94,18 @@ app.vulkan = true # Set profiler backend to NVTX by default app.profilerBackend = "nvtx" +# Disables rate limit in runloop +app.runLoops.main.rateLimitEnabled=false + # disable replicator orchestrator for better runtime perf exts."omni.replicator.core".Orchestrator.enabled = false +# disable the metrics assembler change listener, we don't want to do any runtime changes +metricsAssembler.changeListenerEnabled = false + [settings.exts."omni.kit.registry.nucleus"] registries = [ - { name = "kit/default", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/106/shared" }, + { name = "kit/default", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/107/shared" }, { name = "kit/sdk", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/sdk/${kit_version_short}/${kit_git_hash}" }, { name = "kit/community", url = "https://dw290v42wisod.cloudfront.net/exts/kit/community" }, ] @@ -118,6 +132,8 @@ fabricUpdateTransformations = false fabricUpdateVelocities = false fabricUpdateForceSensors = false fabricUpdateJointStates = false +### When Direct GPU mode is enabled (suppressReadback=true) use direct interop between PhysX GPU and Fabric +fabricUseGPUInterop = true # Register extension folder from this repo in kit [settings.app.exts] @@ -133,6 +149,7 @@ folders = [ "${exe-path}/../isaacsim/extscache", # isaac cache extensions for pip "${exe-path}/../isaacsim/extsPhysics", # isaac physics extensions for pip "${app}", # needed to find other app files + "${app}/../source", # needed to find extensions in Isaac Lab "${app}/../../source", # needed to find extensions in Isaac Lab ] @@ -140,6 +157,6 @@ folders = [ # set the S3 directory manually to the latest published S3 # note: this is done to ensure prior versions of Isaac Sim still use the latest assets [settings] -persistent.isaac.asset_root.default = "http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.5" -persistent.isaac.asset_root.cloud = "http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.5" -persistent.isaac.asset_root.nvidia = "http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.5" +persistent.isaac.asset_root.default = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" +persistent.isaac.asset_root.cloud = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" +persistent.isaac.asset_root.nvidia = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" diff --git a/apps/isaacsim_4_5/isaaclab.python.kit b/apps/isaacsim_5/isaaclab.python.kit similarity index 91% rename from apps/isaacsim_4_5/isaaclab.python.kit rename to apps/isaacsim_5/isaaclab.python.kit index 89db9ffb0d6..46d68aa3967 100644 --- a/apps/isaacsim_4_5/isaaclab.python.kit +++ b/apps/isaacsim_5/isaaclab.python.kit @@ -27,7 +27,6 @@ keywords = ["experience", "app", "usd"] "isaacsim.robot.manipulators" = {} "isaacsim.robot.policy.examples" = {} "isaacsim.robot.schema" = {} -"isaacsim.robot.surface_gripper" = {} "isaacsim.robot.wheeled_robots" = {} "isaacsim.sensors.camera" = {} "isaacsim.sensors.physics" = {} @@ -39,7 +38,7 @@ keywords = ["experience", "app", "usd"] # Isaac Sim Extra "isaacsim.asset.importer.mjcf" = {} -"isaacsim.asset.importer.urdf" = {} +"isaacsim.asset.importer.urdf" = {version = "2.4.31", exact = true} "omni.physx.bundle" = {} "omni.physx.tensors" = {} "omni.replicator.core" = {} @@ -57,7 +56,6 @@ keywords = ["experience", "app", "usd"] "omni.graph.ui_nodes" = {} "omni.hydra.engine.stats" = {} "omni.hydra.rtx" = {} -"omni.kit.loop" = {} "omni.kit.mainwindow" = {} "omni.kit.manipulator.camera" = {} "omni.kit.manipulator.prim" = {} @@ -65,15 +63,13 @@ keywords = ["experience", "app", "usd"] "omni.kit.material.library" = {} "omni.kit.menu.common" = { order = 1000 } "omni.kit.menu.create" = {} -"omni.kit.menu.edit" = {} -"omni.kit.menu.file" = {} "omni.kit.menu.stage" = {} "omni.kit.menu.utils" = {} "omni.kit.primitive.mesh" = {} "omni.kit.property.bundle" = {} "omni.kit.raycast.query" = {} -"omni.kit.stage_template.core" = {} "omni.kit.stagerecorder.bundle" = {} +"omni.kit.stage_template.core" = {} "omni.kit.telemetry" = {} "omni.kit.tool.asset_importer" = {} "omni.kit.tool.collect" = {} @@ -88,10 +84,11 @@ keywords = ["experience", "app", "usd"] "omni.kit.window.console" = {} "omni.kit.window.content_browser" = {} "omni.kit.window.property" = {} +"omni.kit.window.script_editor" = {} "omni.kit.window.stage" = {} "omni.kit.window.status_bar" = {} "omni.kit.window.toolbar" = {} -"omni.physx.stageupdate" = {} +"omni.physics.stageupdate" = {} "omni.rtx.settings.core" = {} "omni.uiaudio" = {} "omni.usd.metrics.assembler.ui" = {} @@ -130,6 +127,9 @@ omni.replicator.asyncRendering = false # Async rendering must be disabled for SD exts."omni.kit.test".includeTests = ["*isaac*"] # Add isaac tests to test runner foundation.verifyOsVersion.enabled = false +# disable the metrics assembler change listener, we don't want to do any runtime changes +metricsAssembler.changeListenerEnabled = false + # set the default ros bridge to disable on startup isaac.startup.ros_bridge_extension = "" @@ -161,7 +161,7 @@ show_menu_titles = true [settings.app] name = "Isaac-Sim" -version = "4.5.0" +version = "5.1.0" versionFile = "${exe-path}/VERSION" content.emptyStageOnStart = true fastShutdown = true @@ -241,6 +241,10 @@ omni.replicator.asyncRendering = false app.asyncRendering = false app.asyncRenderingLowLatency = false +### FSD +app.useFabricSceneDelegate = true +rtx.hydra.readTransformsFromFabricInRenderDelegate = true + # disable replicator orchestrator for better runtime perf exts."omni.replicator.core".Orchestrator.enabled = false @@ -251,7 +255,7 @@ outDirectory = "${data}" ############################### [settings.exts."omni.kit.registry.nucleus"] registries = [ - { name = "kit/default", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/106/shared" }, + { name = "kit/default", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/107/shared" }, { name = "kit/sdk", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/sdk/${kit_version_short}/${kit_git_hash}" }, { name = "kit/community", url = "https://dw290v42wisod.cloudfront.net/exts/kit/community" }, ] @@ -274,6 +278,7 @@ folders = [ "${exe-path}/../isaacsim/extscache", # isaac cache extensions for pip "${exe-path}/../isaacsim/extsPhysics", # isaac physics extensions for pip "${app}", # needed to find other app files + "${app}/../source", # needed to find extensions in Isaac Lab "${app}/../../source", # needed to find extensions in Isaac Lab ] @@ -291,11 +296,13 @@ fabricUpdateTransformations = false fabricUpdateVelocities = false fabricUpdateForceSensors = false fabricUpdateJointStates = false +### When Direct GPU mode is enabled (suppressReadback=true) use direct interop between PhysX GPU and Fabric +fabricUseGPUInterop = true # Asset path # set the S3 directory manually to the latest published S3 # note: this is done to ensure prior versions of Isaac Sim still use the latest assets [settings] -persistent.isaac.asset_root.default = "http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.5" -persistent.isaac.asset_root.cloud = "http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.5" -persistent.isaac.asset_root.nvidia = "http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.5" +persistent.isaac.asset_root.default = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" +persistent.isaac.asset_root.cloud = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" +persistent.isaac.asset_root.nvidia = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" diff --git a/apps/isaacsim_4_5/isaaclab.python.rendering.kit b/apps/isaacsim_5/isaaclab.python.rendering.kit similarity index 83% rename from apps/isaacsim_4_5/isaaclab.python.rendering.kit rename to apps/isaacsim_5/isaaclab.python.rendering.kit index df2ee90bf16..6eac2b8fc1e 100644 --- a/apps/isaacsim_4_5/isaaclab.python.rendering.kit +++ b/apps/isaacsim_5/isaaclab.python.rendering.kit @@ -33,7 +33,12 @@ cameras_enabled = true app.versionFile = "${exe-path}/VERSION" app.folder = "${exe-path}/" app.name = "Isaac-Sim" -app.version = "4.5.0" +app.version = "5.1.0" + +### FSD +app.useFabricSceneDelegate = true +# Temporary, should be enabled by default in Kit soon +rtx.hydra.readTransformsFromFabricInRenderDelegate = true # Disable print outs on extension startup information # this only disables the app print_and_log function @@ -84,6 +89,9 @@ app.audio.enabled = false # disable replicator orchestrator for better runtime perf exts."omni.replicator.core".Orchestrator.enabled = false +# disable the metrics assembler change listener, we don't want to do any runtime changes +metricsAssembler.changeListenerEnabled = false + [settings.physics] updateToUsd = false updateParticlesToUsd = false @@ -96,10 +104,12 @@ fabricUpdateTransformations = false fabricUpdateVelocities = false fabricUpdateForceSensors = false fabricUpdateJointStates = false +### When Direct GPU mode is enabled (suppressReadback=true) use direct interop between PhysX GPU and Fabric +fabricUseGPUInterop = true [settings.exts."omni.kit.registry.nucleus"] registries = [ - { name = "kit/default", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/106/shared" }, + { name = "kit/default", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/107/shared" }, { name = "kit/sdk", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/sdk/${kit_version_short}/${kit_git_hash}" }, { name = "kit/community", url = "https://dw290v42wisod.cloudfront.net/exts/kit/community" }, ] @@ -128,6 +138,7 @@ folders = [ "${exe-path}/../isaacsim/extscache", # isaac cache extensions for pip "${exe-path}/../isaacsim/extsPhysics", # isaac physics extensions for pip "${app}", # needed to find other app files + "${app}/../source", # needed to find extensions in Isaac Lab "${app}/../../source", # needed to find extensions in Isaac Lab ] @@ -135,6 +146,6 @@ folders = [ # set the S3 directory manually to the latest published S3 # note: this is done to ensure prior versions of Isaac Sim still use the latest assets [settings] -persistent.isaac.asset_root.default = "http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.5" -persistent.isaac.asset_root.cloud = "http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.5" -persistent.isaac.asset_root.nvidia = "http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.5" +persistent.isaac.asset_root.default = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" +persistent.isaac.asset_root.cloud = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" +persistent.isaac.asset_root.nvidia = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" diff --git a/apps/isaacsim_4_5/isaaclab.python.xr.openxr.headless.kit b/apps/isaacsim_5/isaaclab.python.xr.openxr.headless.kit similarity index 57% rename from apps/isaacsim_4_5/isaaclab.python.xr.openxr.headless.kit rename to apps/isaacsim_5/isaaclab.python.xr.openxr.headless.kit index 5839ae8acc3..bb6d377d012 100644 --- a/apps/isaacsim_4_5/isaaclab.python.xr.openxr.headless.kit +++ b/apps/isaacsim_5/isaaclab.python.xr.openxr.headless.kit @@ -15,7 +15,20 @@ keywords = ["experience", "app", "usd", "headless"] app.versionFile = "${exe-path}/VERSION" app.folder = "${exe-path}/" app.name = "Isaac-Sim" -app.version = "4.5.0" +app.version = "5.1.0" + +### FSD +app.useFabricSceneDelegate = true +# Temporary, should be enabled by default in Kit soon +rtx.hydra.readTransformsFromFabricInRenderDelegate = true + +# xr optimizations +xr.skipInputDeviceUSDWrites = true +'rtx-transient'.resourcemanager.enableTextureStreaming = false + +[settings.isaaclab] +# This is used to check that this experience file is loaded when using cameras +cameras_enabled = true [dependencies] "isaaclab.python.xr.openxr" = {} @@ -23,6 +36,11 @@ app.version = "4.5.0" [settings] xr.profile.ar.enabled = true +[settings.app.python] +# These disable the kit app from also printing out python output, which gets confusing +interceptSysStdOutput = false +logSysStdOutput = false + # Register extension folder from this repo in kit [settings.app.exts] folders = [ @@ -37,5 +55,11 @@ folders = [ "${exe-path}/../isaacsim/extscache", # isaac cache extensions for pip "${exe-path}/../isaacsim/extsPhysics", # isaac physics extensions for pip "${app}", # needed to find other app files + "${app}/../source", # needed to find extensions in Isaac Lab "${app}/../../source", # needed to find extensions in Isaac Lab ] + +[settings] +persistent.isaac.asset_root.default = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" +persistent.isaac.asset_root.cloud = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" +persistent.isaac.asset_root.nvidia = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" diff --git a/apps/isaacsim_4_5/isaaclab.python.xr.openxr.kit b/apps/isaacsim_5/isaaclab.python.xr.openxr.kit similarity index 60% rename from apps/isaacsim_4_5/isaaclab.python.xr.openxr.kit rename to apps/isaacsim_5/isaaclab.python.xr.openxr.kit index 24f4663c2e0..4c2e743262b 100644 --- a/apps/isaacsim_4_5/isaaclab.python.xr.openxr.kit +++ b/apps/isaacsim_5/isaaclab.python.xr.openxr.kit @@ -15,10 +15,11 @@ keywords = ["experience", "app", "usd"] app.versionFile = "${exe-path}/VERSION" app.folder = "${exe-path}/" app.name = "Isaac-Sim" -app.version = "4.5.0" +app.version = "5.1.0" ### async rendering settings -omni.replicator.asyncRendering = true +# omni.replicator.asyncRendering needs to be false for external camera rendering +omni.replicator.asyncRendering = false app.asyncRendering = true app.asyncRenderingLowLatency = true @@ -26,24 +27,45 @@ app.asyncRenderingLowLatency = true renderer.multiGpu.maxGpuCount = 16 renderer.gpuEnumeration.glInterop.enabled = true # Allow Kit XR OpenXR to render headless +### FSD +app.useFabricSceneDelegate = true +# Temporary, should be enabled by default in Kit soon +rtx.hydra.readTransformsFromFabricInRenderDelegate = true + +# xr optimizations +xr.skipInputDeviceUSDWrites = true +'rtx-transient'.resourcemanager.enableTextureStreaming = false + [dependencies] "isaaclab.python" = {} -"isaacsim.xr.openxr" = {} # Kit extensions "omni.kit.xr.system.openxr" = {} "omni.kit.xr.profile.ar" = {} +[settings.isaaclab] +# This is used to check that this experience file is loaded when using cameras +cameras_enabled = true + [settings] app.xr.enabled = true +# Set profiler backend to NVTX by default +app.profilerBackend = "nvtx" # xr settings xr.ui.enabled = false xr.depth.aov = "GBufferDepth" -defaults.xr.profile.ar.renderQuality = "off" defaults.xr.profile.ar.anchorMode = "custom anchor" rtx.rendermode = "RaytracedLighting" +persistent.xr.profile.ar.renderQuality = "performance" persistent.xr.profile.ar.render.nearPlane = 0.15 +xr.openxr.components."omni.kit.xr.openxr.ext.hand_tracking".enabled = true +xr.openxr.components."isaacsim.xr.openxr.hand_tracking".enabled = true + +[settings.app.python] +# These disable the kit app from also printing out python output, which gets confusing +interceptSysStdOutput = false +logSysStdOutput = false # Register extension folder from this repo in kit [settings.app.exts] @@ -59,6 +81,7 @@ folders = [ "${exe-path}/../isaacsim/extscache", # isaac cache extensions for pip "${exe-path}/../isaacsim/extsPhysics", # isaac physics extensions for pip "${app}", # needed to find other app files + "${app}/../source", # needed to find extensions in Isaac Lab "${app}/../../source", # needed to find extensions in Isaac Lab ] @@ -66,6 +89,6 @@ folders = [ # set the S3 directory manually to the latest published S3 # note: this is done to ensure prior versions of Isaac Sim still use the latest assets [settings] -persistent.isaac.asset_root.default = "http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.5" -persistent.isaac.asset_root.cloud = "http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.5" -persistent.isaac.asset_root.nvidia = "http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.5" +persistent.isaac.asset_root.default = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" +persistent.isaac.asset_root.cloud = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" +persistent.isaac.asset_root.nvidia = "https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1" diff --git a/apps/isaacsim_4_5/rendering_modes/balanced.kit b/apps/isaacsim_5/rendering_modes/balanced.kit similarity index 100% rename from apps/isaacsim_4_5/rendering_modes/balanced.kit rename to apps/isaacsim_5/rendering_modes/balanced.kit diff --git a/apps/isaacsim_5/rendering_modes/extension.toml b/apps/isaacsim_5/rendering_modes/extension.toml new file mode 100644 index 00000000000..f0668b9184d --- /dev/null +++ b/apps/isaacsim_5/rendering_modes/extension.toml @@ -0,0 +1 @@ +# This is not an extension diff --git a/apps/isaacsim_4_5/rendering_modes/performance.kit b/apps/isaacsim_5/rendering_modes/performance.kit similarity index 100% rename from apps/isaacsim_4_5/rendering_modes/performance.kit rename to apps/isaacsim_5/rendering_modes/performance.kit diff --git a/apps/isaacsim_4_5/rendering_modes/quality.kit b/apps/isaacsim_5/rendering_modes/quality.kit similarity index 100% rename from apps/isaacsim_4_5/rendering_modes/quality.kit rename to apps/isaacsim_5/rendering_modes/quality.kit diff --git a/apps/rendering_modes/balanced.kit b/apps/rendering_modes/balanced.kit index ee92625fd7e..be2b03c0323 100644 --- a/apps/rendering_modes/balanced.kit +++ b/apps/rendering_modes/balanced.kit @@ -1,19 +1,31 @@ -rtx.translucency.enabled = false - -rtx.reflections.enabled = false -rtx.reflections.denoiser.enabled = true - -# this will be ignored when RR (dldenoiser) is enabled -# rtx.directLighting.sampledLighting.denoisingTechnique = 0 -rtx.directLighting.sampledLighting.enabled = true +### THESE ARE RT1 SETTINGS ONLY ### +# rtx.translucency.enabled = false +# rtx.reflections.enabled = false +# rtx.reflections.denoiser.enabled = true +## this will be ignored when RR (dldenoiser) is enabled +## rtx.directLighting.sampledLighting.denoisingTechnique = 0 +# rtx.directLighting.sampledLighting.enabled = true +# rtx.indirectDiffuse.enabled = false +# rtx.indirectDiffuse.denoiser.enabled = true +############################################## + +### THESE ARE RT2 SETTINGS TO MATCH ABOVE PERFORMANCE SETTINGS ### +# these are needed if indirectDiffuse = false (this means GI false) - maxBounces needs to be 2 +rtx.rtpt.cached.enabled = false +rtx.rtpt.lightcache.cached.enabled = false +rtx.rtpt.translucency.virtualMotion.enabled = false +rtx.rtpt.maxBounces = 2 +rtx.rtpt.splitGlass = false +rtx.rtpt.splitClearcoat = false +rtx.rtpt.splitRoughReflection = true +# this gives slightly brighter image +rtx.rtpt.useAmbientOcclusionForAmbientLight = false +############################################## rtx.sceneDb.ambientLightIntensity = 1.0 rtx.shadows.enabled = true -rtx.indirectDiffuse.enabled = false -rtx.indirectDiffuse.denoiser.enabled = true - # rtx.domeLight.upperLowerStrategy = 3 rtx.ambientOcclusion.enabled = false @@ -24,6 +36,7 @@ rtx.raytracing.cached.enabled = true # DLSS frame gen does not yet support tiled camera well rtx-transient.dlssg.enabled = false + rtx-transient.dldenoiser.enabled = true # Set the DLSS model diff --git a/apps/rendering_modes/performance.kit b/apps/rendering_modes/performance.kit index 3cfe6e8c0e2..f991bd372bd 100644 --- a/apps/rendering_modes/performance.kit +++ b/apps/rendering_modes/performance.kit @@ -1,18 +1,30 @@ -rtx.translucency.enabled = false - -rtx.reflections.enabled = false -rtx.reflections.denoiser.enabled = false - -rtx.directLighting.sampledLighting.denoisingTechnique = 0 -rtx.directLighting.sampledLighting.enabled = false +### THESE ARE RT1 SETTINGS ONLY ### +# rtx.translucency.enabled = false +# rtx.reflections.enabled = false +# rtx.reflections.denoiser.enabled = false +# rtx.directLighting.sampledLighting.denoisingTechnique = 0 +# rtx.directLighting.sampledLighting.enabled = false +# rtx.indirectDiffuse.enabled = false +# rtx.indirectDiffuse.denoiser.enabled = false +############################################## + +### THESE ARE RT2 SETTINGS TO MATCH ABOVE PERFORMANCE SETTINGS ### +# these are needed if indirectDiffuse = false (this means GI false) - maxBounces needs to be 2 +rtx.rtpt.cached.enabled = false +rtx.rtpt.lightcache.cached.enabled = false +rtx.rtpt.translucency.virtualMotion.enabled = false +rtx.rtpt.maxBounces = 2 +rtx.rtpt.splitGlass = false +rtx.rtpt.splitClearcoat = false +rtx.rtpt.splitRoughReflection = true +# this gives slightly brighter image +rtx.rtpt.useAmbientOcclusionForAmbientLight = false +############################################## rtx.sceneDb.ambientLightIntensity = 1.0 rtx.shadows.enabled = true -rtx.indirectDiffuse.enabled = false -rtx.indirectDiffuse.denoiser.enabled = false - rtx.domeLight.upperLowerStrategy = 3 rtx.ambientOcclusion.enabled = false @@ -23,6 +35,7 @@ rtx.raytracing.cached.enabled = false # DLSS frame gen does not yet support tiled camera well rtx-transient.dlssg.enabled = false + rtx-transient.dldenoiser.enabled = false # Set the DLSS model diff --git a/apps/rendering_modes/quality.kit b/apps/rendering_modes/quality.kit index 8e966ddfd3b..b4460b0dca4 100644 --- a/apps/rendering_modes/quality.kit +++ b/apps/rendering_modes/quality.kit @@ -1,19 +1,30 @@ -rtx.translucency.enabled = true - -rtx.reflections.enabled = true -rtx.reflections.denoiser.enabled = true - -# this will be ignored when RR (dldenoiser) is enabled -# rtx.directLighting.sampledLighting.denoisingTechnique = 0 -rtx.directLighting.sampledLighting.enabled = true +### THESE ARE RT1 SETTINGS ONLY ### +# rtx.translucency.enabled = true +# rtx.reflections.enabled = true +# rtx.reflections.denoiser.enabled = true +## this will be ignored when RR (dldenoiser) is enabled +## rtx.directLighting.sampledLighting.denoisingTechnique = 0 +# rtx.directLighting.sampledLighting.enabled = true +# rtx.indirectDiffuse.enabled = true +# rtx.indirectDiffuse.denoiser.enabled = true +############################################## + +### THESE ARE RT2 SETTINGS ### +# maxBounces should be 3 if indirectDiffuse was true +rtx.rtpt.maxBounces = 3 +rtx.rtpt.cached.enabled = false +rtx.rtpt.lightcache.cached.enabled = false +rtx.rtpt.translucency.virtualMotion.enabled = false +rtx.rtpt.splitRoughReflection = true +# these are even more costly, we should only set them to true if noise is observed +# rtx.rtpt.splitGlass = true +# rtx.rtpt.splitClearcoat = true +############################################## rtx.sceneDb.ambientLightIntensity = 1.0 rtx.shadows.enabled = true -rtx.indirectDiffuse.enabled = true -rtx.indirectDiffuse.denoiser.enabled = true - # rtx.domeLight.upperLowerStrategy = 4 rtx.ambientOcclusion.enabled = true @@ -24,7 +35,9 @@ rtx.raytracing.cached.enabled = true # DLSS frame gen does not yet support tiled camera well rtx-transient.dlssg.enabled = false -rtx-transient.dldenoiser.enabled = true + +# RT2 only supports DLSS-RR +# rtx-transient.dldenoiser.enabled = true # Set the DLSS model rtx.post.dlss.execMode = 2 # can be 0 (Performance), 1 (Balanced), 2 (Quality), or 3 (Auto) diff --git a/source/isaaclab/isaaclab/app/app_launcher.py b/source/isaaclab/isaaclab/app/app_launcher.py index 153bfa74bfd..58c9fbb9602 100644 --- a/source/isaaclab/isaaclab/app/app_launcher.py +++ b/source/isaaclab/isaaclab/app/app_launcher.py @@ -702,8 +702,8 @@ def _resolve_experience_file(self, launcher_args: dict): isaaclab_app_exp_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), *[".."] * 4, "apps") # For Isaac Sim 4.5 compatibility, we use the 4.5 app files in a different folder # if launcher_args.get("use_isaacsim_45", False): - if self.is_isaac_sim_version_4_5(): - isaaclab_app_exp_path = os.path.join(isaaclab_app_exp_path, "isaacsim_4_5") + if self.is_isaac_sim_version_5(): + isaaclab_app_exp_path = os.path.join(isaaclab_app_exp_path, "isaacsim_5") if self._sim_experience_file == "": # check if the headless flag is set @@ -758,10 +758,6 @@ def _resolve_anim_recording_settings(self, launcher_args: dict): if recording_enabled: if self._headless: raise ValueError("Animation recording is not supported in headless mode.") - if self.is_isaac_sim_version_4_5(): - raise RuntimeError( - "Animation recording is not supported in Isaac Sim 4.5. Please update to Isaac Sim 5.0." - ) sys.argv += ["--enable", "omni.physx.pvd"] def _resolve_kit_args(self, launcher_args: dict): @@ -929,15 +925,15 @@ def _interrupt_signal_handle_callback(self, signal, frame): # raise the error for keyboard interrupt raise KeyboardInterrupt - def is_isaac_sim_version_4_5(self) -> bool: - if not hasattr(self, "_is_sim_ver_4_5"): + def is_isaac_sim_version_5(self) -> bool: + if not hasattr(self, "_is_sim_ver_5"): # 1) Try to read the VERSION file (for manual / binary installs) version_path = os.path.abspath(os.path.join(os.path.dirname(isaacsim.__file__), "../../VERSION")) if os.path.isfile(version_path): with open(version_path) as f: ver = f.readline().strip() - if ver.startswith("4.5"): - self._is_sim_ver_4_5 = True + if ver.startswith("5"): + self._is_sim_ver_5 = True return True # 2) Fall back to metadata (for pip installs) @@ -945,13 +941,13 @@ def is_isaac_sim_version_4_5(self) -> bool: try: ver = pkg_version("isaacsim") - if ver.startswith("4.5"): - self._is_sim_ver_4_5 = True + if ver.startswith("5"): + self._is_sim_ver_5 = True else: - self._is_sim_ver_4_5 = False + self._is_sim_ver_5 = False except Exception: - self._is_sim_ver_4_5 = False - return self._is_sim_ver_4_5 + self._is_sim_ver_5 = False + return self._is_sim_ver_5 def _hide_play_button(self, flag): """Hide/Unhide the play button in the toolbar. diff --git a/source/isaaclab/isaaclab/sim/simulation_cfg.py b/source/isaaclab/isaaclab/sim/simulation_cfg.py index 9cf7f71c369..7a5b30ea96b 100644 --- a/source/isaaclab/isaaclab/sim/simulation_cfg.py +++ b/source/isaaclab/isaaclab/sim/simulation_cfg.py @@ -311,6 +311,88 @@ class RenderCfg: This is set by the variable: ``/rtx/domeLight/upperLowerStrategy``. """ + max_bounces: int | None = None + """Maximum number of ray bounces for path tracing (RT2). Default is 2. + + For global illumination (indirect diffuse), this should be at least 3. + + This is set by the variable: ``/rtx/rtpt/maxBounces``. + """ + + split_glass: bool | None = None + """Enables separate glass ray splitting for improved glass rendering (RT2). Default is False. + + Enabling this can reduce noise on glass materials at the cost of performance. + + This is set by the variable: ``/rtx/rtpt/splitGlass``. + """ + + split_clearcoat: bool | None = None + """Enables separate clearcoat ray splitting (RT2). Default is False. + + Enabling this can reduce noise on clearcoat materials at the cost of performance. + + This is set by the variable: ``/rtx/rtpt/splitClearcoat``. + """ + + split_rough_reflection: bool | None = None + """Enables separate rough reflection ray splitting (RT2). Default is False. + + Enabling this can reduce noise on rough reflective materials at the cost of performance. + + This is set by the variable: ``/rtx/rtpt/splitRoughReflection``. + """ + + ambient_light_intensity: float | None = None + """Scene ambient light intensity. Default is 1.0. + + This is set by the variable: ``/rtx/sceneDb/ambientLightIntensity``. + """ + + ambient_occlusion_denoiser_mode: Literal[0, 1] | None = None + """Ambient occlusion denoiser mode. Default is 1. + + Valid values are: + + * 0: Higher quality denoising + * 1: Performance-oriented denoising + + This is set by the variable: ``/rtx/ambientOcclusion/denoiserMode``. + """ + + subpixel_mode: Literal[0, 1] | None = None + """Raytracing subpixel mode. Default is 0. + + Valid values are: + + * 0: Performance mode + * 1: Quality mode (better anti-aliasing) + + This is set by the variable: ``/rtx/raytracing/subpixel/mode``. + """ + + enable_cached_raytracing: bool | None = None + """Enables cached raytracing for improved performance. Default is True. + + This is set by the variable: ``/rtx/raytracing/cached/enabled``. + """ + + max_samples_per_launch: int | None = None + """Maximum samples per launch for path tracing. Default is 1000000. + + This setting helps avoid replicator warnings when using large tile counts. + + This is set by the variable: ``/rtx/pathtracing/maxSamplesPerLaunch``. + """ + + view_tile_limit: int | None = None + """Maximum number of view tiles. Default is 1000000. + + This setting helps avoid silent trimming of tiles. + + This is set by the variable: ``/rtx/viewTile/limit``. + """ + carb_settings: dict[str, Any] | None = None """A general dictionary for users to supply all carb rendering settings with native names. diff --git a/source/isaaclab/isaaclab/sim/simulation_context.py b/source/isaaclab/isaaclab/sim/simulation_context.py index 67f622ff946..9394641596c 100644 --- a/source/isaaclab/isaaclab/sim/simulation_context.py +++ b/source/isaaclab/isaaclab/sim/simulation_context.py @@ -708,6 +708,17 @@ def _apply_render_settings_from_cfg(self): # noqa: C901 "enable_shadows": "/rtx/shadows/enabled", "enable_ambient_occlusion": "/rtx/ambientOcclusion/enabled", "dome_light_upper_lower_strategy": "/rtx/domeLight/upperLowerStrategy", + "ambient_light_intensity": "/rtx/sceneDb/ambientLightIntensity", + "ambient_occlusion_denoiser_mode": "/rtx/ambientOcclusion/denoiserMode", + "subpixel_mode": "/rtx/raytracing/subpixel/mode", + "enable_cached_raytracing": "/rtx/raytracing/cached/enabled", + "max_samples_per_launch": "/rtx/pathtracing/maxSamplesPerLaunch", + "view_tile_limit": "/rtx/viewTile/limit", + # RT2 settings + "max_bounces": "/rtx/rtpt/maxBounces", + "split_glass": "/rtx/rtpt/splitGlass", + "split_clearcoat": "/rtx/rtpt/splitClearcoat", + "split_rough_reflection": "/rtx/rtpt/splitRoughReflection", } not_carb_settings = ["rendering_mode", "carb_settings", "antialiasing_mode"] @@ -733,9 +744,9 @@ def _apply_render_settings_from_cfg(self): # noqa: C901 # grab isaac lab apps path isaaclab_app_exp_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), *[".."] * 4, "apps") - # for Isaac Sim 4.5 compatibility, we use the 4.5 rendering mode app files in a different folder - if float(".".join(self._isaacsim_version[2])) < 5: - isaaclab_app_exp_path = os.path.join(isaaclab_app_exp_path, "isaacsim_4_5") + # for Isaac Sim 4.5 compatibility, we use the 5.X rendering mode app files in a different folder + if float(".".join(self._isaacsim_version[2])) < 6: + isaaclab_app_exp_path = os.path.join(isaaclab_app_exp_path, "isaacsim_5") # grab preset settings preset_filename = os.path.join(isaaclab_app_exp_path, f"rendering_modes/{rendering_mode}.kit") diff --git a/source/isaaclab/test/sim/test_simulation_render_config.py b/source/isaaclab/test/sim/test_simulation_render_config.py index 650cff46765..6965bddd817 100644 --- a/source/isaaclab/test/sim/test_simulation_render_config.py +++ b/source/isaaclab/test/sim/test_simulation_render_config.py @@ -108,8 +108,8 @@ def test_render_cfg_presets(): isaaclab_app_exp_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), *[".."] * 4, "apps") # for Isaac Sim 4.5 compatibility, we use the 4.5 rendering mode app files in a different folder isaac_sim_version = float(".".join(get_version()[2])) - if isaac_sim_version < 5: - isaaclab_app_exp_path = os.path.join(isaaclab_app_exp_path, "isaacsim_4_5") + if isaac_sim_version < 6: + isaaclab_app_exp_path = os.path.join(isaaclab_app_exp_path, "isaacsim_5") # grab preset settings preset_filename = os.path.join(isaaclab_app_exp_path, f"rendering_modes/{rendering_mode}.kit")