Architecture#

Omniverse Nucleus is the database and collaboration engine of Omniverse. With Nucleus, teams can have multiple users connected together live with multiple Client applications all at once. Client applications can be desktop (i.e., USD Composer or Autodesk Maya), as well as microservices - automated processes (rendering, content manipulation, and generation).

_images/principal_arch.png

Within Nucleus, there are several components, each one communicating with multiple others. The most important of those communications are shown on the diagram with some lines are omitted for clarity. One example of such an omission would be the Tagging Service using Authentication Service to generate a ticket for later communication with Nucleus Core.

Externally, some of those services expose API endpoints (open ports) for Clients to talk to them directly.

One notable feature is Caching - Clients can (and should) be configured to utilize at least one Cache to optimize downloads of heavy assets. Comprehensive information on Nucleus Cache can be found here.

Data Model#

Nucleus represents assets in a hierarchical, tree-like structure. To an end user it looks just like a familiar file tree, with directories and files within.

Files can be uploaded, downloaded, and moved; directories can be created, listed, deleted, and moved.

Nucleus utilizes a single file tree similar to typical file systems, with a “path” to a file being a forward-slash (/).

  • /Users/jdoe/

  • /Users/jdoe/myfile.usd

While any file types can be uploaded to Nucleus (users can upload anything to Nucleus as if it was a traditional file server), the most common data formats used across Omniverse are .usd (Universal Scene Description), .mdl (Material Definition Library), various kinds of images (.jpg, .png), and similar.

Services#

Nucleus Core#

At the center of Nucleus is its Core - a set of services for storing and retrieving data (files).

Nucleus Core is exposed to other parts of Omniverse via its API, over HTTP and Websockets connections.

On the Nucleus Server itself, it utilizes a data directory path configured by an administrator to store its data. It’s important to understand that this directory does not represent the actual file tree in Nucleus.

Nucleus Core consists of the following components:

  • Nucleus Core API Responder: the primary component exposing Nucleus Core API

  • Nucleus Core LFT (Large File Transfer) Service: in Enterprise deployments, exposes an HTTP endpoint for upload and download of files of larger sizes. (The LFT Service can be scaled to run more than one instance.)

  • In Enterprise Nucleus Server installations, Core includes extras for exposing metrics, processing and rotating logs, etc.

Discovery#

The Discovery service runs adjacent to Nucleus and enables other services to register and advertise themselves to Clients.

Auth and User Management Service#

This service and its configuration and operation is explained in greater detail. Click here to learn more.

Nucleus Navigator#

Nucleus Navigator makes it easy to browse the data stored in Nucleus using a web browser, from Nucleus tab within the Omniverse Launcher, or by using the standalone Nucleus Navigator application.

Click here to learn more about Nucleus Navigator.

Nucleus bridge#

Nucleus bridge allows an Enterprise Nucleus Server to be linked with the GPU streaming features of Omniverse Cloud. By combining these powerful technologies, users are able to enjoy using Omniverse services powered by RTX streaming to their device through a web browser.

Click here to learn more about Nucleus bridge and how it’s configured.

Utility Services#

Other services included in Nucleus are:

  • Search Service: indexes items in Nucleus, and provides API for searching them

  • Thumbnail Service: creates thumbnails for data formats it supports

  • Tagging Service: exposes API to allow users to tag files in Nucleus file tree

App Assumptions and Expectations#

All Omniverse Client applications and components that connect to Nucleus make the following assumptions:

  • Nucleus Core API is available on port 3009

  • Nucleus Discovery is available on port 3333

If an Enterprise Nucleus Server is deployed using an SSL/TLS gateway (ingress router), Clients will make the following assumptions when told to connect to host (where host is the DNS hostname of the Nucleus Server):

  • If a port is specified when connecting, connections will be made via HTTPS and WSS on that host and port.

  • If no port is specified, an HTTP connection to port 80 and HTTPS connection to port 443 will be attempted. The former is necessary for supporting redirects.