Create a Project

Before development can begin, you must first create a new Project. There are many ways to create an Omniverse Project, and the method you choose depends on what you intend to build and how you prefer to work. Projects tend to align within distinct categories, yet there remains remarkable flexibility within each category to help you address the needs of the user.
Here we will give instructions on how to begin the most common types of Projects using the Omniverse platform.
Extensions

Extensions are a common development path within Omniverse and they serve as the fundamental building blocks of Applications and Services. In effect, all user-facing elements in an Omniverse Application are created using Extensions. Extensions such as the Content Browser, Viewport and Stage elements are used by the Omniverse USD Composer and Omniverse USD Presenter Applications among many others. Extensions are persistent within Applications so long as they are configured as an application dependency or they are set to load in the Extension Manager.
In creating Omniverse Extensions, multiple options are available:
One powerful and flexible technique involves cloning our template from Github, which can be discovered under the Automated (Repo Tool) tab above.
For a simpler route, we offer a method via the UI (Extension Manager) tab. This provides a straightforward UI workflow to create your extension in another application, such as Omniverse Code.
Requirements: Git, Command-Line
Optional: VS Code
A template for Omniverse Project development can be accessed via the following GitHub repository:
Below we describe the procedure to create an Extension development Project using this template.
Fork and/or Clone the Kit App Template repository link into a local directory using Git. The Windows/Linux command-line might resemble:
From the chosen local directory:
git clone https://github.com/NVIDIA-Omniverse/kit-app-template
This command will generate a subfolder named kit-app-template with multiple files and folders designed to help you customize your Omniverse Project including sample Extension and Application files.
Navigate to the newly created ‘kit-app-template’:
cd kit-app-template
optional If you have VS Code installed, you can now open the Project template in VSCode:
code .
Once completed, you should have a folder structure which looks like this.
![]()
From either the integrated terminal in VSCode or from the command line, create a new Extension:
repo template new
This action will trigger a sequence of options. Make the following selections:
What do you want to add : extension
Choose a template : python-extension-window
Enter a name: my_company.my_app.extension_name
Select a version, for instance: 0.1.0
The newly created Extension is located at:
kit-app-template/source/extensions/my_company.my_app.extension_name
You have now created an Extension template and are ready to begin development.
Additional information
The ‘repo’ command is a useful tool within an Omniverse Project. This command is both configurable and customizable to suit your requirements. To review the tools accessible within any Project, enter the following command:
repo -h
More details on this tool can be found in the Repo Tools Documentation.
If you prefer a comprehensive tutorial that guides you through Application and Extension development see the Kit App Template Tutorial.
With the Extension Manager UI, you have the ability to quickly create an extension directly within an existing application. Step-by-step instructions on creating an extension this way are available under Getting Started with Extensions in the Kit Manual .
You have now created an Extension template and are ready to begin development.
Apps

Omniverse Applications are simply a collection of Extensions. By configuring these collections, you can create high-performance, custom solutions suited to your organization’s needs without necessarily writing any code. NVIDIA develops and maintains a suite of Omniverse Applications to demonstrate what possible solutions you can create from these collections.
An Omniverse Application is a .kit configuration file that instructs the Kit executable to load a predetermined set of Extensions. Either a .bat
file (for Windows) or a .sh
file (for Linux) is employed to launch your Application, by passing your Application .kit file to the Kit executable.
Applications serve as an ideal option when you need tailor-made software with a unique layout and features. Omniverse Applications offer the flexibility to select from existing Extensions or create novel ones to add desired functionality.
For inspiration, you can reference additional applications on the Omniverse Launcher. Download those which appeal to you and explore their installation folders and related .kit files.
Requirements: Git, Command-Line
Optional: VS Code
A template for Omniverse Project development can be accessed via the following GitHub repository:
Below we describe the procedure to create an Extension development Project using this template.
Fork and/or Clone the Kit App Template repository link into a local directory using Git. The Windows/Linux command-line might resemble:
From the chosen local directory:
git clone https://github.com/NVIDIA-Omniverse/kit-app-template
This command will generate a subfolder named kit-app-template with multiple files and folders designed to help you customize your Omniverse Project including sample Extension and Application files.
Navigate to the newly created ‘kit-app-template’:
cd kit-app-template
optional If you have VS Code installed, you can now open the Project template in VSCode:
code .
Once completed, you should have a folder structure which looks like this.
![]()
Navigate to
/source/apps
folder and examine the sample .kit files found there.
You have now created an Application template and are ready to begin development and learn to manipulate your .kit files.
Additional information
If you prefer a comprehensive tutorial that guides you through Application and Extension development see the Kit App Template Tutorial.
Connectors

