Omniverse Development for Self-Hosted Deployments#

This guide provides developers with a structured path for creating, deploying, and integrating Cloud Functions using NVCF.

Overview#

Developing Omniverse applications for NVCF involves three main areas:

  • Kit Development: Build Omniverse Kit applications configured for NVCF streaming and Cloud Function deployment.

  • Cloud Function Deployment: Containerize your applications, create Cloud Functions, and deploy them to NVCF clusters.

  • Web Client Development: Create client applications that invoke Cloud Functions and handle streaming connections.

Preparing Your Kit Application#

Follow these steps to prepare an Omniverse Kit application for NVCF:

1. Build Your Kit Application#

Configure your Kit application for NVCF streaming:

  • Configure and build your Kit app from template

  • Include the NVCF streaming application layer

  • Test locally before containerization

See Developing and Containerizing Apps for detailed instructions on developing Kit applications.

2. Containerize Your Application#

Package your Kit application as a container:

  • Create a Dockerfile based on the Kit App Template

  • Include all required dependencies and extensions

  • Configure the container entry point for NVCF

See Developing and Containerizing Apps for containerization best practices.

3. Push to Registry#

Upload your container to the appropriate registry:

  • Push to NGC Container Registry

  • Push to Amazon ECR

  • Push to Azure ACR

See Deploying Kit Apps for registry configuration.

Creating and Deploying Cloud Functions#

1. Obtain Credentials#

Before creating Cloud Functions, gather the required credentials:

  • Cluster Information: Know which control plane and cluster to target

  • NVCF CLI Admin Token: Allows the CLI to authenticate with your NVCF cluster

  • NVCF API Key: For authentication with the NVCF control plane

For self-hosted deployments, contact your Platform Engineering team for cluster details.

2. Create a Cloud Function#

Register your containerized application as a Cloud Function with a function definition file.

3. Deploy the Cloud Function#

Deploy your function to a target cluster with a deployment specification file.

4. Invoke the Cloud Function#

Cloud Functions support multiple invocation methods:

  • HTTP Polling: Send requests and poll for results

  • HTTP Streaming: Receive streamed responses

  • gRPC: Use bidirectional streaming for real-time applications

See Deploying Kit Apps for basic steps to create and deploy a container-based streaming function, using NVCF CLI.

Web Client Development#

Create client applications that connect to your NVCF-deployed Kit applications.

Using the Web Streaming Library#

The Omniverse Web Streaming Library provides WebRTC connectivity for Omniverse Streaming:

  • Establish streaming connections to Cloud Functions

  • Handle video and audio streams

  • Send user input to the Kit application

See Web Streaming Client to create a web-streaming client and intermediary proxy, including containerization for cloud deployment.

Working with the Intermediary Proxy#

The intermediary proxy handles client authentication and function invocation:

Purpose

  • Authenticates client requests against your Identity Provider (IdP)

  • Manages NVCF credentials for function invocation

  • Routes requests to the appropriate Cloud Function

Integration Points

  • Configure IdP integration for client authentication

  • Store NVCF credentials securely

  • Specify target function IDs for request routing

Note

Platform Engineers typically deploy the intermediary proxy. Coordinate with your infrastructure team for endpoint URLs and authentication requirements.

Developer Troubleshooting#

Common Issues#

Container fails to start

  • Verify the container runs locally with docker run

  • Check that all dependencies are included in the image

  • Review container logs for missing libraries or configuration

Function deployment fails

  • Confirm you have the correct cluster permissions

  • Verify the container image is accessible from the cluster

  • Check that GPU resources are available

  • Check the NVCF API key is valid

Streaming connection fails

  • Ensure LLS (Low Latency Streaming) is deployed on the cluster

  • Verify network connectivity to the streaming endpoints

  • Check WebRTC configuration in your client application

Client cannot connect

  • Confirm the intermediary proxy is running and accessible

  • Verify authentication credentials are correct

  • Check that the target function is deployed and active

Debugging Tips#

  1. Check function status: Use the NVCF CLI or API to verify your function is active

  2. Review logs: Access container logs through the NVCF CLI

  3. Test locally first: Always verify your Kit application runs correctly in a local container

  4. Validate credentials: Ensure your NVCF API key has the required permissions

Development Workflow Summary#

Phase

Activity

Documentation

Development

Build Kit application with NVCF application layer

Developing and Containerizing Apps

Packaging

Containerize the application

Developing and Containerizing Apps

Deployment

Push container and create Cloud Function

Deploying Kit Apps

Integration

Build web client with streaming

Web Streaming Client

Testing

Validate end-to-end functionality

See Troubleshooting above

Next Steps#