A C and Python library for physically accurate, real-time, sensor simulation and visualization using NVIDIA Omniverse RTX
216
stars
3
commits
Python
primary language
Sep 3, 2026
updated
ovrtx is a C and Python library for embedding Omniverse RTX sensor simulation and visualization directly into applications.
ovrtx is best suited for developers looking to build applications, tools or workflows that need real-time, physically accurate camera, lidar, radar, and other sensor simulation for Physical AI, targeting robotics learning, synthetic data generation, and industrial and design workflows.
Starting with ovrtx version 0.4, ovrtx integrates with the NVIDIA Omniverse ovstage library. ovstage supports loading of USD data to a runtime representation, manages the runtime scene data, ordinal-keyed simulation steps, and change detection. Renderer-owned scene data loading and management APIs remain available in 0.4 for compatibility, but are deprecated. Scene ownership will transition entirely to ovstage in a future release.
[!NOTE] ovrtx is currently pre-release software.
To get started with ovstage follow the instructions blelow for the included Python and C/C++ examples.
Sources live under examples/ and are the source of truth for the code snippets referenced by the ovstage skills — see the examples index.

ovrtx is distributed as a C package (.zip file) available in the Releases page in this repo, and as Python wheels available via pypi.org. These packages include a number of pre-packaged dependencies.
In addition to these pre-packaged dependencies, two other depedencies are noted here:
ovrtx-static loader library, which requires linking to the C++ stdlib.find_package(ovrtx) fails on older versions); building the whole example set through the top-level examples/c/CMakeLists.txt needs 3.18. The examples use cmake to fetch the prebuilt ovrtx and ovstage packages from their GitHub.com release pages.ovrtx wheel.ovrtx and ovstage Python wheels are distributed on PyPI. We recommend using uv to install both packages:
uv add ovrtx ovstage
pip also works:
pip install ovrtx ovstage
ovstage is optional when maintaining standalone compatibility code. The renderer-owned scene APIs used by that mode are deprecated in ovrtx 0.4.
All the examples in this repository contain pyproject.toml files that are tested with uv. Python 3.11-3.13 are supported.
If installation fails, first verify that you are using Python 3.11-3.13 and that your environment can reach PyPI. If you need a specific release artifact, GitHub Releases also contain Python wheels that can be installed explicitly.
To get started with the repository examples, first clone this repository and run the minimal example with uv:
git clone https://github.com/NVIDIA-Omniverse/ovrtx.git
cd ovrtx/examples/python/minimal
uv run main.py --png
See the Python minimal example documentation for more information on environment setup and prerequisites.
The minimal example shows how to create the renderer, load an OpenUSD scene and render a single image, copying the results back to the CPU for display.

The first step from a newly built application will block for 1-2 minutes while shaders are compiled and cached.
The C/C++ examples require CMake 3.16 or newer and a development environment. On Windows this is provided by Visual Studio 2022 17.8 or newer, which is the oldest release shipping the VC runtime 14.38 that ovrtx requires (see the dependency note above).
On Linux (Ubuntu):
sudo apt-get install build-essential cmake
To get started, first clone this repository:
git clone https://github.com/NVIDIA-Omniverse/ovrtx.git
cd ovrtx/examples/c/minimal
Then configure, build, and run the minimal example for your platform.
On Windows:
cmake -B build
cmake --build build --config Release
.\build\Release\minimal.exe
On Linux:
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
./build/minimal
See the C minimal example documentation for more information on environment setup and prerequisites.
The minimal example shows how to create the renderer, load an OpenUSD scene and render a single image, copying the results back to the CPU for writing out as a PNG.

