This project contains everything necessary to develop extensions that contain C++ code, along with a number of examples demonstrating best practices for creating them.
While an extension can consist of a single extension.toml file, most contain Python code, C++ code, or a mixture of both:
Kit
|
___________________________________|___________________________________
| | |
Python Only C++ Only Mixed
(eg. omni.example.python.hello_world) (eg. omni.example.cpp.hello_world) (eg. omni.example.cpp.pybind)
Extensive documentation detailing what extensions are and how they work can be found here.
- Clone the GitHub repo to your local machine.
- Open a command prompt and navigate to the root of your cloned repo.
- Run
build.batto bootstrap your dev environment and build the example extensions. - Run
_build\{platform}\release\omni.app.example.extension_browser.batto open an example kit application.- Run
omni.app.example.viewport.batinstead if you want the renderer and main viewport to be enabled. - Run
omni.app.kit.dev.batinstead if you want the full kit developer experience to be enabled.
- Run
- From the menu, select
Window->Extensionsto open the extension browser window. - Enter
omni.example.cppin the search bar at the top of the extension browser window to view the example extensions included with this repo.
- Run
build.bat(if you haven't already) to generate the solution file. - Open
_compiler\vs2019\kit-extension-template-cpp.slnusing Visual Studio 2019. - Select
omni.app.example.extension_browseras the startup project (if it isn't already).- Select
omni.app.example.viewportinstead if you want the renderer and main viewport to be enabled. - Select
omni.app.kit.devinstead if you want the full kit developer experience to be enabled.
- Select
- Run/debug the example kit application, using the extension browser window to enable/disable extensions.
- Copy one of the existing extension examples to a new folder within the
source/extensionsfolder.- The name of the new folder will be the name of your new extension.
- The omni prefix is reserved for NVIDIA applications and extensions.
- Update the fields in your new extension's
config/extension.tomlfile as necessary. - Update your new extension's
premake5.luafile as necessary. - Update your new extension's C++ code in the
pluginsfolder as necessary. - Update your new extension's Python code in the
pythonfolder as necessary. - Update your new extension's Python bindings in the
bindingsfolder as necessary. - Update your new extension's documentation in the
docsfolder as necessary. - Run
build.batto build your new extension. - Refer to the Getting Started section above to open the example kit application and extension browser window.
- Enter the name of your new extension in the search bar at the top of the extension browser window to view it.
- Run
repo.bat docsto generate the documentation for the repo, including all extensions it contains.- You can generate the documentation for a single extension by running
repo.bat docs -p {extension_name}
- You can generate the documentation for a single extension by running
- Open
_build/docs/kit-extension-template-cpp/latest/index.htmlto view the generated documentation.
The source code for this repository is provided as-is and we are not accepting outside contributions.

