NGC | Catalog
CatalogContainersOmniverse Kit SDK

Omniverse Kit SDK

Logo for Omniverse Kit SDK
Features
Description
Omniverse Kit is a toolkit for building native Omniverse applications and microservices. It leverages a framework that provides a wide variety of functionality through a set of light-weight extensions.
Publisher
NVIDIA
Latest Tag
105.1.0
Modified
January 11, 2024
Compressed Size
2.19 GB
Multinode Support
No
Multi-Arch Support
No
105.1.0 (Latest) Security Scan Results

Linux / amd64

Sorry, your browser does not support inline SVG.

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.

Container information

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 --gpus flag 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.

EOF
    exit 1
fi

# Detect NVIDIA vulkan api version, and create ICD
export VK_ICD_FILENAMES=/tmp/nvidia_icd.json
LD_LIBRARY_PATH=/opt/nvidia/omniverse/kit-sdk-launcher/plugins/carb_gfx \
    /opt/nvidia/omniverse/vkapiversion/bin/vkapiversion \
    "${VK_ICD_FILENAMES}"

License

Use of Omniverse Kit is covered under the NVIDIA Omniverse License Agreement.

Suggested readings