Nucleus Architecture

Introduction

Ultimately, NVIDIA Omniverse™ Nucleus is a collection of services that avail themselves on a network and allow Client applications ( Apps, Connectors, and others) to connect to those services. Note that Clients can be desktop, user manipulated, applications (ie, CAD or content creation software), as well as microservices - automated processes (rendering, content manipulation and generation, or whatever else one might desire).

../../_images/tmp_nucleus_v2_principal_arch.png

Within Omniverse Nucleus, there are a number of components, each one communicating with multiples of others. Most important of those communications are shown on the diagram. 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 comms with Nucleus Core.

Externally, some of those services expose API endpoints (open ports) for Clients to talk to them directly. Those ports and endpoints would depend on your installation configuration.

One notable feature is Caching - Clients can (and should) be configured to utilize at least one Cache to optimize downloads of heavy assets. Omniverse Cache is covered in it’s own section.

Services

Nucleus Core

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

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

On the backend, it utilizes a data directory configured by an administrator to store it’s data. This directory is opaque to the user, and 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: exposes an HTTP endpoint for upload and download of files of larger sizes

  • In Docker setups, Core would include some miscellanea for exposing metrics, processing and rotating logs, etc

Discovery

Discovery service rides “alongside” Nucleus and enables other services to register and advertise themselves to Clients.

Auth and User Management Service

The name of this service speaks for itself, and it’s configuration and operation is described more widely in it’s own section.

Omniverse Navigator

This is the Web UI of Nucleus, presenting it’s file tree and allowing one to manage it. It also has tooling for managing users and permissions. Though a part of Nucleus, it can be deployed as a standalone tool.

Utility Services

Other services included in Nucleus are:

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

  • Snapshot Service: enables snapshotting functionality in Navigator

  • Thumbnail Service: creates thumbnails for data formats it supports

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

Client Assumptions and Expectations

All Omniverse components that connect to Nucleus make the following two assumptions:

  • Nucleus Core API is available on port 3009

  • Nucleus Discovery is available on the same host on port 3333

For example, if a Client is trying to connect to my-omniverse.my-company.com instance of Nucleus, the two assumptions it makes are that the Core API will be at my-omniverse.my-company.com:3009, and Discovery will be at my-omniverse.my-company.com:3333.

The above is of utmost importance when planning deployments of |nuc_short|. All other ports and things generally can be moved around, but the two main “entry points” outlined above can not.