Kit SDK Overview

Omniverse is a developer platform. It provides Nucleus for collaboration and data storage. Connector API provides USD conversion capabilities. The Omniverse developer platform provides the Kit SDK for developing Applications, Extensions, and Services.

This tutorial is focused on creating Applications and Extensions on top of Kit SDK.

Kit Apps & Extensions

The Kit SDK Extension Architecture allow developers to define Extensions and Applications. An Extension is defined by a .toml file and most commonly has a set of directories with Python or C++ code. Extensions can also bundle resources such as images. An Application is a single .kit file. These modules can state each other as dependencies to combine small capabilities into a greater whole providing complex solutions.

Throughout this document you will encounter many Extensions and Applications. You will start to think of Extensions as “pieces of capabilities” and of Applications as “the collection of Extensions”.

Extension

  • Defined by an extension.toml file

  • Contains code (Python or C++) and/or resource files.

  • Provides a user interface and/or runtime capability.

App

  • Defined by a .kit file.

  • Combines dependencies into an end user workflow.

Extension Architecture

At the foundation of Kit SDK, the Kit Kernel provides the ability to bootstrap Applications and execute code. All capability on top of the Kernel is provided by Extensions. Kit SDK contains hundreds of Extensions providing runtime functionality such as USD, rendering, and physics - and other Extensions providing workflow solutions such as USD Stage inspectors, viewport, and content browsers. By combining the Kit SDK Extensions with one or more custom Extensions, new workflow and service based solutions can be created. The Extension Architecture of Kit has been designed for extreme modularity - enabling rapid development of reusable modules:

  • Extensions are lego pieces of functionality.

  • One Extension can state any number of other Extensions as dependencies.

  • Applications provide a complete solution by combining many Extensions.

  • Any Omniverse developer can create more Extensions.

Kit SDK Stack

Here’s another way to conceptualize the stack of an Application. At the foundation level of an app we have the Kit Kernel. There are runtime Extensions such as USD, RTX, and PhysX. Also behind the scene, there are framework Extensions that enable interfaces to be created, Extension management, and so on. Finally, we have the Extensions that provide end users with interfaces - such as the Viewport, Content Browser, and Stage inspector.

Applications you create will have the same stack - the only difference is what Extensions the Application makes use of and how they are configured.

We will explore the Extensions available in Kit SDK, how to create Applications, and how to get started with Extension development in this tutorial. Let’s get the developer environment setup.