Commit 12d46410 authored by Kelly Guo's avatar Kelly Guo Committed by Kelly Guo

Cleans up app file and updates livestream options (#186)

# Description

This PR cleans up settings applied in the app files and aligns them with
settings in Isaac Sim 4.5. In addition, new livestream versions and
documentation are updated to reflected changes in Isaac Sim 4.5.

## Type of change

<!-- As you go through the list, delete the ones that are not
applicable. -->

- Bug fix (non-breaking change which fixes an issue)
- This change requires a documentation update

## Checklist

- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] I have updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [ ] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there

<!--
As you go through the checklist above, you can mark something as done by
putting an x character in it

For example,
- [x] I have done this task
- [ ] I have not done this task
-->
parent da74b998
...@@ -280,23 +280,6 @@ The container defaults to ``FastRTPS``, but ``CylconeDDS`` is also supported. Ea ...@@ -280,23 +280,6 @@ The container defaults to ``FastRTPS``, but ``CylconeDDS`` is also supported. Ea
:language: bash :language: bash
Known Issues
------------
WebRTC Streaming
~~~~~~~~~~~~~~~~
When streaming the GUI from Isaac Sim, there are `several streaming clients`_ available. There is a `known issue`_ when
attempting to use WebRTC streaming client on Google Chrome and Safari while running Isaac Sim inside a container.
To avoid this problem, we suggest using the Native Streaming Client or using the
Mozilla Firefox browser on which WebRTC works.
Streaming is the only supported method for visualizing the Isaac GUI from within the container. The Omniverse Streaming Client
is freely available from the Omniverse app, and is easy to use. The other streaming methods similarly require only a web browser.
If users want to use X11 forwarding in order to have the apps behave as local GUI windows, they can uncomment the relevant portions
in docker-compose.yaml.
.. _`NVIDIA Omniverse EULA`: https://docs.omniverse.nvidia.com/platform/latest/common/NVIDIA_Omniverse_License_Agreement.html .. _`NVIDIA Omniverse EULA`: https://docs.omniverse.nvidia.com/platform/latest/common/NVIDIA_Omniverse_License_Agreement.html
.. _`container installation`: https://docs.omniverse.nvidia.com/isaacsim/latest/installation/install_container.html .. _`container installation`: https://docs.omniverse.nvidia.com/isaacsim/latest/installation/install_container.html
.. _`Docker website`: https://docs.docker.com/desktop/install/linux-install/ .. _`Docker website`: https://docs.docker.com/desktop/install/linux-install/
......
...@@ -136,11 +136,11 @@ We will now run the example script: ...@@ -136,11 +136,11 @@ We will now run the example script:
.. code-block:: console .. code-block:: console
LIVESTREAM=1 ./isaaclab.sh -p source/standalone/tutorials/00_sim/launch_app.py --size 0.5 LIVESTREAM=2 ./isaaclab.sh -p source/standalone/tutorials/00_sim/launch_app.py --size 0.5
This will spawn a 0.5m\ :sup:`3` volume cuboid in the simulation. No GUI will appear, equivalent This will spawn a 0.5m\ :sup:`3` volume cuboid in the simulation. No GUI will appear, equivalent
to if we had passed the ``--headless`` flag because headlessness is implied by our ``LIVESTREAM`` to if we had passed the ``--headless`` flag because headlessness is implied by our ``LIVESTREAM``
envar. If a visualization is desired, we could get one via Isaac's `Native Livestreaming`_. Streaming envar. If a visualization is desired, we could get one via Isaac's `WebRTC Livestreaming`_. Streaming
is currently the only supported method of visualization from within the container. The is currently the only supported method of visualization from within the container. The
process can be killed by pressing ``Ctrl+C`` in the launching terminal. process can be killed by pressing ``Ctrl+C`` in the launching terminal.
...@@ -153,7 +153,7 @@ Now, let's look at how :class:`~app.AppLauncher` handles conflicting commands: ...@@ -153,7 +153,7 @@ Now, let's look at how :class:`~app.AppLauncher` handles conflicting commands:
.. code-block:: console .. code-block:: console
LIVESTREAM=0 ./isaaclab.sh -p source/standalone/tutorials/00_sim/launch_app.py --size 0.5 --livestream 1 LIVESTREAM=0 ./isaaclab.sh -p source/standalone/tutorials/00_sim/launch_app.py --size 0.5 --livestream 2
This will cause the same behavior as in the previous run, because although we have set ``LIVESTREAM=0`` This will cause the same behavior as in the previous run, because although we have set ``LIVESTREAM=0``
in our envars, CLI args such as ``--livestream`` take precedence in determining behavior. The process can in our envars, CLI args such as ``--livestream`` take precedence in determining behavior. The process can
...@@ -164,7 +164,7 @@ Finally, we will examine passing arguments to :class:`~isaacsim.simulation_app.S ...@@ -164,7 +164,7 @@ Finally, we will examine passing arguments to :class:`~isaacsim.simulation_app.S
.. code-block:: console .. code-block:: console
LIVESTREAM=1 ./isaaclab.sh -p source/standalone/tutorials/00_sim/launch_app.py --size 0.5 --width 1920 --height 1080 LIVESTREAM=2 ./isaaclab.sh -p source/standalone/tutorials/00_sim/launch_app.py --size 0.5 --width 1920 --height 1080
This will cause the same behavior as before, but now the viewport will be rendered at 1920x1080p resolution. This will cause the same behavior as before, but now the viewport will be rendered at 1920x1080p resolution.
This can be useful when we want to gather high-resolution video, or we can specify a lower resolution if we This can be useful when we want to gather high-resolution video, or we can specify a lower resolution if we
...@@ -173,4 +173,4 @@ terminal. ...@@ -173,4 +173,4 @@ terminal.
.. _specification: https://docs.omniverse.nvidia.com/py/isaacsim/source/extensions/isaacsim.simulation_app/docs/index.html#isaacsim.simulation_app.SimulationApp.DEFAULT_LAUNCHER_CONFIG .. _specification: https://docs.omniverse.nvidia.com/py/isaacsim/source/extensions/isaacsim.simulation_app/docs/index.html#isaacsim.simulation_app.SimulationApp.DEFAULT_LAUNCHER_CONFIG
.. _Native Livestreaming: https://docs.omniverse.nvidia.com/isaacsim/latest/installation/manual_livestream_clients.html#omniverse-streaming-client .. _WebRTC Livestreaming: https://docs.omniverse.nvidia.com/isaacsim/latest/installation/manual_livestream_clients.html#isaac-sim-short-webrtc-streaming-client
...@@ -30,17 +30,12 @@ app.version = "4.5.0" ...@@ -30,17 +30,12 @@ app.version = "4.5.0"
[settings] [settings]
renderer.active = "rtx"
app.content.emptyStageOnStart = false app.content.emptyStageOnStart = false
# Disable print outs on extension startup information # Disable print outs on extension startup information
# this only disables the app print_and_log function # this only disables the app print_and_log function
app.enableStdoutOutput = false app.enableStdoutOutput = false
# Setting the port for the embedded http server
exts."omni.services.transport.server.http".port = 8211
# default viewport is fill # default viewport is fill
app.runLoops.rendering_0.fillResolution = false app.runLoops.rendering_0.fillResolution = false
exts."omni.kit.window.viewport".blockingGetViewportDrawable = false exts."omni.kit.window.viewport".blockingGetViewportDrawable = false
...@@ -56,32 +51,6 @@ persistent = true ...@@ -56,32 +51,6 @@ persistent = true
dev_build = false dev_build = false
fabricDefaultStageFrameHistoryCount = 3 # needed for omni.syntheticdata TODO105 still true? fabricDefaultStageFrameHistoryCount = 3 # needed for omni.syntheticdata TODO105 still true?
[settings.app.window]
title = "Isaac Sim"
hideUi = false
_iconSize = 256
iconPath = "${omni.isaac.app.setup}/data/omni.isaac.sim.png"
# width = 1700
# height = 900
# x = -1
# y = -1
# Fonts
[setting.app.font]
file = "${fonts}/OpenSans-SemiBold.ttf"
size = 16
# [setting.app.runLoops]
# main.rateLimitEnabled = false
# main.rateLimitFrequency = 60
# main.rateLimitUseBusyLoop = false
# rendering_0.rateLimitEnabled = false
[settings.exts.'omni.kit.window.extensions']
# List extensions here we want to show as featured when extension manager is opened
featuredExts = []
[settings.app.python] [settings.app.python]
# These disable the kit app from also printing out python output, which gets confusing # These disable the kit app from also printing out python output, which gets confusing
interceptSysStdOutput = false interceptSysStdOutput = false
...@@ -113,12 +82,6 @@ app.vulkan = true ...@@ -113,12 +82,6 @@ app.vulkan = true
exts."omni.kit.window.extensions".hideNonToggleableExts = true exts."omni.kit.window.extensions".hideNonToggleableExts = true
exts."omni.kit.window.extensions".showFeatureOnly = false exts."omni.kit.window.extensions".showFeatureOnly = false
# Hang Detector
################################
# app.hangDetector.enabled = false
# app.hangDetector.timeout = 120
# set the default ros bridge to disable on startup # set the default ros bridge to disable on startup
isaac.startup.ros_bridge_extension = "" isaac.startup.ros_bridge_extension = ""
...@@ -126,7 +89,7 @@ isaac.startup.ros_bridge_extension = "" ...@@ -126,7 +89,7 @@ isaac.startup.ros_bridge_extension = ""
############################### ###############################
[settings.exts."omni.kit.registry.nucleus"] [settings.exts."omni.kit.registry.nucleus"]
registries = [ registries = [
{ name = "kit/default", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/shared" }, { name = "kit/default", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/106/shared" },
{ name = "kit/sdk", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/sdk/${kit_version_short}/${kit_git_hash}" }, { 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" }, { name = "kit/community", url = "https://dw290v42wisod.cloudfront.net/exts/kit/community" },
] ]
...@@ -135,51 +98,9 @@ registries = [ ...@@ -135,51 +98,9 @@ registries = [
skipPublishVerification = false skipPublishVerification = false
registryEnabled = true registryEnabled = true
[settings.exts."omni.kit.window.modifier.titlebar"]
titleFormatString = " Isaac Sim {version:${app}/../SHORT_VERSION,font_color=0x909090,font_size=16} {separator} {file, board=true}"
showFileFullPath = true
icon.file = "${app}/../exts/omni.isaac.app.setup/data/nvidia-omniverse-isaacsim.ico"
icon.size = 256
defaultFont.name = "Arial"
defaultFont.size = 16
defaultFont.color = 0xD0D0D0
separator.color = 0x00B976
separator.width = 1
windowBorder.color = 0x0F0F0F
windowBorder.width = 2
colors.caption = 0x0F0F0F
colors.client = 0x0F0F0F
respondOnMouseUp = true
changeWindowRegion = true
[settings.crashreporter.data] [settings.crashreporter.data]
experience = "Isaac Sim" experience = "Isaac Sim"
# Isaac Sim Settings
###############################
[settings.app.renderer]
skipWhileMinimized = false
sleepMsOnFocus = 0
sleepMsOutOfFocus = 0
resolution.width=1280
resolution.height=720
# default camera position in meters
[settings.app.viewport]
defaultCamPos.x = 5
defaultCamPos.y = 5
defaultCamPos.z = 5
[settings.rtx]
raytracing.fractionalCutoutOpacity = false
hydra.enableSemanticSchema = true
mdltranslator.mdlDistilling = false
# descriptorSets=60000
# reservedDescriptors=500000
# sceneDb.maxInstances=1000000
# Enable this for static scenes, improves visual quality
# directLighting.sampledLighting.enabled = true
[settings.persistent] [settings.persistent]
app.file.recentFiles = [] app.file.recentFiles = []
app.stage.upAxis = "Z" app.stage.upAxis = "Z"
......
...@@ -94,7 +94,7 @@ exts."omni.replicator.core".Orchestrator.enabled = false ...@@ -94,7 +94,7 @@ exts."omni.replicator.core".Orchestrator.enabled = false
[settings.exts."omni.kit.registry.nucleus"] [settings.exts."omni.kit.registry.nucleus"]
registries = [ registries = [
{ name = "kit/default", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/shared" }, { name = "kit/default", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/106/shared" },
{ name = "kit/sdk", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/sdk/${kit_version_short}/${kit_git_hash}" }, { 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" }, { name = "kit/community", url = "https://dw290v42wisod.cloudfront.net/exts/kit/community" },
] ]
......
## ##
# Adapted from: _isaac_sim/apps/omni.isaac.sim.python.kit # Adapted from: _isaac_sim/apps/isaacsim.exp.base.kit
## ##
[package] [package]
...@@ -10,13 +10,6 @@ version = "2.0.0" ...@@ -10,13 +10,6 @@ version = "2.0.0"
# That makes it browsable in UI with "experience" filter # That makes it browsable in UI with "experience" filter
keywords = ["experience", "app", "usd"] keywords = ["experience", "app", "usd"]
[settings]
# Note: This path was adapted to be respective to the kit-exe file location
app.versionFile = "${exe-path}/VERSION"
app.folder = "${exe-path}/"
app.name = "Isaac-Sim"
app.version = "4.5.0"
[dependencies] [dependencies]
# Isaac Sim extensions # Isaac Sim extensions
"isaacsim.app.about" = {} "isaacsim.app.about" = {}
...@@ -31,7 +24,6 @@ app.version = "4.5.0" ...@@ -31,7 +24,6 @@ app.version = "4.5.0"
"isaacsim.gui.menu" = {} "isaacsim.gui.menu" = {}
"isaacsim.gui.property" = {} "isaacsim.gui.property" = {}
"isaacsim.replicator.behavior" = {} "isaacsim.replicator.behavior" = {}
"isaacsim.replicator.common" = {}
"isaacsim.robot_motion.lula" = {} "isaacsim.robot_motion.lula" = {}
"isaacsim.robot_motion.motion_generation" = {} "isaacsim.robot_motion.motion_generation" = {}
"isaacsim.robot.manipulators" = {} "isaacsim.robot.manipulators" = {}
...@@ -107,154 +99,149 @@ app.version = "4.5.0" ...@@ -107,154 +99,149 @@ app.version = "4.5.0"
"omni.warp.core" = {} "omni.warp.core" = {}
[settings] [settings]
renderer.active = "rtx" exts."omni.kit.material.library".ui_show_list = [
exts."omni.kit.viewport.menubar.camera".expand = true # Expand the extra-camera settings by default "OmniPBR",
exts."omni.kit.window.file".useNewFilePicker = true "OmniGlass",
exts."omni.kit.tool.asset_importer".useNewFilePicker = true "OmniSurface",
exts."omni.kit.tool.collect".useNewFilePicker = true "USD Preview Surface",
exts."omni.kit.widget.layers".useNewFilePicker = true ]
exts."omni.kit.renderer.core".imgui.enableMips = true exts."omni.kit.renderer.core".present.enabled = false # Fixes MGPU stability issue
exts."omni.kit.widget.cloud_share".require_access_code = false exts."omni.kit.viewport.window".windowMenu.entryCount = 2 # Allow user to create two viewports by default
exts."omni.kit.pipapi".installCheckIgnoreVersion = true exts."omni.kit.viewport.window".windowMenu.label = "" # Put Viewport menuitem under Window menu
exts."omni.kit.viewport.window".startup.windowName="Viewport" # Rename from Viewport Next exts."omni.rtx.window.settings".window_menu = "Window" # Where to put the render settings menuitem
exts."omni.kit.menu.utils".logDeprecated = false exts."omni.usd".locking.onClose = false # reduce time it takes to close/create stage
renderer.asyncInit = true # Don't block while renderer inits
# app.content.emptyStageOnStart = false renderer.gpuEnumeration.glInterop.enabled = false # Improves startup speed.
app.file.ignoreUnsavedOnExit = true # prevents save dialog when exiting rendergraph.mgpu.backend = "copyQueue" # In MGPU configurations, This setting can be removed if IOMMU is disabled for better performance, copyQueue improves stability and performance when IOMMU is enabled
rtx-transient.dlssg.enabled = false # DLSSG frame generation is not compatible with synthetic data generation
# disable print outs on extension startup information rtx.hydra.mdlMaterialWarmup = true # start loading the MDL shaders needed before any delegate is actually created.
# this only disables the app print_and_log function omni.replicator.asyncRendering = false # Async rendering must be disabled for SDG
app.enableStdoutOutput = false exts."omni.kit.test".includeTests = ["*isaac*"] # Add isaac tests to test runner
foundation.verifyOsVersion.enabled = false
# deprecate support for old kit.ui.menu # set the default ros bridge to disable on startup
app.menu.legacy_mode = false isaac.startup.ros_bridge_extension = ""
# use omni.ui.Menu for the MenuBar
app.menu.compatibility_mode = false
# Setting the port for the embedded http server
exts."omni.services.transport.server.http".port = 8211
# default viewport is fill # Disable for base application
app.runLoops.rendering_0.fillResolution = false [settings."filter:platform"."windows-x86_64"]
exts."omni.kit.window.viewport".blockingGetViewportDrawable = false isaac.startup.ros_bridge_extension = ""
[settings."filter:platform"."linux-x86_64"]
isaac.startup.ros_bridge_extension = ""
exts."omni.kit.test".includeTests = [ "*isaac*" ] # menu styling
[settings.exts."omni.kit.menu.utils"]
logDeprecated = false
margin_size = [18, 3]
tick_spacing = [10, 6]
margin_size_posttick = [0, 3]
separator_size = [14, 10]
root_spacing = 3
post_label_spaces = 6
color_tick_enabled = 0xFFFAC434
color_separator = 0xFF7E7E7E
color_label_enabled = 0xFFEEEEEE
menu_title_color = 0xFF202020
menu_title_line_color = 0xFF5E5E5E
menu_title_text_color = 0xFF8F8F8F
menu_title_text_height = 24
menu_title_close_color = 0xFFC6C6C6
indent_all_ticks = false
show_menu_titles = true
[settings.app]
name = "Isaac-Sim"
version = "4.5.0"
versionFile = "${exe-path}/VERSION"
content.emptyStageOnStart = true
fastShutdown = true
file.ignoreUnsavedOnExit = true
font.file = "${fonts}/OpenSans-SemiBold.ttf"
font.size = 16
gatherRenderResults = true # True to prevent artifacts in multiple viewport configurations, can be set to false for better performance in some cases
hangDetector.enabled = true
hangDetector.timeout = 120
player.useFixedTimeStepping = true
settings.fabricDefaultStageFrameHistoryCount = 3 # needed for omni.syntheticdata TODO105 still true?
settings.persistent = true # settings are persistent for this app
vulkan = true # Explicitly enable Vulkan (on by default on Linux, off by default on Windows)
### async rendering settings
asyncRendering = false
asyncRenderingLowLatency = false
# set the default ros bridge to disable on startup [settings.app.window]
isaac.startup.ros_bridge_extension = "" iconPath = "${isaacsim.simulation_app}/data/omni.isaac.sim.png"
title = "Isaac Sim"
[settings.app.python] [settings.app.python]
# These disable the kit app from also printing out python output, which gets confusing # These disable the kit app from also printing out python output, which gets confusing
interceptSysStdOutput = false interceptSysStdOutput = false
logSysStdOutput = false logSysStdOutput = false
[settings.app.settings] [settings.app.renderer]
persistent = true resolution.height = 720
dev_build = false resolution.width = 1280
fabricDefaultStageFrameHistoryCount = 3 # needed for omni.syntheticdata TODO105 Still True? skipWhileMinimized = false # python app does not throttle
sleepMsOnFocus = 0 # python app does not throttle
[settings.app.window] sleepMsOutOfFocus = 0 # python app does not throttle
title = "Isaac Sim Python"
hideUi = false
_iconSize = 256
iconPath = "${omni.isaac.kit}/data/omni.isaac.sim.png"
# width = 1700
# height = 900
# x = -1
# y = -1
# Fonts [settings.app.viewport]
[setting.app.font] defaultCamPos.x = 5
file = "${fonts}/OpenSans-SemiBold.ttf" defaultCamPos.y = 5
size = 16 defaultCamPos.z = 5
defaults.fillViewport = false # default to not fill viewport
grid.enabled = true
outline.enabled = true
boundingBoxes.enabled = false
show.camera=false
show.lights=false
# [setting.app.runLoops] [settings.telemetry]
# main.rateLimitEnabled = false enableAnonymousAppName = true # Anonymous Kit application usage telemetry
# main.rateLimitFrequency = 60 enableAnonymousData = true # Anonymous Kit application usage telemetry
# main.rateLimitUseBusyLoop = false
# rendering_0.rateLimitEnabled = false
[settings.exts.'omni.kit.window.extensions'] [settings.persistent]
# List extensions here we want to show as featured when extension manager is opened app.primCreation.DefaultXformOpOrder = "xformOp:translate, xformOp:orient, xformOp:scale"
featuredExts = [] app.primCreation.DefaultXformOpType = "Scale, Orient, Translate"
app.primCreation.typedDefaults.camera.clippingRange = [0.01, 10000000.0] # Meters default
app.primCreation.DefaultXformOpPrecision = "Double"
app.primCreation.DefaultRotationOrder = "ZYX"
app.primCreation.PrimCreationWithDefaultXformOps = true
app.stage.timeCodeRange = [0, 1000000]
app.stage.upAxis = "Z" # Isaac Sim default Z up
app.viewport.camMoveVelocity = 0.05 # Meters default
app.viewport.gizmo.scale = 0.01 # Meters default
app.viewport.grid.scale = 1.0 # Meters default
app.viewport.camShowSpeedOnStart = false # Hide camera speed on startup
app.omniverse.gamepadCameraControl = false # Disable gamepad control for camera by default
exts."omni.anim.navigation.core".navMesh.config.autoRebakeOnChanges = false
exts."omni.anim.navigation.core".navMesh.viewNavMesh = false
physics.visualizationDisplayJoints = false # improves performance
physics.visualizationSimulationOutput = false # improves performance
physics.resetOnStop = true # Physics state is reset on stop
renderer.startupMessageDisplayed = true # hides the IOMMU popup window
resourcemonitor.timeBetweenQueries = 100 # improves performance
simulation.defaultMetersPerUnit = 1.0 # Meters default
omni.replicator.captureOnPlay = true
[settings] [settings]
# MGPU is always on, you can turn it from the settings, and force this off to save even more resource if you
# only want to use a single GPU on your MGPU system
renderer.multiGpu.enabled = true
renderer.multiGpu.autoEnable = true
# This setting forces all GPUs to copy their render results to the main GPU.
# This legacy setting should not be needed anymore
app.gatherRenderResults = false
'rtx-transient'.resourcemanager.enableTextureStreaming = true
# app.hydra.aperture.conform = 4 # in 105.1 pixels are square by default
app.hydraEngine.waitIdle = false
rtx.newDenoiser.enabled = true
# Enable Iray and pxr by setting this to "rtx,iray,pxr"
renderer.enabled = "rtx"
# Avoids unnecessary GPU context initialization
renderer.multiGpu.maxGpuCount=1
### async rendering settings ### async rendering settings
omni.replicator.asyncRendering = false omni.replicator.asyncRendering = false
app.asyncRendering = false app.asyncRendering = false
app.asyncRenderingLowLatency = false app.asyncRenderingLowLatency = false
### Render thread settings
app.runLoops.main.rateLimitEnabled = false
app.runLoops.main.rateLimitFrequency = 120
app.runLoops.main.rateLimitUsePrecisionSleep = true
app.runLoops.main.syncToPresent = false
app.runLoops.present.rateLimitFrequency = 120
app.runLoops.present.rateLimitUsePrecisionSleep = true
app.runLoops.rendering_0.rateLimitFrequency = 120
app.runLoops.rendering_0.rateLimitUsePrecisionSleep = true
app.runLoops.rendering_0.syncToPresent = false
app.runLoops.rendering_1.rateLimitFrequency = 120
app.runLoops.rendering_1.rateLimitUsePrecisionSleep = true
app.runLoops.rendering_1.syncToPresent = false
app.runLoopsGlobal.syncToPresent = false
app.vsync = false
exts."omni.kit.renderer.core".present.enabled = false
exts."omni.kit.renderer.core".present.presentAfterRendering = false
persistent.app.viewport.defaults.tickRate = 120
rtx-transient.dlssg.enabled = false
app.audio.enabled = false
# Enable Vulkan - avoids torch+cu12 error on windows
app.vulkan = true
# disable replicator orchestrator for better runtime perf # disable replicator orchestrator for better runtime perf
exts."omni.replicator.core".Orchestrator.enabled = false exts."omni.replicator.core".Orchestrator.enabled = false
# hide NonToggleable Exts [settings.app.livestream]
exts."omni.kit.window.extensions".hideNonToggleableExts = true outDirectory = "${data}"
exts."omni.kit.window.extensions".showFeatureOnly = false
# Hang Detector
################################
# app.hangDetector.enabled = false
# app.hangDetector.timeout = 120
# RTX Settings
###############################
[settings.rtx]
translucency.worldEps = 0.005
# Content Browser
###############################
[settings.exts."omni.kit.window.content_browser"]
enable_thumbnail_generation_images = false # temp fix to avoid leaking python processes
# Extensions # Extensions
############################### ###############################
[settings.exts."omni.kit.registry.nucleus"] [settings.exts."omni.kit.registry.nucleus"]
registries = [ registries = [
{ name = "kit/default", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/shared" }, { name = "kit/default", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/106/shared" },
{ name = "kit/sdk", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/sdk/${kit_version_short}/${kit_git_hash}" }, { 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" }, { name = "kit/community", url = "https://dw290v42wisod.cloudfront.net/exts/kit/community" },
] ]
...@@ -263,24 +250,6 @@ registries = [ ...@@ -263,24 +250,6 @@ registries = [
skipPublishVerification = false skipPublishVerification = false
registryEnabled = true registryEnabled = true
[settings.exts."omni.kit.window.modifier.titlebar"]
titleFormatString = " Isaac Sim {version:${exe-path}/../SHORT_VERSION,font_color=0x909090,font_size=16} {separator} {file, board=true}"
showFileFullPath = true
icon.file = "${exe-path}/../exts/omni.isaac.app.setup/data/nvidia-omniverse-isaacsim.ico"
icon.size = 256
defaultFont.name = "Arial"
defaultFont.size = 16
defaultFont.color = 0xD0D0D0
separator.color = 0x00B976
separator.width = 1
windowBorder.color = 0x0F0F0F
windowBorder.width = 2
colors.caption = 0x0F0F0F
colors.client = 0x0F0F0F
respondOnMouseUp = true
changeWindowRegion = true
# Register extension folder from this repo in kit # Register extension folder from this repo in kit
[settings.app.exts] [settings.app.exts]
folders = [ folders = [
...@@ -298,78 +267,6 @@ folders = [ ...@@ -298,78 +267,6 @@ folders = [
"${app}/../extensions", # needed to find extensions in Isaac Lab "${app}/../extensions", # needed to find extensions in Isaac Lab
] ]
[settings.crashreporter.data]
experience = "Isaac Sim Python"
# Isaac Sim Settings
###############################
[settings.app.renderer]
skipWhileMinimized = false
sleepMsOnFocus = 0
sleepMsOutOfFocus = 0
resolution.width=1280
resolution.height=720
[settings.app.livestream]
proto = "ws"
allowResize = true
outDirectory = "${data}"
# default camera position in meters
[settings.app.viewport]
defaultCamPos.x = 5
defaultCamPos.y = 5
defaultCamPos.z = 5
[settings.rtx]
raytracing.fractionalCutoutOpacity = false
hydra.enableSemanticSchema = true
mdltranslator.mdlDistilling = false
# descriptorSets=60000
# reservedDescriptors=500000
# sceneDb.maxInstances=1000000
# Enable this for static scenes, improves visual quality
# directLighting.sampledLighting.enabled = true
[settings.persistent]
app.file.recentFiles = []
app.stage.upAxis = "Z"
app.stage.movePrimInPlace = false
app.stage.instanceableOnCreatingReference = false
app.stage.materialStrength = "weakerThanDescendants"
app.transform.gizmoUseSRT = true
app.viewport.grid.scale = 1.0
app.viewport.pickingMode = "kind:model.ALL"
app.viewport.camMoveVelocity = 0.05 # 5 m/s
app.viewport.gizmo.scale = 0.01 # scaled to meters
app.viewport.previewOnPeek = false
app.viewport.snapToSurface = false
app.viewport.displayOptions = 31887 # Disable Frame Rate and Resolution by default
app.window.uiStyle = "NvidiaDark"
app.primCreation.DefaultXformOpType = "Scale, Orient, Translate"
app.primCreation.DefaultXformOpOrder="xformOp:translate, xformOp:orient, xformOp:scale"
app.primCreation.typedDefaults.camera.clippingRange = [0.01, 10000000.0]
simulation.minFrameRate = 15
simulation.defaultMetersPerUnit = 1.0
omnigraph.updateToUsd = false
omnigraph.useSchemaPrims = true
omnigraph.disablePrimNodes = true
omni.replicator.captureOnPlay = true
exts."omni.anim.navigation.core".navMesh.viewNavMesh = false
renderer.startupMessageDisplayed = true # hides the IOMMU popup window
# Make Detail panel visible by default
app.omniverse.content_browser.options_menu.show_details = true
app.omniverse.filepicker.options_menu.show_details = true
# Performance improvement
resourcemonitor.timeBetweenQueries = 100
[settings.ngx]
enabled=true # Enable this for DLSS
[settings.physics] [settings.physics]
autoPopupSimulationOutputWindow=false autoPopupSimulationOutputWindow=false
updateToUsd = false updateToUsd = false
......
...@@ -105,7 +105,7 @@ fabricUpdateJointStates = false ...@@ -105,7 +105,7 @@ fabricUpdateJointStates = false
[settings.exts."omni.kit.registry.nucleus"] [settings.exts."omni.kit.registry.nucleus"]
registries = [ registries = [
{ name = "kit/default", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/shared" }, { name = "kit/default", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/106/shared" },
{ name = "kit/sdk", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/sdk/${kit_version_short}/${kit_git_hash}" }, { 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" }, { name = "kit/community", url = "https://dw290v42wisod.cloudfront.net/exts/kit/community" },
] ]
......
...@@ -18,6 +18,7 @@ import os ...@@ -18,6 +18,7 @@ import os
import re import re
import signal import signal
import sys import sys
import warnings
from typing import Any, Literal from typing import Any, Literal
with contextlib.suppress(ModuleNotFoundError): with contextlib.suppress(ModuleNotFoundError):
...@@ -161,8 +162,8 @@ class AppLauncher: ...@@ -161,8 +162,8 @@ class AppLauncher:
Valid options are: Valid options are:
- ``0``: Disabled - ``0``: Disabled
- ``1``: `Native <https://docs.omniverse.nvidia.com/extensions/latest/ext_livestream/native.html>`_ - ``1``: `Native [DEPRECATED] <https://docs.omniverse.nvidia.com/isaacsim/latest/installation/manual_livestream_clients.html#omniverse-streaming-client-deprecated>`_
- ``2``: `WebRTC <https://docs.omniverse.nvidia.com/extensions/latest/ext_livestream/webrtc.html>`_ - ``2``: `WebRTC <https://docs.omniverse.nvidia.com/isaacsim/latest/installation/manual_livestream_clients.html#isaac-sim-short-webrtc-streaming-client>`_
* ``enable_cameras`` (bool): If True, the app will enable camera sensors and render them, even when in * ``enable_cameras`` (bool): If True, the app will enable camera sensors and render them, even when in
headless mode. This flag must be set to True if the environments contains any camera sensors. headless mode. This flag must be set to True if the environments contains any camera sensors.
...@@ -527,7 +528,7 @@ class AppLauncher: ...@@ -527,7 +528,7 @@ class AppLauncher:
os.environ["PXR_WORK_THREAD_LIMIT"] = str(num_threads_per_process) os.environ["PXR_WORK_THREAD_LIMIT"] = str(num_threads_per_process)
os.environ["OPENBLAS_NUM_THREADS"] = str(num_threads_per_process) os.environ["OPENBLAS_NUM_THREADS"] = str(num_threads_per_process)
# pass command line variable to kit # pass command line variable to kit
sys.argv.append(f"--/plugins/carb.tasking.plugin/threadCount={num_threads_per_process}") self._kit_args.append(f"--/plugins/carb.tasking.plugin/threadCount={num_threads_per_process}")
# set physics and rendering device # set physics and rendering device
launcher_args["physics_gpu"] = self.device_id launcher_args["physics_gpu"] = self.device_id
...@@ -573,6 +574,38 @@ class AppLauncher: ...@@ -573,6 +574,38 @@ class AppLauncher:
" The file does not exist." " The file does not exist."
) )
# Process livestream here before launching kit because some of the extensions only work when launched with the kit file
if self._livestream >= 1:
livestream_args = []
# Note: Only one livestream extension can be enabled at a time
if self._livestream == 1:
warnings.warn(
"Native Livestream is deprecated. Please use WebRTC Livestream instead with --livestream 2."
)
livestream_args += [
'--/app/livestream/proto="ws"',
"--/app/livestream/allowResize=true",
"--enable",
"omni.kit.livestream.core-4.1.2",
"--enable",
"omni.kit.livestream.native-5.0.1",
"--enable",
"omni.kit.streamsdk.plugins-4.1.1",
]
elif self._livestream == 2:
livestream_args += [
"--/app/livestream/allowResize=false",
"--enable",
"omni.kit.livestream.core-6.1.0",
"--enable",
"omni.kit.livestream.webrtc-6.0.0",
"--enable",
"omni.kit.streamsdk.plugins-6.1.7",
]
else:
raise ValueError(f"Invalid value for livestream: {self._livestream}. Expected: 1, 2 .")
sys.argv += livestream_args
# Resolve additional arguments passed to Kit # Resolve additional arguments passed to Kit
self._kit_args = [] self._kit_args = []
if "kit_args" in launcher_args: if "kit_args" in launcher_args:
...@@ -631,37 +664,10 @@ class AppLauncher: ...@@ -631,37 +664,10 @@ class AppLauncher:
# These have to be loaded after SimulationApp is initialized # These have to be loaded after SimulationApp is initialized
import carb import carb
import omni.physx.bindings._physx as physx_impl import omni.physx.bindings._physx as physx_impl
from isaacsim.core.utils.extensions import enable_extension
# Retrieve carb settings for modification # Retrieve carb settings for modification
carb_settings_iface = carb.settings.get_settings() carb_settings_iface = carb.settings.get_settings()
if self._livestream >= 1:
# Ensure that a viewport exists in case an experience has been
# loaded which does not load it by default
enable_extension("omni.kit.viewport.window")
# Set carb settings to allow for livestreaming
carb_settings_iface.set_bool("/app/livestream/enabled", True)
carb_settings_iface.set_bool("/app/window/drawMouse", True)
carb_settings_iface.set_bool("/ngx/enabled", False)
carb_settings_iface.set_string("/app/livestream/proto", "ws")
carb_settings_iface.set_int("/app/livestream/websocket/framerate_limit", 120)
# Note: Only one livestream extension can be enabled at a time
if self._livestream == 1:
# Enable Native Livestream extension
# Default App: Streaming Client from the Omniverse Launcher
enable_extension("omni.kit.streamsdk.plugins-3.2.1")
enable_extension("omni.kit.livestream.core-3.2.0")
enable_extension("omni.kit.livestream.native-4.1.0")
elif self._livestream == 2:
# Enable WebRTC Livestream extension
# Default URL: http://localhost:8211/streaming/webrtc-client/
enable_extension("omni.services.streamclient.webrtc")
else:
raise ValueError(f"Invalid value for livestream: {self._livestream}. Expected: 1, 2 .")
else:
carb_settings_iface.set_bool("/app/livestream/enabled", False)
# set carb setting to indicate Isaac Lab's offscreen_render pipeline should be enabled # set carb setting to indicate Isaac Lab's offscreen_render pipeline should be enabled
# this flag is used by the SimulationContext class to enable the offscreen_render pipeline # this flag is used by the SimulationContext class to enable the offscreen_render pipeline
# when the render() method is called. # when the render() method is called.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment