Omniverse Kit SDK
NVIDIA Omniverse Kit™ is a toolkit for building native Omniverse applications and microservices. It is built on a base framework known as Carbonite that provides a wide variety of functionality through a set of light-weight plugins. Carbonite plugins are all authored with C interfaces for persistent ABI compatibility. A Python interpreter is provided for scripting and customization.
Omniverse Kit is designed to be the premiere foundation for new Omniverse-connected tools and microservices. It can be run headless to create a microservice, or with a UI. The UI is generated dynamically with Python allowing full customization. Omniverse Kit native UI widgets are written with Dear Imgui.
Omniverse Kit comes with a default UI that allows it to act as a USD inspector, editor, layout tool and viewer. Customized UI’s may look nothing like the default. NVIDIA expects to ship sets of customizations that are more appropriate to specific target industries and user communities.
Omniverse Kit based applications built with UI can provide rendering windows. The standard rendering interface for applications using USD is part of the USD distribution and known as Hydra. Any Hydra-compliant renderer can be connected to a Omniverse Kit rendering window. Available Hydra-compliant renderers include NVIDIA’s Omniverse Omniverse RTX Renderer, AMD’s ProRender and Intel’s OspRay.
This container provides the Kit SDK with which applications and microservices can be built. The SDK contained in the container is identical to the one available on the Omniverse Launcher.
It comes bundled with 2 startup scripts.
startup.sh: Allows to run the Kit SDK with GPUs enabled and will require the
--gpusflag to be able to run when running from Docker
startup_nogpu.sh: Allows to run the Kit SDK without GPUs, for none GPU workloads.
This container is meant as a base container to layer custom extensions into for building OV applications or services and it is expected for users to provide a custom startup script to run their extensions and services.
There is some essential set up in the shipped startup.sh script to configure drivers and libraries at startup. That logic is required for all apps and services running in a container requiring a GPU:
# Check for libGLX_nvidia.so.0 (needed for vulkan)
ldconfig -p | grep libGLX_nvidia.so.0 || NOTFOUND=1
if [[ -v NOTFOUND ]]; then
cat << EOF > /dev/stderr
Fatal Error: Can't find libGLX_nvidia.so.0...
Ensure running with NVIDIA runtime. (--gpus all) or (--runtime nvidia)
If no GPU is required, please run startup_nogpu.sh as the entrypoint.
# Detect NVIDIA vulkan api version, and create ICD
Use of Omniverse Kit is covered under the NVIDIA Omniverse License Agreement.