Streaming Settings for Configurators#

This content will guide you through the process of customizing the streaming settings for your 3D product configurator. Alternatively, you may choose to use the omni.usd_composer.streaming.bat.zip file from the Configurator Sample Instructions.

Allow React App to Set Render Resolution of Streamed Kit App#

The Kit App’s default application window size is 1920x1080 pixels by default. A React App (or other client) can request the Kit App to use a different size.

To enable the size to be dynamic, the Kit App should be launched with argument

--/app/livestream/allowResize=1:

omni.create.bat --/app/livestream/allowResize=1

The React App’s AppStream.jsx sets the resolution in the below section. Here we request 3840x2160:

// Pack the local-specific config.
const server = this.props.streamConfig.server;
const width  = 3840;
const height = 2160;
const fps    = 60;
const url    =
`server=${server}&resolution=${width}:${height}&fps=${fps}&mic=0&cursor=free&autolaunch=true`

Run the App Headless#

To run the Kit App headless, use –no-window argument:

omni.create.bat --no-window

Enable Streaming and Messaging at Startup#

omni.kit.livestream.webrtc and omni.kit.livestream.messaging provides streaming and messaging capabilities. There is also a performance improvement that can be used via the --/app/livestream/skipCapture=1 argument. Here is how to enable them at startup:

omni.create.bat --enable omni.kit.livestream.webrtc --enable omni.kit.livestream.messaging --/app/livestream/skipCapture=1

Enable Action Graph’s Script Node Extension#

The Script Node allows creating additional Action Graph functionality when there is no time to develop additional Action Graph nodes. Enabling the Extension causes a security warning to be displayed by default. To hide this warning, you can add the below launch arguments. Be careful to only load USD Stages that have known Script Nodes. Script nodes are free to execute any Python code.

omni.create.bat --/app/omni.graph.scriptnode/enable_opt_in=false --enable omni.graph.scriptnode

Fabric Delegate#

Using Fabric Scene Delegate can improve the performance of the interactive experience. To turn it on via a launch argument:

omni.create.bat --/app/useFabricSceneDelegate=true

Summary#

The above arguments can be combined in various ways depending on needs; for example:

omni.create.bat --/app/livestream/allowResize=1 --no-window --enable omni.kit.livestream.webrtc --enable omni.kit.livestream.messaging --/app/livestream/skipCapture=1