UCS Studio#
The UCS Studio GUI helps you create and build UCS Applications through a user-friendly drag-and-drop interface on a graph canvas.
Remote Access#
UCS Studio supports remote access through two streaming options:
Omniverse Streaming Client
WebRTC
Comparison of available options#
Technology |
Devices |
Benefits |
---|---|---|
Omniverse Streaming Client |
Windows and Linux |
Native desktop application. Supports streaming up to 4K at 60 frames per second. |
WebRTC |
Web browsers (all devices) |
Simple to distribute. Strong support across devices and platforms. |
Omniverse Streaming Client#
The Omniverse Streaming Client is a lightweight application that allows users to connect to Omniverse applications deployed on the network or over the Internet.
This application enables access to a broad range of Omniverse applications, even from devices that would otherwise not meet the minimum requirements. Some of these workflows include:
Accessing Omniverse applications from low-powered devices or ultrabooks.
Facilitating resource sharing over the network or the Internet, allowing users to connect to Omniverse applications provisioned by IT resources.
Installation and Usage#
To install the Omniverse Streaming Client on user machines:
From the Omniverse Launcher, select Exchange from the top-level menu bar.
From there, click Omniverse Streaming Client from the left-hand Apps sidebar.
In the detail page of Omniverse Streaming Client, click the Install button.
Once the download completes and Omniverse Streaming Client is installed, click the Launch button to start the client.

When prompted, enter the IP address or URL of the remote machine which is broadcasting to interact with the remote session:

Configuration#
Server#
To launch UCS Studio with Omniverse Streaming Client, run the following command:
ucf_studio --enable-streaming ov-streaming
If the host is located on the infrastructure of a third-party Cloud provider, you may need to open the following ports and allow firewall rules for inbound and outbound traffic:
TCP:
47995
to48012
TCP:
49000
to49007
TCP:
49100
UDP:
47995
to48012
UDP:
49000
to49007
Client#
On Linux, you may need the following packages on machines where the client is installed: libavcodec
, libavformat
, libavutil
. Install these packages using the following command:
sudo apt-get install libavcodec57 libavformat57 libavutil55
Windows environments do not require any additional dependencies or configuration, other than ensuring firewall rules do not restrict access to the ports listed above.
WebRTC streaming#
You can now stream UCS Studio to web browsers by leveraging the new WebRTC live-streaming.

Using the WebRTC live-stream is straightforward:
In a command prompt or terminal, run the command:
ucf_studio --enable-streaming webrtc
Find the IP address of the machine hosting the UCS Studio application on your local network
Navigate to the stream page in your favorite web browser:
http://<server IP address>:8011/streaming/webrtc-client?server=<server IP address
Click the “play” button to start streaming your application
Note
Sometimes the above URL is not accessible because port 8011 might be occupied. In this case, replace 8011 with the correct HTTP port number displayed in the console.
For example, in the following log, the server started on port 8010 instead of 8011:
[omni.services.transport.server.http.server] http server was meant to start on 8011 but port is taken, starting on port 8010 instead.
Current Limitations:#
For the best user experience, only provide a single user with mouse or keyboard control at a time while others remain in spectator mode.
WebRTC Streaming is supported only on RTX GPUs.
Copy/paste support is not yet available.
Repo Sync#
Before opening an existing graph or creating a new graph, always ensure your local registry data is up to date. Syncing your local registry with the remote repository from NGC will update the local registry data. To perform a sync, you must first set up the repo by copying and pasting the API key through “Repo Setup” from the “Registry” menu.
You can trigger registry sync through “Repo Sync” or “Fast Repo Sync” from the Registry menu. The latter takes less time since it only fetches the latest versions of services instead of all available versions. You will be prompted to select a remote repository to complete the sync:

The sync process may take several minutes. Once complete, the catalog list on the left will update automatically:

Create a New Graph#
You can create a new graph through the “Create Graph” button from the landing page or “New Graph” (Ctrl + N) from the “File” menu. You can give the graph a customized name before creating it.

Add and Remove Microservices#
Once you complete a repo sync, all available services from the registry will be listed in the catalog to the left of the graph canvas. To add a service to the graph, search for the needed service from the list and drag-and-drop it to the canvas.
Before adding a service, you may want to know its specification details. These will be shown in the Detail panel once you select a service from the service list.

After adding a service to the graph canvas, change the name of the service node by double-clicking on the name field.

To delete a service node from the graph, click it and press the “DEL” key. You can also delete through the “Edit” menu.
Multiple Selection#
Multiple selection is supported via mouse and keyboard.
Select nodes by dragging a rectangle on the canvas, or select nodes one by one by clicking on them while holding the “CTRL” key.
Connect and Disconnect Microservices#
Connect two service nodes by dragging from a port in one node and dropping to a port of the other:

Disconnect via the context menu triggered by right-clicking on the ingress port which is on the left side of a service node:

Copy/Cut/Paste a Service#
To facilitate the editing process of a graph, copy/cut/paste is supported. You can trigger the process from the “Edit” menu or simply use “Ctrl + C” for copying, “Ctrl + X” for cutting, and “Ctrl + V” for pasting.
The copied/cut service node will be stored in the clipboard and an exact clone of the service node will be created in the subsequent “Paste” operation.
Undo and redo#
An undo/redo pipeline is maintained for a graph under editing. You can undo and redo editing that includes:
Adding a Service
Removing a Service
Connecting Services
Disconnecting Services
Renaming a Service
Cutting a Service
Pasting a Service
Canvas Pan and Zoom#
Pan the canvas using the middle key of the mouse. You can also zoom in/out the canvas through the wheel on the mouse.
Node Collapse and Expansion#
A node on the graph canvas has three states with different views. You can switch among them by clicking the small dots on the top-right corner of the node:
Expanded view
![]()
Minimized View
![]()
Collapsed View
![]()
You can also switch the view of all nodes on the graph canvas together through the buttons in the toolbar.
Graph Layout and Focus#
Automatic layout is supported to arrange the nodes on the current graph to make them visually cleaner. You can also arrange them manually by moving the nodes.
While editing a relatively complex graph, you can change the focus to a specific node or the entire graph at any time.
All the above operations are supported from the canvas context menu or toolbar.
Inspect and Change Service Properties#
Once you select a service node, its details are shown in the detail panel. This includes both basic information and properties. The properties are editable there so you can change their values at any time:
Save and Load a Graph#
While editing a graph, save it as a YAML file at any time so you can continue editing by opening it again.
Graph save can be done from the “File” menu or with “Ctrl” + “S”. You can choose the location on your file system to save the graph file:
Similarly, you can also open an existing graph from the “File” menu or using the hot key, or from the landing page.
Import and Export Parameters#
While the properties of a service instance can be saved together with the graph, they can also be exported to a separate file which can then be imported to override those values in the graph. Before exporting the parameters, you must find the parameter in the nodes and check the checkbox on the right side of the corresponding parameter:
You can also import parameters from a parameter file, which will override the values of corresponding parameters in the current graph.
Both import and export parameters are supported from the canvas context menu:
Build the App and Generate Helm Charts#
Once you complete a graph, you can start the building process from either the “File” menu (Ctrl + B) or toolbar. This will ask for an output folder in the file system and generate helm charts there: