Omniverse enables universal interoperability across different applications and 3D ecosystem vendors. It provides efficient real-time scene updates and is based on open-standards and protocols. The Omniverse Platform is designed to act as a hub, enabling new capabilities to be exposed as microservices to any connected clients and applications.
Easily leverage NVIDIA technologies in your applications
Omniverse provides the ultimate shortcut for integrating NVIDIA technologies and services to your users and with the least amount of effort.
Efficient Collaboration and live sync between applications
Created around USD, Omniverse transfers only deltas between applications allowing for real-time interactions.
Build extensions and applications
The Omniverse platform is built on modularity and performance in mind. Create extensions, micro-services or complete applications using Omniverse Kit.
Omniverse consists of 5 key parts: Nucleus, Connect, Kit, Simulation and RTX Renderer. These components along with connected third party digital content creation (DCC) tools and additional connected Omniverse microservices make up the full Omniverse ecosystem.
Plumbing for the Metaverse with Pixar’s USD
A Universal File Format
USD File Format
The fundamental representation of assets in Omniverse is Pixar’s open-source Universal Scene Description (USD). While USD includes a file format, it is much more than that. USD is a powerful scene representation with an API that allows complex property inheritance, instancing, layering, lazy loading and a wide variety of other key features. Omniverse uses USD for interchange through the Nucleus DB service.
At the center of it all the Omniverse Nucleus
Omniverse Nucleus offers a set of fundamental services that allow a variety of client applications, renderers, and microservices to share and modify representations of virtual worlds.
Nucleus operates under a publish/subscribe model. Subject to access controls, Omniverse clients can publish modifications to digital assets and virtual worlds to the Nucleus Database (DB) or subscribe to their changes. Changes are transmitted in real-time between connected applications. Digital assets can include geometry, lights, materials, textures and other data that describe virtual worlds and their evolution through time.
Connectors Open Portals Between Apps
Omniverse Connect libraries are distributed as plugins that enable client applications to connect to Nucleus and to publish and subscribe to individual assets and full worlds.
With any needed synchronization in place, a DCC plugin will use the Omniverse Connect libraries to apply externally received updates and publish internally generated changes as necessary.
As the application makes changes to its USD representation of the scene, Omniverse Connect keeps track of all the local changes since the last publishing event. When requested by the application, the Omniverse Connect libraries will construct a file-by-file set of differences and publish them to Nucleus where they will then be forwarded to all subscribers.
Create your own apps with Omniverse Kit
Instead of being a monolithic application, it is made of Extensions, these Extensions are Kit building blocks that you can assemble in many ways to create different types of Applications. At the high level, all UI elements, workflow and general features are written in Python making them extremely customizable.
Omniverse Kit is a toolkit for building native Omniverse applications and microservices. It is built on a base framework that provides a wide variety of functionality through a set of light-weight extensions. These stand-alone extensions are plugins that are authored in Python or C++.
Kit is designed to be a flexible and extensible development platform for both Apps and Microservices.. It can be run headless to create a microservice, or with a UI. The UI application can be fully written using the UI engine which enables it to be fully customized.
For better performance or to access some c++ APIs, lower level c++ plugins can be added to those extensions and can be connected to the UI through binding. These extensions include the icons, images and configuration they need to run individually.
Omniverse Kit Extensions
RTX Viewport Extensions
Leverage NVIDIA RTX and MDL materials to represent your data with incredible fidelity. It’s immensely scalable, supporting large arrays of GPUs and provides real-time interactivity even on large scenes and provides accuracy through ray tracing and path tracing options.
Content Browser Extensions
Browse files on your local or remote Omniverse Nucleus Servers, organize your data and find the file you want to work or collaborate on. It includes a rich set of APIs enabling you to automate tasks and processes like using DeepTag to use AI to assign metadata classifications enabling entirely new ways to search through your assets.
USD Widgets and Window Extensions
The Stage Window Extension can be used to build a robust browsing experience of your Stage Data, the Stage Window contains all the information on the objects in the scene and enable you to manipulate them.
The Property Window provides you access to all the object attributes and various other information contained in the USD file. It is also fully extendable, with each section seen inside it spawning from dedicated extensions for each type of primitive in your scene.
Finally the Layer Window gives you access to the powerful layering system provided by USD allowing for rich composition, this is also leveraged to provide Omniverse features around layer access management and live collaboration.
In order to provide a highly responsive hardware-accelerate UI, that would be lightweight and open, the Omniverse framework is built on top of the Dear ImGui library.
- Modern, Fast and Lightweight UI Framework
- Foundation of the Omniverse Kit User Interfaces
- Declarative Syntax and Dynamic Layouts
- Fully Styleable similar to HTML using "Stylesheet-like” workflow
- Support for Omni UI Streaming for lossless UI quality
- Support for XR (VR & AR) rendering (3d projection of the Widgets)
- including XR inputs devices (Controllers, Hands, Eyes)
Ultimately all that you see in Create (the sample application included with Omniverse), View (the main application built for the AEC experience) and other omniverse Apps comes from Extensions, they are the atomic building blocks of the Omniverse Apps. The catalog of extensions will quickly grow as they are primarily written in Python and they are offered with complete source code to help developers easily create, add and modify the tools and workflows they need to be productive.
Simulation in Omniverse is provided by a collection of NVIDIA technologies as plug-ins or microservices to Omniverse Kit.
One of the first simulation tools to be distributed as part of Omniverse is NVIDIA’s open-source physical simulator PhysX, widely used in computer games. The objects that participate in the simulation, their properties, any constraints, and any solver parameters are specified in a custom USD schema. Kit provides features for editing the simulation set-up, starting and stopping it, and adjusting all the parameters.
Omniverse physics currently includes Rigid Body Dynamics, Destruction and Fracture, Vehicle Dynamics and Fluid Dynamics (Flow). Flow is an Eulerian fluid simulation for smoke/fire, leveraging a sparse voxel grid for unbounded simulation domain.
Visualize and Render Breathtaking Worlds
Omniverse supports renderers compliant with Pixar’s Hydra architecture, one of which is the new Omniverse RTX viewport which exploits hardware RT cores in Turing and future-generation NVIDIA architectures to do real-time hardware-accelerated ray tracing and path-tracing.
The renderer does not rasterize before ray-tracing, which allows for very large scenes to be handled in real-time. It has two modes: traditional ray tracing for fast performance and path tracing for the highest quality results.
Omniverse RTX natively supports multiple GPUs in a single system and will soon support interactive rendering across multiple systems.