The resulting image will be written to ./out.png and can be inspected with any image viewer.
The first step from a newly built application will block for 1-2 minutes while shaders are compiled and cached.
Further examples using both the C and Python APIs are available in the examples directory. See the individual examples for building and usage instructions.
The Releases page of this repository contains binary builds for the official releases of the ovrtx C library and also includes corresponding Python wheels. PyPI is the recommended consumption path for Python users.
These binaries are provided for the supported platforms:
The libraries require a compatible NVIDIA RTX-capable GPU with a compatible NVIDIA driver on the system to be able to initialize correctly. Supported driver versions are listed in Driver requirements.
Tests live under tests/docs/ in three independent suites: Python, C, and USD validation.
ovrtx 0.4 compatibility: Stage-owning Python documentation tests request an attached ovstage fixture, with focused compatibility coverage for deprecated renderer wrappers. C documentation tests remain on deprecated standalone renderer stage APIs. USD validation tests do not exercise either stage-ownership model.
cd tests/docs/python
# Run the full suite
uv run pytest -v
# Run a single test
uv run pytest test_base.py::test_base -v
uv run pytest test_base.py::test_bind_material -v
cd tests/docs/c
cmake -B build
cmake --build build --config Release
# Run the full suite
cd build && ctest --output-on-failure
# Run a single test
ctest -R BaseTest.RenderLdrColor --output-on-failure
# Or use the gtest binary directly
./ovrtx_docs_tests --gtest_filter=BaseTest.BindMaterial
cd tests/docs/usd
uv run pytest -v
Rendered images are written to _output/ under the respective suite directory.
Documentation is published at https://nvidia-omniverse.github.io/ovrtx
Full build instructions, prerequisites, and platform-specific notes are in docs/README.md.
Prerequisites: uv and Doxygen (see docs/README.md for Windows installation and project-local download options).
Linux:
cd docs
make html
Windows:
cd docs
make.bat html
Then serve the output locally:
uv run python -m http.server 8000 -d _build/html
Then open http://localhost:8000/ in a browser.
At this time this project is not open to external contributions.
NVIDIA Corporation
The software and materials are governed by the NVIDIA Software License Agreement and the Product Specific Terms for NVIDIA AI Products.
This project will download and install additional third-party open source software projects. Review the license terms of these open source projects before use.
To report a security issue, see SECURITY.md. Do not report security vulnerabilities through GitHub/GitLab.
Report documentation issues, installation problems, and runtime issues through the NVIDIA Omniverse developer forum. https://forums.developer.nvidia.com/c/omniverse/300
A public roadmap will be shared as ovrtx approaches general availability. For recent additions and changes, see the release notes.
The skills directory contains a series of Skills to help AI coding agents to understand how to use the API (and they're useful for humans too). Copy this directory to your project and point your agent at it.
Agents should use the Python minimal example as the first runtime validation unless C is specifically requested. Follow that example's README for validation steps, and use Driver requirements to check supported NVIDIA driver versions.
Copyright (c) 2026 NVIDIA Corporation.
2 commits
1 commits
Python
49.5%
C++
33.9%
C
15.8%
A C and Python library for physically accurate, real-time, sensor simulation and visualization using NVIDIA Omniverse RTX
216
stars
3
commits
Python
primary language
Sep 3, 2026
updated
ovrtx is a C and Python library for embedding Omniverse RTX sensor simulation and visualization directly into applications.
ovrtx is best suited for developers looking to build applications, tools or workflows that need real-time, physically accurate camera, lidar, radar, and other sensor simulation for Physical AI, targeting robotics learning, synthetic data generation, and industrial and design workflows.
Starting with ovrtx version 0.4, ovrtx integrates with the NVIDIA Omniverse ovstage library. ovstage supports loading of USD data to a runtime representation, manages the runtime scene data, ordinal-keyed simulation steps, and change detection. Renderer-owned scene data loading and management APIs remain available in 0.4 for compatibility, but are deprecated. Scene ownership will transition entirely to ovstage in a future release.
[!NOTE] ovrtx is currently pre-release software.
To get started with ovstage follow the instructions blelow for the included Python and C/C++ examples.
Sources live under examples/ and are the source of truth for the code snippets referenced by the ovstage skills — see the examples index.

ovrtx is distributed as a C package (.zip file) available in the Releases page in this repo, and as Python wheels available via pypi.org. These packages include a number of pre-packaged dependencies.
In addition to these pre-packaged dependencies, two other depedencies are noted here:
ovrtx-static loader library, which requires linking to the C++ stdlib.find_package(ovrtx) fails on older versions); building the whole example set through the top-level examples/c/CMakeLists.txt needs 3.18. The examples use cmake to fetch the prebuilt ovrtx and ovstage packages from their GitHub.com release pages.ovrtx wheel.ovrtx and ovstage Python wheels are distributed on PyPI. We recommend using uv to install both packages:
uv add ovrtx ovstage
pip also works:
pip install ovrtx ovstage
ovstage is optional when maintaining standalone compatibility code. The renderer-owned scene APIs used by that mode are deprecated in ovrtx 0.4.
All the examples in this repository contain pyproject.toml files that are tested with uv. Python 3.11-3.13 are supported.
If installation fails, first verify that you are using Python 3.11-3.13 and that your environment can reach PyPI. If you need a specific release artifact, GitHub Releases also contain Python wheels that can be installed explicitly.
To get started with the repository examples, first clone this repository and run the minimal example with uv:
git clone https://github.com/NVIDIA-Omniverse/ovrtx.git
cd ovrtx/examples/python/minimal
uv run main.py --png
See the Python minimal example documentation for more information on environment setup and prerequisites.
The minimal example shows how to create the renderer, load an OpenUSD scene and render a single image, copying the results back to the CPU for display.

