NVIDIA、既存アプリにRTXセンサーシミュレーション統合
NVIDIA は、既存のアプリケーションに物理 AI 機能を統合するための軽量 SDK「ovrtx」を NVIDIA Agent Toolkit の一部として公開し、OpenUSD ベースのシミュレーションとセンサー出力生成を容易にした。
キーポイント
ovrtx ライブラリの公開
NVIDIA Agent Toolkit に含まれる「ovrtx」がプリリリース版として GitHub で利用可能となり、C および Python SDK を通じてカメラ、LiDAR、レーダーなどのセンサー出力を OpenUSD コンテンツから生成できる。
既存ワークフローへのシームレス統合
Blender によるワークフローや CAD パイプラインなど、開発者が既に使用しているツールやサービスに物理 AI の能力を組み込むためのモジュールとして設計されており、ホストアプリケーション内で制御を維持できる。
共通ランタイム環境の提供
「ovstage」が OpenUSD シーンデータの共有ランタイムステージとして機能し、ovphysx や ovrtx などのライブラリ間でシミュレーション状態やシーン変更を効率的に交換可能にする。
具体的な実装事例の提示
OpenUSD コンテンツの読み込みからセンサー出力の設定、アプリケーションループからのステップ実行、結果の取得までの手順が解説され、PTC Onshape Render Studio や SimReady Blender サンプルでの適用例が示されている。
既存ワークフローへの統合
CADシステムやBlender、PLM/PDMワークフローなど、開発者が日常的に使用するツール内でOpenUSDシーンの可視化や物理ベースデータ生成を可能にする。
ライブラリファーストのアプローチ
ovrtxはNVIDIA Omniverse Librariesの一部として、センサー、物理学、ストレージ機能をAPIを通じて提供し、開発者が機能の実行場所を細かく制御できるようにする。
SIGGRAPH 2026での発表と新機能
NVIDIA Agent ToolkitにOmniverse Librariesが追加され、ovrtxはRTXセンサーシミュレーション層としてカメラ、LiDAR、レーダーなどの出力を生成する役割を果たす。
重要な引用
Developers building 3D, design, simulation, robotics, and industrial digital twin applications need ways to bring physical AI capabilities into the tools and services they already use.
ovrtx is the RTX sensor simulation library in that stack, now available as prerelease software on GitHub.
ovstage provides a shared runtime stage for OpenUSD scene data, enabling libraries such as ovphysx and ovrtx to exchange simulation state, scene changes, and prim identities through a common data substrate.
"ovrtx applies that approach specifically to Omniverse RTX sensor simulation and visualization."
"It helps applications and agents generate camera, lidar, radar, semantic segmentation, and visual preflight outputs from OpenUSD scenes."
Figure 1. Existing application workflow using OpenUSD scene data with ovrtx to generate RTX-rendered camera and sensor outputs
影響分析・編集コメントを表示
影響分析
この発表は、NVIDIA が単なるレンダリングエンジンから、物理 AI とセンサーシミュレーションを標準機能として提供するプラットフォームへと進化していることを示しています。特に「既存のワークフローへの統合」に焦点を当てたアプローチにより、開発者が大規模なシステム変更を行わずに物理 AI の恩恵を受けられるようになり、ロボット工学やデジタルツイン分野での実装スピードが劇的に向上する可能性があります。
編集コメント
NVIDIA は、開発者が物理 AI を既存のツールに組み込む際の障壁を下げるための具体的な SDK「ovrtx」を公開しました。これは、デジタルツインやロボット工学の分野において、シミュレーションと実世界のデータ連携をより現実的なものにする重要な一歩と言えます。
3D、デザイン、シミュレーション、ロボティクス、産業用デジタルツインアプリケーションを開発するエンジニアは、既存のツールやサービスに 物理 AI の能力を組み込む方法を求めています。これらのワークフローにはすでに、OpenUSD によるシーン定義、シミュレーション対応 ([SimReady]) のアセット、Blender ベースの作業流、CAD パイプライン、あるいはドメイン特化型のアプリスタックが活用されているケースが少なくありません。課題は、アプリケーションや AI エージェントに対して、シーンの確認、センサー出力の生成、変更点のテスト、そして開発者が信頼できるエビデンスの返却といった機能を呼び出せるツールを提供することです。
NVIDIA Omniverse ライブラリ は、現在 NVIDIA Agent Toolkit の一部となり、既存のアプリケーションにこれらの機能を追加するためのモジュール型ビルディングブロックを提供しています。そのスタックに含まれる ovrtx は RTX センサーシミュレーションライブラリで、現在は GitHub でプレリリース版として利用可能です。これにより、開発者は軽量な C および Python SDK を用いて、OpenUSD コンテンツからカメラ、LiDAR、レーダーなどのセンサー出力を生成できるようになります。また、制御権限はホストアプリケーション内に保持されるため、柔軟な統合が可能です。
Omniverse ライブラリスタック内では、ovstage が OpenUSD のシーンデータを扱うための共有ランタイムステージを提供しています。これにより、ovphysx や ovrtx といったライブラリが、共通のデータ基盤を通じてシミュレーションの状態やシーンの変更、プリムの ID をやり取りすることが可能になります。
本記事では、Omniverse ライブラリモデルの一環として ovrtx が既存のワークフローにどのように統合されるかを解説します。具体的には、OpenUSD コンテンツの読み込みから始まり、レンダリングとセンサー出力の設定、アプリケーションループからのステップ実行、結果をアプリ側へ読み込むまでの手順を追います。さらに、PTC Onshape Render Studio の例や SimReady Blender のサンプルワークフローにおいて、同じモデルがどのように適用されるかも紹介します。
NVIDIA Omniverse ライブラリは開発者をどう支えるのか?
シミュレーションとレンダリングは、設計、ロボティクス、自動運転車 (AV)、産業用デジタルツイン、物理 AI など、幅広いワークフローにおいてアプリケーション層の一部となっています。
開発者やチームは、使用するツール内で OpenUSD シーンを可視化し、物理的に根拠のあるデータを生成し、知覚システムをテストし、動作を検証し、結果を確認する必要があります。
これを実現するための環境には、CAD システム、Blender を活用したワークフロー、PLM や PDM の運用、OpenUSD アセットパイプライン、社内シミュレーションスタック、そしてドメイン固有のアプリケーションなどが含まれます。
前回の投稿「NVIDIA Omniverse ライブラリを活用して既存アプリに物理 AI 機能を統合する」では、既存のアプリケーションスタックに Omniverse の機能を追加するためのライブラリファーストなアプローチを紹介しました。この手法では、スタンドアロンのライブラリがセンサー、物理演算、ストレージの各機能を特化された API を通じて公開し、チームがこれらの機能を自社のツールやサービス内でどこで実行するかを細かく制御できるようになります。
ovrtx は、このアプローチを特に Omniverse RTX のセンサーシミュレーションと可視化に適用したものです。SIGGRAPH 2026 で発表された通り、NVIDIA Agent Toolkit には now Omniverse ライブラリが含まれており、その中で ovrtx が RTX センサーシミュレーションのレイヤーとして機能します。
ovrtx を利用すると、OpenUSD シーンデータからカメラ映像、LiDAR、レーダー、セマンティックセグメンテーション、視覚的な事前チェック(preflight)出力などを生成できます。他の Omniverse ライブラリと組み合わせることで、シミュレーション対応の 3D コンテンツを準備・検証するためのツール駆動型ワークフローの一部として活用可能です。
image*図 1. OpenUSD シーンデータを用いた既存のアプリケーションワークフロー。ovrtx を活用して RTX レンダリングされたカメラおよびセンサー出力を生成する様子*
Figure 1. Existing application workflow using OpenUSD scene data with ovrtx to generate RTX-rendered camera and sensor outputs
センサーシミュレーションを既存のワークフローに組み込む際、アプリケーション制御は極めて重要です。物理 AI チームにとって、これらの出力は合成データ生成(SDG)、知覚機能のテスト、ロボットワークフロー、シミュレーション対応のデジタルツイン、そして設計レビューを支えるものとなります。
ovrtx が GitHub でプレリリース版として利用可能になったことで、C および Python の API を確認したり、サンプルを実行したり、OpenUSD シーンの読み込みをテストしたり、RTX センサー出力が自身のアプリケーションループにどう組み込まれるかを評価することができるようになりました。
既存ワークフローへの ovrtx 統合方法
ovrtx の核心となる原理はシンプルです。開発者として、アプリケーションのアーキテクチャ、UI、データモデル、そしてワークフローを維持したまま、NVIDIA Omniverse RTX センサーシミュレーションを自社のアプリケーションに持ち込むことができます。軽量な C および Python SDK は、リアルタイム 3D ビューポート、RTX レンダリング、あるいはカメラ、LiDAR、レーダー、超音波センサーおよび関連出力のシミュレーションが必要なプロジェクト向けに設計されています。
典型的な統合プロセスは以下の 5 つのステップで構成されます:
- ovrtx レンダラーを作成して設定する
- アプリケーションの既存パイプラインから OpenUSD コンテンツを読み込むか参照する
- ワークフローが必要とするカメラ、LiDAR、レーダー、セマンティックセグメンテーション、またはレンダリング出力に対して RenderProducts と RenderVars を定義する
- アプリケーションループ内でレンダリングまたはセンサーシミュレーションを実行する
- 結果を CPU または GPU メモリにマッピングし、アプリで表示、保存、分析、あるいは他のプロセスへ渡せるようにする
以下に、ホストアプリケーションがワークフローを管理する擬似コードの例を示します。
renderer = ovrtx.Renderer()
renderer.open_usd(app_scene_or_usd_layer)
render_products = {"/Render/Camera"}
while app.is_running():
app.update_scene_state()
products = renderer.step(
render_products=render_products,
delta_time=app.frame_delta_seconds,
)
for product in products.values():
for frame in product.frames:
color = frame.render_vars["LdrColor"].map(device=ovrtx.Device.CPU)
app.use_render_output(color)
制御は常にホストアプリケーション側にあります。ループを管理するのはアプリ側であり、ovrtx は要求されたレンダリングやセンサー出力を生成します。その結果は、表示、保存、分析、あるいは下流の処理のためにワークフローに返されます。
ovrtx 統合フローにおけるコアコンポーネント
ホストアプリケーションが ovrtx を呼び出す際、主に以下の構成要素を使用します。オムニバース RTX レンダラー、OpenUSD のステージ、そして生成する出力を定義する RenderProducts と RenderVars です。
Omniverse RTX レンダラー
Omniverse RTX レンダラー は、ovrtx ライブラリが提供する中核技術です。これは NVIDIA RTX の恩恵を最大限に活用し、NVIDIA RTX GPU に搭載されたオンチップの RT コアと、Tensor Core による AI アクセラレーションを組み合わせています。NVIDIA Omniverse RTX を用いれば、柔軟な物理ベースの照明やマテリアルを活用してカメラ、LiDAR、レーダー、および関連するセンサー出力をモデル化し、3D 環境内での光伝搬をリアルタイムかつ物理ベースでレンダリング・シミュレーションすることが可能になります。
ovstage
ovstage は Omniverse ライブラリ全体で共有されるランタイムステージです。CPU と GPU メモリ間をまたぐトランスフォーム、マテリアル、階層構造、メタデータ、シミュレーション状態といった OpenUSD のシーンデータを、読み書き・照会・管理するための C および Python API を提供します。複数のライブラリを組み合わせたワークフローでは、ovstage が仲介役となり、ovphysx が更新されたシミュレーション状態を記述し、ovrtx がセンサーシミュレーションのために変更されたシーンデータを読み取ることを可能にします。これにより、各ライブラリが個別のシーン表現を維持する必要はなくなります。
OpenUSD
NVIDIA は、Omniverse およびシミュレーションワークフローの基盤となるデータレイヤーとして OpenUSD を採用しています。OpenUSD は 3D シーンの標準的なデータ表現を定義し、それらのシーンを読み書きするための C++ と Python の API を提供します。OpenUSD 内のデータは ovrtx がレンダリング可能なシーングラフとして整理されます。USD ステージでは、複雑なジオメトリ、光度照明、OpenPBR マテリアル、カメラ、その他のセンサーを定義・処理することができます。
RenderProducts and RenderVars
RenderProducts と RenderVars は、シミュレーション結果やレンダリング設定を管理するための重要な概念です。これらはシーン内のオブジェクトの状態や、センサーが検出する情報を構造化して保持します。
RenderProducts と RenderVars は、レンダラーやセンサーシミュレーターから取得する出力を定義するための USD ネイティブな手段を提供します。これらを用いることで、出力タイプ、解像度、フォーマット、その他のパラメータを柔軟に指定することが可能です。
RenderProduct は 1 つ以上のセンサーと紐付けられ、ovrtx がその RenderProduct に関連付けられた RenderVars で定義された出力を生成します。これらの設定はプログラム上で定義して USD シーンに保存することもできますし、ovrtx の C または Python API を用いて実行時に動的に定義することも可能です。
アプリケーションフロー
ovrtx は、OpenUSD シーンの可視化やレンダリング・センサー出力の生成が必要な際に、アプリがオンデマンドで呼び出すサービスと捉えてください。レンダラーの作成、OpenUSD コンテンツの読み込み、RenderProducts と RenderVars の設定といった初期ステップは、通常 1 回だけ、あるいは稀にしか行われません。一方、レンダリングやセンサーシミュレーションの実行、出力の取得といった最終ステップは、アプリケーションループ内で継続的に実行されます。
ovrtx レンダラーの作成と設定
Python、C、C++ のいずれで書かれた既存アプリでも、まずはレンダラーインスタンスを作成し、必要な基本オプションを設定することから始めます。
- ovrtx を初期化してレンダラーオブジェクトを構築し、対象となる GPU とグローバルな設定オプションを指定します。
- 複数のビューやセンサーがある場合でも、それらを統括するレンダラーは単一のインスタンスで管理されます。複数の RenderProduct は後から紐付けられます。
renderer = ovrtx.Renderer()
OpenUSD コンテンツの読み込みまたは参照
次に、レンダラーにはどの USD ステージから描画するかを指定する必要があります。
open_usdで OpenUSD ファイルや URL を指し示すか、open_usd_from_stringで文字列から直接 USDA を読み込むか、add_usd_referenceで追加の参照コンテンツを合成します。
- アプリケーションにすでに Omniverse や USD のパイプラインが構築されている場合、ovrtx はその OpenUSD コンテンツをそのまま読み取ることができます。つまり、別の形式でシーンを再構築する必要はありません。
renderer.open_usd("warehouse_scene.usd")
レンダリングとセンサー出力の設定
レンダラーとステージが準備できたら、次はアプリケーションが必要な出力を定義します。
RenderProducts を定義する
- 例として、ロボットの RGB カメラや、監視用の上空カメラ、車両の回転式 LiDAR センサーなどが挙げられます。
各 RenderProduct は、USD ステージ内の対応するカメラまたはセンサーの prim パスと解像度に紐付けます。
RenderVars をアタッチする
各 RenderProduct に対して、ovrtx が生成すべき出力を指定します。具体的には以下のような項目があります。
- カラー情報(LdrColor や HdrColor など)
- 深度または距離データ
- サフェスノーマル
- セマンティックセグメンテーション
- LiDAR ポイントクラウド
- レーダー検出結果
- その他、センサー固有のテンソル
アプリケーションループからレンダリングやセンサーシミュレーションを実行する
アプリケーションはメインループ内で ovrtx を呼び出します。このループには、すでに物理演算、アニメーション、ユーザー入力、ネットワーク処理、あるいはその他のシミュレーション状態の管理が含まれていることが一般的です。
アプリが OpenUSD のステージを更新した後、時間刻みを渡すことでレンダリングやセンサーシミュレーションを進めます。これにより、ovrtx は設定された RenderProducts と RenderVars に対して要求された出力を生成します。
アプリケーションへの出力の返却
生成された各フレームについて、アプリは CPU または GPU メモリ上のテンソルとして必要な出力を読み取り、必要に応じてアプリケーションロジックの他の部分で利用します。
データの GPU と CPU 双方へのアクセス方法:
- ovrtx は各 RenderVar をテンソルハンドルとして公開しています。DLPack、NumPy、または PyTorch のユーティリティを使用してこれをラップしてください。
- モデルに供給するなど、GPU 上で処理を継続したい場合は、バッファをデバイス上に保持したまま、コピーなしで直接 PyTorch や Warp に渡します。
- 画像や点群データを保存する必要がある場合は、CPU メモリ上の出力を要求し、PNG ファイルの書き出しや NumPy アレイの作成など、他のロジックを使用して処理を行います。
op = renderer.step_async(
render_products={"/Render/Camera"},
delta_time=1.0 / 60,
)
pending = op.wait()
products = pending.fetch()
for _name, product in products.items():
for frame in product.frames:
var = frame.render_vars["LdrColor"].map(
device=ovrtx.Device.CPU
)ovrtx を他の Omniverse ライブラリと併用するタイミング
ovrtx は、ホストアプリケーションの要件に応じて、単独で使用することも、他の NVIDIA Omniverse ライブラリと併用することも可能です。RTX センシミュレーションやビューポート出力、可視化が必要であれば、まずは ovrtx から始めましょう。さらに、物理演算やストリーミング、ストレージ管理、あるいはその他のアプリケーションサービスが必要な場合は、対応するライブラリを追加します。
アプリケーションの要件と機能
| 要件 | 使用ライブラリ | 機能 |
|---|---|---|
| RTX センシミュレーション、ビューポート出力、可視化 | ovrtx | OpenUSD コンテンツからレンダリングされたフレームやセンサー出力を生成 |
| レンダリングまたはセンサー出力を伴う物理演算 | ovrtx + ovphysx | アプリケーションワークフローで可視化したり利用したりできる物理挙動を追加 |
| 遠隔地やブラウザベースの体験へレンダリング出力をストリーミング | ovrtx + ovstream | インタラクティブな閲覧やレビューのためのストリーミング経路を追加 |
| ストレージワークフロー全体での OpenUSD コンテンツ管理 | ovrtx + ovstorage | OpenUSD シーンデータの読み込み、書き込み、同期を行う経路を追加 |
| レンダリング、物理演算、センサー、アプリケーションコード間での OpenUSD シーン状態の共有 | ovstage + ovrtx / ovphysx | ライブラリ間でシーンデータやシミュレーション更新、プリムの状態変更を交換するための共通ランタイムステージを提供 |
*表 1. 開発者が追加するアプリケーション機能に基づいた、ovrtx と他の Omniverse ライブラリの一般的な組み合わせ例*
ホストアプリケーションに必要な機能を決定するための指針として、以下の表を活用してください。ワークフローにレンダリングされたフレームやビューポート出力、OpenUSD コンテンツからのセンサー出力シミュレーションが必要であれば、まずは ovrtx を選択します。物理挙動の再現、インタラクティブなストリーミング、あるいは OpenUSD コンテンツ管理が同じワークフローで必要となる場合にのみ、ovphysx、ovstream、ovstorage を追加してください。
以下に示す例では、最小限の ovrtx レンダリングから、インタラクティブな閲覧、複数ライブラリを扱うワークフローに至るまで、これらの技術選定が実際の統合パターンにどう対応するかを解説します。
実践における ovrtx 統合の事例
直接 SDK のサンプルコードやセットアップガイド、API 活用に関するスキルを確認するには、NVIDIA-Omniverse/ovrtx の GitHub リポジトリを参照してください。エージェント向けのガイダンスについては NVIDIA Agent Skills をご覧ください。
初期段階のワークフローにおいて Omniverse ライブラリがどのように連携するかを確認したい場合は、NVIDIA-Omniverse/omniverse-labs の GitHub リポジトリを探索してください。ここでは NVIDIA Omniverse チームによる実験サンプルや統合検証、参考パターン、コンセプト実装アプリなどが公開されています。
例:最小限の「Hello World」
まずは、ovrtx リポジトリにある 最小限の ovrtx サンプル から始めましょう。この「Hello World」サンプルは、インタラクション機能やセンサー出力、大規模なアプリケーションシェルを追加する前に、SDK の直接パスが正しく動作するかを検証するためのシンプルな smoke テストです。
*ビデオ 1: Python、C、C++ アプリケーションを Omniverse RTX レンダリングプロセスに接続し、ロボット工学や合成データ処理ワークフロー向けにセンサー出力を生成する方法を学びます*
このサンプルでは、レンダラーの作成方法、OpenUSD シーンの読み込み方、単一画像のレンダリング、そしてその結果を CPU にコピーして PNG として書き出す手順が示されています。--png フラグを指定すると、出力は _output/render.png に保存され、任意の画像ビューアで確認できます。フラグを指定しない場合は、レンダリングされた画像がデフォルトの画像ビューアに直接表示されます。
こんな時に活用: 完全な Omniverse Kit アプリを構築しなくても、既存のアプリケーションに RTX センサーシミュレーション機能を追加したい場合。
OpenUSD コンテンツを中心にビューアアプリケーションを構築する場合、特に GPU ベースのレンダラーへのブラウザ経由でのアクセスが必要なワークフローでは、Omniverse Realtime Viewer スキル を活用してください。ここでは ovrtx がレンダリング層として機能し続ける一方、ビューア側がシーン読み込み、カメラ操作、オブジェクト選択、レンダリング設定、UI 実装、そしてローカルデスクトップまたはブラウザ経由での配信といったアプリケーション全体の骨格を担当します。
より低レベルな C++ ベースのビューポート統合については、vulkan-interop のサンプル を参照してください。ここでは Vulkan と CUDA を用いて ovrtx の出力をリアルタイムビューポートに表示する方法が解説されています。
*動画 2: 単一の自然言語プロンプトで、サーバー、フロントエンド、スクリプト、アセット、USD シーンファイル、RenderVar 出力、そして ovrtx/ovstream バックエンドを含む動作するビューアアプリを構築するプロセスを学びましょう*
ブラウザ経由のワークフローでは、サーバーが ovrtx レンダラーと OpenUSD ステージへのアクセス権限を管理し、レンダリングされたフレームを ovstream を通じてブラウザ上の UI に送信します。実際に手を動かして試したい場合は、Brev の起動可能な環境 を利用して、ovrtx と ovstream ライブラリで構築されたリアルタイムビューアアプリケーションをデプロイ・テストしてください。
詳細は、NVIDIA-Omniverse/omniverse-labs の GitHub リポジトリにある エージェント支援型統合ウォークスルー をご覧ください。
こんな時に活用:
NVIDIA Omniverse ライブラリと AI コーディングエージェントを活用し、RTX レンダリングに対応したストリーミング USD ビューアーや、ブラウザベースのカメラ操作機能、GPU ベースのデプロイパスを持つアプリケーションを開発する際。
例:ovphysx を使った物理演算の追加
シーンの可視化が完了したら、次は重力、衝突、摩擦など、現実世界の挙動をシミュレーションする段階に移ることが一般的です。ここで登場するのが ovphysx です。ovrtx と同様に、ovphysx もアプリケーションワークフローから呼び出すことができ、アプリ内で挙動をシミュレートしてその結果をリアルタイムのビューワーで可視化できます。
***動画 3:NVIDIA Omniverse ライブラリ(ovrtx、ovphysx、ovstorage)や MCP ベースのエージェントワークフローを活用し、既存アプリケーションに物理 AI の機能を追加する方法を解説*}
Omniverse-Labs ovrtx plus ovphysx サンプル では、この統合ワークフローの実践例を確認できます。このサンプルは 2 つのプロセスで構成されるアーキテクチャを採用しています。ビューアプロセスは ovrtx が担当し、別の ovphysx ワーカーがポーズデータをアプリケーションループへストリーミングします。
こんな時に活用:
レンダリング済みまたはセンサー情報を認識できる OpenUSD ワークフローに物理シミュレーションを追加する場合。
例:SimReady Blender サンプルワークフロー
SIGGRAPH 2026 で展示された SimReady Blender のサンプルワークフローは、ソフトウェア開発者が NVIDIA Agent Toolkit に統合された Omniverse ライブラリを活用し、クリエイターが主導権を握ったまま既存の 3D アプリケーションに「エージェント対応」のシミュレーション機能——NVIDIA RTX センサーシミュレーションや物理演算、検証機能など——を組み込む方法を示しています。現在、Omniverse ライブラリを Blender に統合するためのオープンな設計図として公開されています。
*動画 4:Omniverse ライブラリを活用して、既存の 3D アプリケーションにエージェント対応シミュレーションを導入する方法について詳しく学ぶ*
この資料が役立つ場面: Omniverse ライブラリが、クリエイターや開発者のコントロールを維持しつつ、ソフトウェアメーカーが既存の 3D アプリケーションへエージェント対応シミュレーション機能を追加するのをどう支援するかを理解したい場合。
このようなエージェントワークフローをローカル環境で実行したいデザイナーやエンジニアは、NVIDIA DGX Station で NVIDIA NemoClaw を使用してデプロイできます。NemoClaw は、オープンフロンティアモデルの Nemotron 3 Ultra、セキュアなエージェントランタイム、そして Omniverse ライブラリをパッケージ化し、Blender やシミュレーションツールにアクセスできるパーソナル AI ワークステーションとして完結したローカルスタックを提供します。
クラウドネイティブな設計ワークフローへの ovrtx 統合方法
PTC の Onshape Render Studio チームは、ovrtx がクラウドネイティブな CAD や PDM ワークフローにどのように組み込めるかを模索しています。これらのワークフローでは、製品データやコラボレーションツール、レンダリング要件、そして確立されたユーザー体験がすでに統合されています。つまり、既存のアプリケーションワークフローに NVIDIA Omniverse RTX レンダリングを収めつつ、アーキテクチャ、データモデル、ユーザーが依存している製品体験を維持したまま導入できることを示すための有用な検証ポイントとなるのです。
image*図 2. PTC TypeScript RTX Workbench が NVIDIA Omniverse RTX を活用して Onshape の設計コンテンツをレンダリング。これにより、ovrtx はアプリケーション制御型のパストレーシング可視化をクラウドネイティブな設計ワークフローに持ち込むことが可能であることが示されています*
今回の初期調査では、Onshape のコンテンツを用いて、より複雑な製品設計のジオメトリに対応するクラウドネイティブなレンダリングワークフローにおいて ovrtx がどのように機能するかを探っています。ovrtx は既存システムへの統合を可能にするため、チームはレンダリングを別環境として扱うのではなく、すでに利用しているサービスやアプリケーションレイヤーにどう組み込むかを評価できます。
PTC Onshape Render Studio チームにとって、ovrtx は以下の 3 つの実用的な統合ニーズに対応する助けとなります:
- アプリケーション制御型レンダリング:ホストアプリケーションがレンダリングのタイミングを制御し、出力設定を行い、結果をワークフローへ返却します。
- クラウドネイティブな統合:レンダリング機能は、チームが既に利用しているアプリケーションまたはサービス層を通じて、クラウドネイティブなサービスワークフローを含む形で公開できます。
- OpenUSD ベースのシーン交換:ovrtx は OpenUSD のシーンデータからレンダリングを行うため、製品設計の幾何形状、可視化、そして下流のシミュレーションワークフローを結びつける実用的な手段を提供します。
アプリケーションチームにとって重要なのは、ovrtx を活用することで RTX センサーシミュレーションと可視化を、すでに自らが管理するワークフローの一部に組み込める点です。PTC の事例は、レンダリングが製品データやコラボレーションのワークフロー、そしてアプリケーション体験と常に連携している必要があるクラウドネイティブな設計システム内で、低レベル API がどのように生産指向の探索をサポートするかを示しています。
PTC Onshape のソフトウェア開発シニアディレクターである Brendan Hack 氏は、「ovrtx は、アプリケーションアーキテクチャと製品体験を自社の管理下に保ちながら、NVIDIA RTX をクラウドネイティブな設計ツールに組み込むための低レベル API の道筋を与えてくれます」と述べています。
NVIDIA ovrtx の始め方
NVIDIA Omniverse ライブラリは、既存のアプリケーションスタックへ RTX センサーシミュレーション、物理演算、ストレージ、および関連する物理 AI 機能を統合するためのモジュール型のビルディングブロックを提供します。ovrtx を使えば、OpenUSD ベースのワークフローにカメラ、LiDAR、レーダー、セマンティックセグメンテーション、視覚的な事前チェック(preflight)出力を追加することが可能です。
設計、シミュレーション、ロボティクス、産業用デジタルツイン、合成データ生成、あるいは物理 AI アプリケーションの開発チームにとって、ovrtx は、既存のツールやパイプライン、アプリケーションループ内で RTX センサシミュレーションを評価するための実用的な道筋を提供します。
さあ、始めましょうか?
- Omniverse ライブラリを探る:NVIDIA-Omniverse の GitHub リポジトリを訪れ、エージェントや開発者が RTX センサシミュレーション、物理演算、OpenUSD ワークフロー、ストレージ、検証機能を既存のアプリケーションに組み込むためのツールやスキルを見つけましょう。
- 例を実行する:Omniverse Labs で、Omniverse ライブラリがどのように連携するかを示す初期実験サンプルや概念実証プロジェクトを確認してください。
- NVIDIA の物理 AI エージェントスキルを活用する:エージェントスキルを使って、反復的なセットアップ、シミュレーション、評価タスクを、AI コーディングエージェントで確認・適応・実行できるワークフローに変換します。
- DGX Station でローカル実行:NemoClaw を 3 ステップ、30 分以内で DGX Station にデプロイできます。
原文を表示
Developers building 3D, design, simulation, robotics, and industrial digital twin applications need ways to bring physical AI capabilities into the tools and services they already use. Many of these workflows already depend on OpenUSD scenes, simulation-ready (SimReady) assets, Blender-based workflows, CAD pipelines, or domain-specific app stacks. The challenge is how to provide applications and AI agents with callable tools to inspect scenes, generate sensor outputs, test changes, and return evidence developers can trust.
NVIDIA Omniverse libraries, now part of NVIDIA Agent Toolkit, provide modular building blocks for adding these capabilities into existing applications. ovrtx is the RTX sensor simulation library in that stack, now available as prerelease software on GitHub. It provides developers with a lightweight C and Python SDK for generating camera, lidar, radar, and related sensor outputs from OpenUSD content while keeping control inside the host application.
Within the Omniverse libraries stack, ovstage provides a shared runtime stage for OpenUSD scene data, enabling libraries such as ovphysx and ovrtx to exchange simulation state, scene changes, and prim identities through a common data substrate.
This post walks through how ovrtx integrates into existing workflows as part of the Omniverse libraries model. Steps include loading OpenUSD content, configuring render and sensor outputs, stepping from an application loop, reading results back into the app, and applying the same model in a PTC Onshape Render Studio example and a SimReady Blender sample workflow.
How do NVIDIA Omniverse libraries help application developers?
Simulation and rendering are becoming part of the application layer for a wide range of workflows including design, robotics, autonomous vehicles (AVs), industrial digital twins, and physical AI.
Developers and teams need to visualize OpenUSD scenes, generate physically grounded data, test perception systems, validate behavior, and view results inside the tools they use.
These include CAD systems, Blender-based workflows, PLM or PDM workflows, OpenUSD asset pipelines, internal simulation stacks, and domain-specific applications.
A previous post, Integrate Physical AI Capabilities into Existing Apps with NVIDIA Omniverse Libraries, introduces a library-first approach for adding Omniverse capabilities to existing application stacks. That post covers how standalone libraries can expose sensors, physics, and storage capabilities through focused APIs, giving teams more control over where those capabilities run in their own tools and services. ovrtx applies that approach specifically to Omniverse RTX sensor simulation and visualization.
As announced at SIGGRAPH 2026, NVIDIA Agent Toolkit now includes Omniverse libraries, with ovrtx serving as the RTX sensor simulation layer. It helps applications and agents generate camera, lidar, radar, semantic segmentation, and visual preflight outputs from OpenUSD scenes. Used with other Omniverse libraries, it becomes part of a tool-driven workflow for preparing and validating simulation-ready 3D content.

That application control matters whenever sensor simulation needs to fit inside an existing workflow. For physical AI teams, those outputs can support synthetic data generation (SDG), perception testing, robotics workflows, simulation-ready digital twins, and design review.
With ovrtx now available as pre-release software on GitHub, you can inspect the C and Python APIs, run the examples, test OpenUSD scene loading, and evaluate how RTX sensor outputs fit into your own application loop.
How to integrate ovrtx into existing workflows
The core principle behind ovrtx is straightforward. As a developer, you can bring NVIDIA Omniverse RTX sensor simulation into your own applications while maintaining control of the application architecture, UI, data model, and workflow. The lightweight C and Python SDK is designed for projects that need a real-time 3D viewport, RTX rendering, or sensor simulation, including camera, lidar, radar, ultrasonic, and related outputs.
A typical integration follows five steps:
- Create and configure an ovrtx renderer.
- Load or reference OpenUSD content from the application’s existing pipeline.
- Define RenderProducts and RenderVars for the camera, lidar, radar, semantic segmentation, or rendered outputs the workflow needs.
- Step rendering or sensor simulation from the application loop.
- Map the results back to CPU or GPU memory so the app can display, save, analyze, or pass them to another process.
A pseudo-code example is shown below—the host application owns the workflow.
renderer = ovrtx.Renderer()
renderer.open_usd(app_scene_or_usd_layer)
render_products = {"/Render/Camera"}
while app.is_running():
app.update_scene_state()
products = renderer.step(
render_products=render_products,
delta_time=app.frame_delta_seconds,
)
for product in products.values():
for frame in product.frames:
color = frame.render_vars["LdrColor"].map(device=ovrtx.Device.CPU)
app.use_render_output(color)
Control remains in the host application. The app owns the loop; ovrtx produces the requested render or sensor outputs; and the results return to the workflow for display, storage, analysis, or downstream processing.
Core components in the ovrtx integration flow
The host application uses a few core pieces when it calls ovrtx: the Omniverse RTX renderer, an OpenUSD stage, and RenderProducts and RenderVars that define the outputs to generate.
Omniverse RTX Renderer
Omniverse RTX Renderer is the core technology exposed by the ovrtx library. It takes advantage of NVIDIA RTX, combining “on chip” RT Cores in NVIDIA RTX GPUs with AI acceleration enabled by Tensor Cores. NVIDIA Omniverse RTX enables real-time, physically-based rendering and simulation of light transport in 3D environments, using flexible physically-based lighting and materials to model cameras, lidar, radar and related sensor outputs.
ovstage
ovstage is the shared runtime stage for Omniverse libraries. It provides C and Python APIs for reading, writing, querying, and managing OpenUSD scene data such as transforms, materials, hierarchy, metadata, and simulation state across CPU and GPU memory. In a multilibrary workflow, ovstage allows ovphysx to write updated simulation states and ovrtx to read changed scene data for sensor simulation—without each library maintaining a separate scene representation.
OpenUSD
NVIDIA has adopted OpenUSD as the foundational data layer for NVIDIA Omniverse and simulation workflows. OpenUSD defines a standard data representation for 3D scenes and provides C++ and Python APIs to read and write those scenes. Data in OpenUSD is organized into a scene graph that ovrtx can render. USD stages can define and handle complex geometry, photometric lights, OpenPBR materials, cameras, and other sensors.
RenderProducts and RenderVars
RenderProducts and RenderVars provide a USD-native way to define the outputs to obtain from a renderer or sensor simulator.They provide a lot of flexibility to specify output types, resolutions, formats and other parameters. A RenderProduct is associated with one or more sensors, and ovrtx generates the outputs defined by the RenderVars associated with it. RenderProducts and RenderVars can be defined programmatically and stored in the USD scene or defined at runtime using the ovrtx C or Python APIs.
Application flow
Think of ovrtx as an on-demand service your app calls when it needs to visualize an OpenUSD scene or generate render and sensor outputs. The first steps, creating a renderer, loading OpenUSD content, and configuring RenderProducts and RenderVars, usually happen once or infrequently. The final steps, stepping rendering or sensor simulation and reading outputs, typically run inside the application loop.
Create and configure an ovrtx renderer
Your existing app, whether Python, C, or C++, starts by creating a renderer instance and setting basic options it needs.
- Initialize ovrtx and construct a renderer object, pointing it to the correct GPUs and any global configuration options.
- If you have multiple views or sensors, you still have a single renderer instance coordinating them. Multiple RenderProducts will be attached later.
renderer = ovrtx.Renderer()
Load or reference OpenUSD content
Next, the renderer needs to know which USD stage to draw from.
- Point the renderer at an OpenUSD file or URL with open_usd, load USDA directly from a string with open_usd_from_string, or compose additional referenced content with add_usd_reference.
- If your app already has an Omniverse or USD pipeline, ovrtx can read that OpenUSD content directly instead of requiring the app to rebuild the scene in another format.
renderer.open_usd("warehouse_scene.usd")
Configure render and sensor outputs
With a renderer and stage in place, the app displays which outputs it needs.
Define RenderProducts
- Example: An RGB camera on a robot, a top‑down surveillance camera, a spinning lidar sensor on a vehicle.
- Each RenderProduct is tied to a camera or sensor prim path in the USD stage and a resolution.
Attach RenderVars. For each RenderProduct, specify which outputs ovrtx should generate. Examples include:
- Color, such as LdrColor or HdrColor
- Depth or distance
- Surface normals
- Semantic segmentation
- Lidar point clouds
- Radar detections
- Other sensor‑specific tensors
Step rendering or sensor simulation from the application loop
The app calls ovrtx from its main loop, which may already manage physics, animation, user input, networking, or other simulation state.
After the app updates the OpenUSD stage, it advances rendering or sensor simulation by passing a time increment. ovrtx then generates the requested outputs for the configured RenderProducts and RenderVars.
Returning the output to the application
For each generated frame, the app reads the requested outputs as tensors, either on CPU or GPU memory. It consumes these in other parts of the application logic, as needed.
Getting GPU and CPU views of the data:
- ovrtx exposes each RenderVar as a tensor handle. Wrap it using DLPack, NumPy, or PyTorch utilities.
- To stay on GPU (to feed a model, for example), keep the buffer on device and pass it directly to PyTorch or Warp without copies.
- To save images or point clouds, request these outputs on CPU memory, and use other logic to write PNGs, NumPy arrays, and so on.
op = renderer.step_async(
render_products={"/Render/Camera"},
delta_time=1.0 / 60,
)
pending = op.wait()
products = pending.fetch()
for _name, product in products.items():
for frame in product.frames:
var = frame.render_vars["LdrColor"].map(
device=ovrtx.Device.CPU
)
When to use ovrtx with other Omniverse libraries
ovrtx can be used on its own or alongside other NVIDIA Omniverse libraries, depending on what the host application needs to do. Start with ovrtx when the application needs RTX sensor simulation, viewport output, or visualization. Add other libraries when the workflow also needs physics, streaming, storage, or another application service.
Use this table as a starting point for deciding what the host application needs. Start with ovrtx when the workflow needs rendered frames, viewport output, or simulated sensor outputs from OpenUSD content. Add ovphysx, ovstream, or ovstorage only when the same workflow also needs physics behavior, interactive streaming, or OpenUSD content management. The following examples show how those choices map to practical integration patterns, from a minimal ovrtx render to interactive viewing and multi-library workflows.
Examples of ovrtx integration in practice
Start with the NVIDIA-Omniverse/ovrtx GitHub repo for direct SDK examples, setup guidance, and API-focused skills. For agent guidance, reference NVIDIA Agent Skills. To see how Omniverse libraries fit together in early workflows, explore the NVIDIA-Omniverse/omniverse-labs GitHub repo, which includes experimental samples, integration experiments, reference patterns, and proof-of-concept apps from the NVIDIA Omniverse team.
Example: Minimal “hello world”
Start with the minimal ovrtx example in the ovrtx repository. This “hello world” example is a simple smoke test for validating the direct SDK path before adding interaction, sensor outputs, or a larger application shell.
*Video 1. Learn how to run the minimal example, connect Python, C, and C++ applications to Omniverse RTX rendering processes, and generate sensor outputs for robotics and synthetic data workflows*
The example shows how to create a renderer, load an OpenUSD scene, render a single image, and copy the results back to the CPU for writing as a PNG. Pass the --png flag and the output is written to _output/render.png, which can be inspected with any image viewer. Without the flag, the example opens the rendered image directly in your default image viewer.
Use this for: Adding RTX sensor simulation capabilities to an existing application without building a full Omniverse Kit app.
Example: Build an interactive USD viewer
Use the Omniverse Realtime Viewer skill when the goal is to build a viewer application around OpenUSD content, especially when the workflow needs browser-streamed access to a GPU-backed renderer. ovrtx remains the rendering layer, while the viewer adds the surrounding app structure: scene loading, camera controls, selection, render settings, UI, and local desktop or browser-streamed delivery. For lower-level C++ viewport integration, the vulkan-interop example shows how to display ovrtx output in a real-time viewport using Vulkan and CUDA.
For browser-streamed workflows, a server owns the ovrtx renderer and OpenUSD stage access, then uses ovstream to send rendered frames to a browser UI. For a hands-on path, use the Brev launchable to deploy and test a real-time viewer application built with the ovrtx and ovstream libraries.
To learn more, read the agent-assisted integration walkthrough on the NVIDIA-Omniverse/omniverse-labs GitHib repo.
Use this for: Developing a streaming USD viewer with RTX rendering, browser-based camera controls, and a GPU-backed deployment path using NVIDIA Omniverse libraries and an AI coding agent.
Example: Adding physics with ovphysx
After scene visualization, the next step is often making it behave physically, with gravity, collisions, friction, and other simulation behavior. That is where ovphysx comes in. Like ovrtx, ovphysx can be called from an application workflow so the app can simulate behavior and visualize the result in a real-time viewport.
The Omniverse-Labs ovrtx plus ovphysx sample shows this combined workflow in practice. The sample uses a two-process architecture: the viewer process is owned by ovrtx, while a separate ovphysx worker streams pose data back to the application loop.
Use this for: Adding physics simulation to a rendered or sensor-aware OpenUSD workflow.
Example: SimReady Blender sample workflow
The SimReady Blender sample workflow, on display at SIGGRAPH 2026, shows how software makers can use Omniverse libraries, now part of NVIDIA Agent Toolkit, to add agent-ready simulation capabilities—including NVIDIA RTX sensor simulation, physics, and validation—into existing 3D applications while keeping creators in control. This is now openly available as a blueprint for integrating Omniverse libraries into Blender.
Use this for: Understanding how Omniverse libraries can help software makers add agent-ready simulation capabilities into existing 3D applications while keeping creators and developers in control.
Designers and engineers who want to run this kind of agent workflow locally can deploy it on NVIDIA DGX Station using NVIDIA NemoClaw. NemoClaw packages the Nemotron 3 Ultra open frontier model, a secure agent runtime, and Omniverse libraries into a complete local stack—a personal AI workstation with access to Blender and simulation tools.
How to integrate ovrtx into cloud-native design workflows
PTC Onshape Render Studio team is exploring how ovrtx can fit into cloud-native CAD and PDM workflows, where product data, collaboration tools, rendering needs, and established user experiences already come together. That makes it a useful validation point for showing how NVIDIA Omniverse RTX rendering can fit into an existing application workflow while preserving the architecture, data model, and product experience users already rely on.

This early work uses Onshape content to explore how ovrtx can support cloud-native rendering workflows with more complex product design geometry. ovrtx enables integration into existing systems, so teams can evaluate how it fits into the services and application layers they already use, instead of treating rendering as a separate environment.
For the PTC Onshape Render Studio team, ovrtx helps address three practical integration needs:
- Application-controlled rendering: The host application controls when rendering happens, how outputs are configured, and how results return to the workflow.
- Cloud-native integration: Rendering capabilities can be exposed through the application or service layer teams already use, including cloud-native service workflows.
- OpenUSD-based scene exchange: ovrtx renders from OpenUSD scene data, giving teams a practical way to connect product design geometry, visualization, and downstream simulation workflows.
For application teams, the takeaway is that ovrtx can make RTX sensor simulation and visualization part of the workflow they already own. The PTC work shows how a lower-level API can support production-oriented exploration inside cloud-native design systems, where rendering must stay connected to product data, collaboration workflows, and the application experience.
According to Brendan Hack, Senior Director of Software Development at PTC Onshape, “ovrtx gives us a lower-level API path for bringing NVIDIA RTX into systems cloud-native design tools while keeping the application architecture and product experience in our control.”
Get started with NVIDIA ovrtx
NVIDIA Omniverse libraries provide modular building blocks for integrating RTX sensor simulation, physics, storage, and related physical AI capabilities into existing application stacks. With ovrtx, you can add camera, lidar, radar, semantic segmentation, and visual preflight outputs to OpenUSD-based workflows.
For teams developing design, simulation, robotics, industrial digital twin, synthetic data generation, or physical AI applications, ovrtx provides a practical path to evaluate RTX sensor simulation inside the tools, pipelines, and application loops they already own.
Ready to get started?
- Explore Omniverse libraries: Visit the NVIDIA-Omniverse GitHub repo to find tools and skills that help agents and developers add RTX sensor simulation, physics, OpenUSD workflows, storage, and validation to existing applications.
- Run the examples: Review Omniverse Labs for early experimental samples and proof-of-concept projects that show how Omniverse libraries fit together.
- Use NVIDIA physical AI agent skills: Use agent skills to turn repeatable setup, simulation, and evaluation tasks into workflows that developers can inspect, adapt, and run with an AI coding agent.
- Run locally on DGX Station: Deploy NemoClaw on DGX Station in just three steps, in under 30 minutes.
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み