NVIDIA Omniverse is a large and extensible platform with a lot of useful functionality. The development path you choose depends on what you’d like to build. For example, developing interactivity in a 3D scene is quite different than programming a Service to scale up your custom Omniverse App. This page is here to help you navigate the various development paths so you can build what you need.
If you are already familiar with an Omniverse App like Omniverse Code or Omniverse USD Composer and want to program a tool or simulation, read the following analysis for a comparison of the programming domains within a USD authoring App.
Extensions are the most common development path in Omniverse. They are the building blocks of Applications and Services. Virtually all user interface elements in an Omniverse App, such as Omniverse USD Composer or Omniverse USD Presenter, are created using Extensions. Examples include the Content Browser, the Viewport and the Stage. Extensions often create their own UI and are persistent in an App as long as they are set to load in the Extension Manager.
Services allow software development in which large applications are built from modular components using distributed computing across processes and or networks. The modules use a common API that may be implemented on any number of given platforms
An Omniverse Connector is middleware software that enables integration and communication between the Omniverse platform and other software applications, allowing users to import/export or sync 3D data between different tools and workflows. Connectors have varying degrees of functionality.
Click here for a Full List of Existing Connectors
An Omniverse App is built upon a specific set of Extensions to provide a desired functionality. An App gives the user a customized experience by implementing the UI’s of its Extensions with a custom layout. You can quickly and easily create customized applications comprised of any number of Extensions developed by you, the Omniverse Community or NVIDIA. An App can be as simple as a 3D viewer or as complex as an AI suite. This modular approach to building Apps makes it easy to create a customized workflow or a global scale cloud application
OmniGraph is Omniverse’s visual scripting engine. With its graphical user interface, you can create logic graphs in which data flows from one node to another, and those nodes operate on the data. With hundreds of OmniGraph nodes at your disposal, you can automate behaviors in Omniverse from simple prim transformations to complex, event-based animations–all without writing a single line of code.
Go to the OmniGraph Node Library for a complete list of Omnigraph Nodes.
Command-line Scripting lets you access Kit’s python interpreter and scripting system without the overhead of an App.
Python Scripting Components
Python Scripting Components (PSC) are a convenient way to attach python code to a specific USD asset (prim) in your scene (stage). A PSC is a python class that contains a reference to the prim it’s attached to. Every PSC in a stage creates a new instance of the class. This means that you can attach a PSC to any number of prims and each one will be its own instance and will behave independently from the others. If you are familiar with Unity, its very similar to attaching a Script Component to a Game Object. For Unreal developers, it’s similar to attaching a Component Actor to a Blueprint.
The Script Editor
The Script Editor lets you manually execute script files or the script in the Script Editor’s text editor window. It’s execution is similar to a command line environment and can leverage much of the Kit API and USD Schemas from the currently loaded extensions. This makes it a great way perform simple tasks or tests without having to create an Extension.