The first step from a newly built application will block for 1-2 minutes while shaders are compiled and cached.
The C/C++ examples require CMake 3.16 or newer and a development environment. On Windows this is provided by Visual Studio 2022 17.8 or newer, which is the oldest release shipping the VC runtime 14.38 that ovrtx requires (see the dependency note above).
On Linux (Ubuntu):
sudo apt-get install build-essential cmake
To get started, first clone this repository:
git clone https://github.com/NVIDIA-Omniverse/ovrtx.git
cd ovrtx/examples/c/minimal
Then configure, build, and run the minimal example for your platform.
On Windows:
cmake -B build
cmake --build build --config Release
.\build\Release\minimal.exe
On Linux:
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
./build/minimal
See the C minimal example documentation for more information on environment setup and prerequisites.
The minimal example shows how to create the renderer, load an OpenUSD scene and render a single image, copying the results back to the CPU for writing out as a PNG.

The resulting image will be written to ./out.png and can be inspected with any image viewer.
The first step from a newly built application will block for 1-2 minutes while shaders are compiled and cached.
Further examples using both the C and Python APIs are available in the examples directory. See the individual examples for building and usage instructions.
The Releases page of this repository contains binary builds for the official releases of the ovrtx C library and also includes corresponding Python wheels. PyPI is the recommended consumption path for Python users.
These binaries are provided for the supported platforms:
The libraries require a compatible NVIDIA RTX-capable GPU with a compatible NVIDIA driver on the system to be able to initialize correctly. Supported driver versions are listed in Driver requirements.
Tests live under tests/docs/ in three independent suites: Python, C, and USD validation.
ovrtx 0.4 compatibility: Stage-owning Python documentation tests request an attached ovstage fixture, with focused compatibility coverage for deprecated renderer wrappers. C documentation tests remain on deprecated standalone renderer stage APIs. USD validation tests do not exercise either stage-ownership model.
cd tests/docs/python
# Run the full suite
uv run pytest -v
# Run a single test
uv run pytest test_base.py::test_base -v
uv run pytest test_base.py::test_bind_material -v
cd tests/docs/c
cmake -B build
cmake --build build --config Release
# Run the full suite
cd build && ctest --output-on-failure
# Run a single test
ctest -R BaseTest.RenderLdrColor --output-on-failure
# Or use the gtest binary directly
./ovrtx_docs_tests --gtest_filter=BaseTest.BindMaterial
cd tests/docs/usd
uv run pytest -v
Rendered images are written to _output/ under the respective suite directory.
Documentation is published at https://nvidia-omniverse.github.io/ovrtx
Full build instructions, prerequisites, and platform-specific notes are in docs/README.md.
Prerequisites: uv and Doxygen (see docs/README.md for Windows installation and project-local download options).
Linux:
cd docs
make html
Windows:
cd docs
make.bat html
Then serve the output locally:
uv run python -m http.server 8000 -d _build/html
Then open http://localhost:8000/ in a browser.
At this time this project is not open to external contributions.
NVIDIA Corporation
The software and materials are governed by the NVIDIA Software License Agreement and the Product Specific Terms for NVIDIA AI Products.
This project will download and install additional third-party open source software projects. Review the license terms of these open source projects before use.
To report a security issue, see SECURITY.md. Do not report security vulnerabilities through GitHub/GitLab.
Report documentation issues, installation problems, and runtime issues through the NVIDIA Omniverse developer forum. https://forums.developer.nvidia.com/c/omniverse/300
A public roadmap will be shared as ovrtx approaches general availability. For recent additions and changes, see the release notes.
The skills directory contains a series of Skills to help AI coding agents to understand how to use the API (and they're useful for humans too). Copy this directory to your project and point your agent at it.
Agents should use the Python minimal example as the first runtime validation unless C is specifically requested. Follow that example's README for validation steps, and use Driver requirements to check supported NVIDIA driver versions.
Copyright (c) 2026 NVIDIA Corporation.
2 commits
1 commits
Python
49.5%
C++
33.9%
C
15.8%