Development Paths#

Omniverse is designed to be modular and extensible. Your starting point depends on various factors, including:

  • New Applications vs. Integrations: Are you building something new or adding Omniverse functionality to an existing application?

  • Use Case: What are you aiming to develop? Is it a 3D application, a service, or something else?

  • Team Structure and Skills: What skills does your team bring, and how are you planning to manage deployment?

The sections that follow help you identify the most suitable Omniverse solutions for handling data, building applications, and deploying them effectively.

Important

Are you familiar with OpenUSD?

  • No

    If you’re completely new to OpenUSD, begin by learning the fundamentals. Even if your workflow does not involve advanced USD management or authoring, this foundational knowledge is valuable for effectively using the Omniverse platform. Explore the OpenUSD Learning Resources.

  • Yes

    Proceed with the development paths that align with your project goals.


Development Paths#

Omniverse offers various development paths, aligning with individual project goals and needs. Below are key paths and technologies to consider:

OpenUSD Data Exchange#

For developers focused on authoring, converting, or managing OpenUSD content, several tools and solutions are available:

Content Authoring#

  • Native OpenUSD - Flexibility and Control

    Use the OpenUSD Python API or OpenUSD C++ API for complete flexibility and control in handling USD data.

  • OpenUSD Exchange SDK - Ease of Use and Convenience

    Accelerate OpenUSD adoption by designing and developing your own USD I/O solutions. The OpenUSD Exchange SDK provides higher-level convenience on top of lower-level USD concepts.

    OpenUSD Exchange SDK Documentation

    OpenUSD Exchange SDK on GitHub

    OpenUSD Exchange Samples on GitHub

  • USDRT and Fabric - Performance and Scalability in Kit-Based Applications

    Access tools for GPU-accelerated USD data manipulation and scene management within Kit-based applications.

    USDRT (Python and C++): An Omniverse library that mirrors the USD API (and is pin-compatible in most cases), but reads and writes data to and from Fabric instead of USD. It is designed to enable low-cost transitions for developers and technical artists to use Fabric in their code by starting with existing USD code or writing new code with USD APIs they already know.

    Fabric (C++ Only): An Omniverse library that enables high-performance creation, modification, and access of scene data, as well as communication of scene data between CPU and GPU and other Fabric clients on a network.

Enterprise Data Management and Collaboration#

Enterprises handling extensive USD content can leverage the Enterprise Nucleus Server for efficient data management and collaboration. Setting up and managing this server generally requires IT/DevOps expertise and appropriate organizational permissions.

OpenUSD from 3rd-party DCC Applications#

For those using popular Digital Content Creation (DCC) applications with OpenUSD support, utilize their native capabilities where available. Alternatively, explore NVIDIA’s community connectors as integration resources. Note, however, that these are now community-managed and native application support might provide a more robust solution.

A collection of importers, exporters, converters, and USD file format plug-ins that enable various 3D applications, products, and file formats to exchange data using OpenUSD is available here.


Application and Service Development#

Omniverse provides a flexible approach to building OpenUSD based applications and services. Developers can start from scratch with the Kit SDK or integrating Omniverse functionality through Service APIs. This flexibility enables developers to tailor solutions to their needs.

Omniverse Kit SDK - Build From Scratch#

The Omniverse Kit SDK is an ideal choice for developers creating new applications or services that require integration with complex domains such as high-fidelity rendering, physics, OpenUSD, and interactive user interfaces. It is particularly beneficial for those whose expertise lies outside of 3D graphics and low-level application development. The SDK’s integrations enable you to focus on your domain-specific needs, allowing for the efficient creation of applications and services tailored to specialized workflows.

Key features include:

Language Support: Develop with either Python or C++, offering flexibility for various developer preferences.

OpenUSD Foundation: Built upon OpenUSD for creating, manipulating, and rendering rich 3D content.

GPU Acceleration: Leverage GPU-accelerated capabilities for high-fidelity visualization and simulation.

Extensibility: Create specialized extensions that provide dynamic user interfaces, integrate with various systems, and offer direct control over OpenUSD data

Kit SDK Documentation

Kit Services Documentation

Kit SDK Companion Tutorial

Kit SDK NGC Collection

Kit App Template GitHub Repository

Service APIs - Integrating Omniverse Capabilities#

Enhance your existing applications by integrating advanced functionalities through Omniverse Service APIs. Whether your applications are built with Omniverse Kit or your in-house technologies, these APIs can augment your workflows with NVIDIA’s OpenUSD-based services without starting from scratch.

Currently available service APIs include:

  • USD Search API: For developers, creators, and workflow specialists needing to navigate large OpenUSD datasets. This API uses AI to enable natural language and image-based searches, helps locate untagged 3D assets, and performs spatial searches within OpenUSD scenes. It supports:

    • Natural Language and Image-Based Searches.

    • Spatial Search and USD Property Queries.

    • Metadata Filtering and Asset Dependency Tracking.

    USD Search Docs

    USD Search on API Catalog

    USD Search NGC Collection

  • USD Code API: Built on the Llama 3.1 foundation model, it is helpful for developers looking to boost productivity in OpenUSD projects. This API generates Python-USD code, answers OpenUSD-related questions, and aids scene modification. Target audiences include beginner to advanced USD developers with capabilities such as:

    • Answering Knowledge Questions and Code Generation.

    • Natural Language Driven Stage Modification.

    • Code Commenting and Self-Correction.

    USD Code Docs

    USD Code on API Catalog

    USD Code API Collection on NGC


Content Streaming and Deployment#

_images/dev-overview-stream-deploy.png

Omniverse enables developers to stream and interact with Kit SDK-based applications directly through web browsers, making OpenUSD services and capabilities more accessible. Additionally, applications can be deployed using self-managed solutions or NVIDIA’s managed platforms, offering flexibility to meet the needs of both developers and IT/DevOps teams.

Frontend Development for Streaming#

Frontend developers can use Omniverse’s samples and tools to embed and interact with applications via streaming directly within a front-end web client. This functionality allows the integration of high-quality 3D interactions into modern web experiences.

Deployment Options#

IT/DevOps teams can choose between self-managed deployment starting from development artifacts or NVIDIA managed solutions, depending on organizational needs.

Self-Managed Options:

  • Custom Deployment: Use build artifacts (application packages or containerized images) from Kit SDK to deploy applications and services, offering complete control and flexibility. Tooling accessible via the Kit SDK is designed to create both application packages and containers.

  • Omniverse Kit Application Streaming: A sample reference implementation for cloud-based application streaming, including helm charts and containers for managing streaming sessions and resources.

    Omniverse Kit Application Streaming Docs

    Omniverse Kit Application Streaming NGC Collection

NVIDIA Managed Solutions:

  • Omniverse Cloud Platform-as-a-Service (OVC): A fully managed platform designed for large enterprises. Deploy on NVIDIA OVX™ servers with enterprise support and access to customizable applications to scale efficiently.

    OVC Documentation

  • Graphics Delivery Network (GDN): Leverage NVIDIA global cloud-streaming infrastructure to deliver high-fidelity, 3D interactive experiences to web-enabled devices. Best for applications targeting wider distribution.

    GDN Deployment Docs