Omniverse Connectors serve as middleware, enabling communication between Omniverse and various software applications. They allow for the import and export of 3D assets, data, and models between different workflows and tools through the use of Universal Scene Description (OpenUSD) as the interchange format.
Creating a Connector can be beneficial when connecting a third-party application to Omniverse, providing the ability to import, export, and synchronize 3D data via the USD format. A practical use case of this could involve generating a 3D model in Maya, then exporting it to an Omniverse Application like Omniverse USD Composer for rendering with our photo-realistic RTX or Path Tracing renderers.
To equip you with an understanding of creating Omniverse Connectors, we’ve compiled some beneficial resources below:
Video Overview
Gain insight into Omniverse Connectors with this concise overview. This video helps you understand the basics of Connectors and the unique value they bring.
Documentation
Learn about what you can create with Connectors following our samples using OpenUSD and Omniverse Client Library APIs
Video Tutorial
Learn how to connect with the Omniverse platform by syncing data to it via OpenUSD. Establish a live sync session and get an OpenUSD 101 overview to get you started.
Services

Omniverse offers a Services framework based on its foundational Kit SDK. This framework is designed to simplify the construction of Services that can leverage the capabilities of custom Extensions.
Developers can choose to run their Services in various settings, such as local machines, virtual machines, or in the cloud. The framework is flexible, allowing Services to be migrated to different infrastructures easily without changing the Service’s code.
The framework promotes loose coupling, with its components serving as building blocks that foster scalability and resilience. These reusable components help accelerate the development of your tools and features for databases, logging, metrics collection, and progress monitoring.
Creating a Service project employs the same tools used for Extensions, with a similar development process. However, certain aspects, such as configuration and dependencies, are unique to Services. More information is available here
Requirements: Git, Command-Line
Optional: VS Code
A template for Omniverse Project development can be accessed via the following GitHub repository:
Below we describe the procedure to create an Extension development Project using this template.
Fork and/or Clone the Kit App Template repository link into a local directory using Git. The Windows/Linux command-line might resemble:
From the chosen local directory:
git clone https://github.com/NVIDIA-Omniverse/kit-app-template
This command will generate a subfolder named kit-app-template with multiple files and folders designed to help you customize your Omniverse Project including sample Extension and Application files.
Navigate to the newly created ‘kit-app-template’:
cd kit-app-template
optional If you have VS Code installed, you can now open the Project template in VSCode:
code .
Once completed, you should have a folder structure which looks like this.
![]()
From either integrated terminal in VSCode or from the command line, create a new Extension:
repo template new
This action will trigger a sequence of options. Make the following selections:
What do you want to add : extension
Choose a template : python-extension-main
Enter a name: my_company.my_app.extension_name
Select a version, for instance: 0.1.0
The newly created Extension is located at:
kit-app-template/source/extensions/my_company.my_app.extension_name
You have now created an Extension template and are ready to begin development of your Service.
Additional information
The ‘repo’ command is a useful tool within an Omniverse Project. This command is both configurable and customizable to suit your requirements. To review the tools accessible within any Project, enter the following command:
repo -h
More details on this tool can be found in the Repo Tools Documentation.
If you prefer a comprehensive tutorial that guides you through Application and Extension development see the Kit App Template Tutorial.
With the Extension Manager UI, you have the ability to quickly create an extension directly within an existing application. Step-by-step instructions on creating an extension this way are available under Getting Started with Extensions in the Kit Manual .
You have now created an Extension template and are ready to begin development of your Service.