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.bat
to bootstrap your dev environment and build the example extensions. - Run
_build\{platform}\release\omni.app.example.extension_browser.bat
to open an example kit application.- Run
omni.app.example.viewport.bat
instead if you want the renderer and main viewport to be enabled. - Run
omni.app.kit.dev.bat
instead if you want the full kit developer experience to be enabled.
- Run
- From the menu, select
Window->Extensions
to open the extension browser window. - Enter
omni.example.cpp
in 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.sln
using Visual Studio 2019. - Select
omni.app.example.extension_browser
as the startup project (if it isn't already).- Select
omni.app.example.viewport
instead if you want the renderer and main viewport to be enabled. - Select
omni.app.kit.dev
instead 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/extensions
folder.- 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.toml
file as necessary. - Update your new extension's
premake5.lua
file as necessary. - Update your new extension's C++ code in the
plugins
folder as necessary. - Update your new extension's Python code in the
python
folder as necessary. - Update your new extension's Python bindings in the
bindings
folder as necessary. - Update your new extension's documentation in the
docs
folder as necessary. - Run
build.bat
to 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 docs
to 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.html
to view the generated documentation.
The source code for this repository is provided as-is and we are not accepting outside contributions.