构建 3D、设计、仿真、机器人和工业数字孪生应用的开发者需要如何将物理 AI 功能引入他们已经使用的工具和服务中。其中许多工作流已依赖于 物理 AI 场景、OpenUSD 资产、仿真就绪 (SimReady) 基于 Blender 的工作流、CAD 工作流或特定领域的应用堆栈。挑战在于如何为应用和 AI 智能体提供可调用的工具,以检查场景、生成传感器输出、测试更改并返回开发者可以信任的证据。
NVIDIA Omniverse 库,现在是 NVIDIA Agent Toolkit 的一部分,提供模块化构建块,用于将这些功能添加到现有应用中。 ovrtx 是该堆栈中的 RTX 传感器仿真库,现已作为预发行软件在 GitHub 上提供。它为开发者提供了轻量级的 C 和 Python SDK,用于从 OpenUSD 内容生成摄像头、激光雷达、雷达和相关传感器输出,同时保持对主机应用程序内部的控制。
在 Omniverse 库堆栈中,ovstage 为 OpenUSD 场景数据提供了一个共享运行时阶段,使 ovphysx 和 ovrtx 等库能够通过通用数据基板交换仿真状态、场景变化和基元标识。
本文将介绍 ovrtx 如何作为 Omniverse 库模型的一部分集成到现有工作流中。这些步骤包括加载 OpenUSD 内容、配置渲染和传感器输出、从应用循环中分离出来、将结果读取回应用,以及在 PTC Onshape Render Studio 示例和 SimReady Blender 示例工作流中应用相同的模型。
NVIDIA Omniverse 库如何帮助应用开发者?
仿真和渲染正在成为各种工作流应用层的一部分,包括设计、机器人、智能汽车 (智能汽车)、工业数字孪生和物理 AI。
开发者和团队需要可视化 OpenUSD 场景、生成基于物理性质的数据、测试感知系统、验证行为,并在使用的工具中查看结果。
其中包括 CAD 系统、基于 Blender 的工作流、PLM 或 PDM 工作流、OpenUSD 资产流程、内部仿真堆栈和特定领域的应用。
上一篇文章 使用 NVIDIA Omniverse 库将物理 AI 功能集成到现有应用中 介绍了将 Omniverse 功能添加到现有应用堆栈的库优先方法。该博文介绍了独立库如何通过重点突出的 API 公开传感器、物理特性和存储功能,让团队能够更好地控制这些功能在自己的工具和服务中的运行位置。ovrtx 将这种方法专门应用于 Omniverse RTX 传感器仿真和可视化。
正如在 2026 年 SIGGRAPH 大会上宣布的那样,NVIDIA Agent Toolkit 现已包含 Omniverse 库,并将 ovrtx 用作 RTX 传感器仿真层。它可帮助应用和智能体从 OpenUSD 场景中生成摄像头、激光雷达、雷达、语义分割和视觉预飞输出。与其他 Omniverse 库一起使用,它成为工具驱动工作流的一部分,用于准备和验证仿真就绪型 3D 内容。

每当传感器仿真需要适应现有工作流程时,应用程序控制就很重要。对于物理 AI 团队而言,这些输出可以支持合成数据生成 (SDG) 、感知测试、机器人工作流、仿真就绪型数字孪生和设计评审。
现在,ovrtx 已在 GitHub 上作为预发布软件提供,您可以检查 C 和 Python API、运行示例、测试 OpenUSD 场景加载,并评估 RTX 传感器输出如何适应您自己的应用循环。
如何将 ovrtx 集成到现有工作流程中
ovrtx 背后的核心原则很简单。作为开发者,您可以将 NVIDIA Omniverse RTX 传感器仿真引入自己的应用中,同时保持对应用架构、用户界面、数据模型和工作流的控制。轻量级 C 和 Python SDK 专为需要实时 3D 视口、RTX 渲染或传感器仿真 (包括摄像头、激光雷达、雷达、超声波和相关输出) 的项目而设计。
典型的集成有五个步骤:
- 创建并配置 ovrtx 渲染器。
- 加载或引用应用现有工作流中的 OpenUSD 内容。
- 为摄像头、激光雷达、雷达、语义分割或工作流程所需的渲染输出定义 RenderProducts 和 RenderVars。
- 从应用循环中进行步骤渲染或传感器仿真。
- 将结果映射回 CPU 或 GPU 显存,以便应用显示、保存、分析或将其传递给其他进程。
伪代码示例如下所示,即主机应用程序拥有工作流。
renderer = ovrtx.Renderer()
renderer.open_usd(app_scene_or_usd_layer)
render_products = {"/Render/Camera"} # Add lidar, radar, or other outputs as needed.
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 时使用了几个核心部分:Omniverse RTX 渲染器、OpenUSD 场景,以及定义要生成的输出的 RenderProducts 和 RenderVars。
Omniverse RTX 渲染器
Omniverse RTX 渲染器 是 ovrtx 库展示的核心技术。它利用 NVIDIA RTX,将 NVIDIA RTX GPU 中的“片上”RT Core 与 Tensor Core 支持的 AI 加速相结合。NVIDIA Omniverse RTX 可在 3D 环境中实现基于物理性质的实时渲染和光传输仿真,并使用基于物理性质的灵活照明和材质对摄像头、激光雷达、雷达和相关传感器输出进行建模。
重制版 (ovstage)
ovstage 是 Omniverse 库的共享运行时场景。它提供 C 和 Python API,用于读取、写入、查询和管理 OpenUSD 场景数据,例如跨 CPU 和 GPU 显存的转换、材质、层次结构、元数据和仿真状态。在多库工作流中,ovstage 允许 ovphysx 编写更新的仿真状态,并允许 ovrtx 读取更改的场景数据以进行传感器仿真,而无需每个库维护单独的场景表示。
OpenUSD
NVIDIA 已采用 OpenUSD 作为 NVIDIA Omniverse 和仿真工作流的基础数据层。OpenUSD 定义了 3D 场景的标准数据表示形式,并提供 C++ 和 Python API 来读写这些场景。OpenUSD 中的数据被整理成场景图,由 ovrtx 渲染。USD 场景可以定义和处理复杂的几何图形、光度学光源、OpenPBR 材质、摄像头和其他传感器。
RenderProducts 和 RenderVars
RenderProducts 和 RenderVars 提供了一种 USD 原生方式来定义要从渲染器或传感器模拟器中获得的输出。它们为指定输出类型、分辨率、格式和其他参数提供了很大的灵活性。RenderProduct 与一个或多个传感器关联,而 ovrtx 会生成由与其关联的 RenderVars 定义的输出。RenderProducts 和 RenderVars 可通过编程方式进行定义,并存储在 USD 场景中,或在运行时使用 ovrtx C 或 Python API 进行定义。
应用流程
当您的应用需要可视化 OpenUSD 场景或生成渲染和传感器输出时,可以将 ovrtx 视为一种按需服务。第一步是创建渲染器、加载 OpenUSD 内容以及配置 RenderProducts 和 RenderVars,这些步骤通常执行一次或不频繁。最后的步骤,即步进渲染或传感器仿真和读取输出,通常在应用循环中运行。
创建并配置 ovrtx 渲染器
无论是 Python、C 还是 C++,您的现有应用首先都需要创建渲染器实例并设置所需的基本选项。
- 初始化 ovrtx 并构建渲染器对象,将其指向正确的 GPU 和任何全局配置选项。
- 如果您有多个视图或传感器,则仍然有一个渲染器实例来协调它们。稍后将附加多个 RenderProducts。
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")
# or compose additional content into the stage:
# renderer.add_usd_reference("extra_props.usd", prefix="/World/Props")
配置渲染和传感器输出
渲染器和场景准备就绪后,应用会显示所需的输出结果。
定义渲染器产品
- 示例:机器人上的 RGB 摄像头、自上而下的监控摄像头、车辆上的旋转激光雷达传感器。
- 每个渲染器产品都与 USD 场景中的摄像头或传感器基元路径和分辨率相关联。
连接 RenderVars。对于每个 RenderProduct,指定 ovrtx 应生成的输出。示例包括:
- 颜色,例如 LdrColor 或 HDrColor
- 深度或距离
- 表面法线
- 语义分割
- 激光雷达激光点云
- 雷达探测
- 其他传感器+ 特定张量
从应用循环进行步骤渲染或传感器仿真
该应用会从其主循环中调用 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 传感器仿真、视口输出或可视化 | 视频流 | 根据 OpenUSD 内容生成渲染帧和传感器输出 |
| 具有渲染或传感器输出的物理模拟 | ovrtx+ ovphysx | 添加可在应用程序工作流程中可视化或使用的物理行为 |
| 将渲染输出流式传输到远程或基于浏览器的体验中 | ovrtx+ ovstream | 添加用于交互式查看或审核的流式传输路径 |
| 跨存储工作流管理 OpenUSD 内容 | ovrtx+ ovstorage | 添加读取、写入或同步 OpenUSD 场景数据的路径 |
| 跨渲染、物理、传感器和应用代码共享 OpenUSD 场景状态 | ovstage = ovrtx/ ovphysx | 提供共享运行时阶段,以便库可以交换场景数据、仿真更新和更改的 Prim 状态 |
将此表用作确定主机应用程序所需内容的起点。如果工作流需要 OpenUSD 内容的渲染帧、视窗输出或模拟传感器输出,请从 ovrtx 开始。仅当同一工作流还需要物理行为、交互式流或 OpenUSD 内容管理时,才添加 ovphysx、ovstream 或 ovstorage。以下示例展示了这些选择如何映射到实际集成模式,从最小的 ovrtx 渲染到交互式查看和多库工作流。
ovRTX 集成的实际示例
从 NVIDIA-Omniverse/ovrtx GitHub 资源库开始,获取直接的 SDK 示例、设置指导和以 API 为中心的技能。有关智能体指导,请参阅 NVIDIA 智能体技能。要了解 Omniverse 库如何在早期工作流中相互配合,请探索 NVIDIA-Omniverse/omniverse-labs GitHub 存储库,其中包括来自 NVIDIA Omniverse 团队的实验样本、集成实验、参考模式和概念验证应用。
示例:最小“hello world”
从 ovrtx 资源库中的最小 ovrtx 示例开始。此“hello world”示例是一个简单的烟雾测试,用于在添加交互、传感器输出或更大的应用程序 shell 之前验证直接 SDK 路径。
视频 1. 了解如何运行最小示例,将 Python、C 和 C++ 应用连接到 Omniverse RTX 渲染流程,以及如何为机器人和合成数据工作流程生成传感器输出
该示例展示了如何创建渲染器、加载 OpenUSD 场景、渲染单张图像,以及如何将结果复制回 CPU 以写入 PNG。传递 --png 标志,输出结果将写入 _output/render.png,可使用任何图像查看器进行检查。如果没有标记,示例会直接在默认图像查看器中打开渲染图像。
将其用于:将 RTX 传感器仿真功能添加到现有应用中,而无需构建完整的 Omniverse Kit 应用。
示例:构建交互式 USD 查看器
当您的目标是围绕 OpenUSD 内容构建查看器应用时,请使用 Omniverse Realtime Viewer 技能,尤其是在工作流需要通过浏览器流式传输访问 GPU 支持的渲染器时。ovrtx 仍是渲染层,而查看器会添加周围的应用结构:场景加载、摄像头控制、选择、渲染设置、用户界面以及本地桌面或浏览器流式传输。对于较低级别的 C++ 视口集成, vulkan-interop 示例 展示了如何使用 Vulkan 和 CUDA 在实时视口中显示 ovrtx 输出。
对于浏览器流工作流,服务器拥有 ovrtx 渲染器和 OpenUSD Stage 访问权限,然后使用 ovstream 将渲染帧发送到浏览器 UI。如需动手实践,请使用可启动的 Brev 部署和测试使用 ovrtx 和 ovstream 库构建的实时查看器应用。
如需了解更多信息,请阅读 代理辅助集成演示 上的 NVIDIA-Omniverse/omniverse-labs GitHib 库。
此产品可用于: 使用 NVIDIA Omniverse 库和 AI 编码代理,开发具有 RTX 渲染、基于浏览器的摄像头控制和 GPU 支持的部署路径的串流 USD 查看器。
示例:使用 ovphysx 添加物理特性
在场景可视化之后,下一步通常是让场景呈现物理特性,包括重力、碰撞、摩擦和其他模拟行为。这正是 ovphysx 的用武之地。与 ovrtx 一样,ovphysx 可以从应用工作流调用,因此应用可以模拟行为并在实时视口中可视化结果。
Omniverse-Labs ovrtx 和 ovphysx 示例 在实践中展示了这种组合工作流程。该示例使用双进程架构:查看器进程归 ovrtx 所有,而单独的 ovphysx 工作流将数据返回至应用循环。
将其用于: 将物理模拟添加到渲染或传感器感知的 OpenUSD 工作流中。
示例:SimReady Blender 示例工作流程
在 SIGGRAPH 2026 大会上展示的 SimReady Blender 示例工作流展示了软件制造商如何使用 Omniverse 库 (现已成为 NVIDIA Agent Toolkit 的一部分) ,在保持创作者掌控的同时,将 NVIDIA RTX 传感器仿真、物理特性和验证等智能体就绪型仿真功能添加到现有 3D 应用中。该蓝图现已公开提供,可用于将 Omniverse 库集成到 Blender 中。
了解 Omniverse 库如何帮助软件制造商将智能体就绪型仿真功能添加到现有 3D 应用中,同时让创作者和开发者掌控全局。
想要在本地运行这种智能体工作流的设计师和工程师可以使用 NVIDIA NemoClaw 将其部署在 NVIDIA DGX 工作站上。NemoClaw 将 Nemotron 3 Ultra 开放边界模型、安全代理运行时和 Omniverse 库打包到一个完整的本地堆栈中,这是一个可以访问 Blender 和仿真工具的个人 AI 工作站。
如何将 ovrtx 集成到云原生设计工作流程中
PTC Onshape Render Studio 团队正在探索如何将 ovrtx 融入云原生 CAD 和 PDM 工作流,将产品数据、协作工具、渲染需求和已建立的用户体验融合在一起。这使其成为一个有用的验证点,用于展示 NVIDIA Omniverse RTX 渲染如何适应现有的应用工作流,同时保留用户已经依赖的架构、数据模型和产品体验。

这项早期工作使用 Onshape 内容来探索 ovrtx 如何支持具有更复杂产品设计几何图形的云原生渲染工作流。ovrtx 支持与现有系统集成,因此团队可以评估其如何适应他们已经使用的服务和应用层,而不是将渲染视为一个单独的环境。
对于 PTC Onshape Render Studio 团队而言,ovrtx 有助于满足三种实际集成需求:
- 应用控制渲染:主机应用控制何时进行渲染、如何配置输出以及如何将结果返回到工作流程。
- 云原生集成:渲染功能可以通过已使用的应用或服务层团队公开,包括云原生服务工作流。
- 基于 OpenUSD 的场景交换:ovRTX 渲染从 OpenUSD 场景数据,给团队提供了一种连接产品设计几何图形、可视化和下游仿真工作流的实用方法。
对于应用程序团队来说,要点是 ovRTX 可以使 RTX 传感器仿真和可视化成为他们现有工作流程的一部分。PTC 工作展示了低级 API 如何支持在云原生设计系统中进行面向生产的探索,在这些系统中,渲染必须与产品数据、协作工作流和应用程序体验保持连接。
PTC Onshape 软件开发高级总监 Brendan Hack 表示:“ovrtx 为我们提供了一个较低级别的 API 路径,让我们可以将 NVIDIA RTX 引入系统云原生设计工具,同时将应用架构和产品体验保持在我们的掌控之中。”
开始使用 NVIDIA ovrtx
NVIDIA Omniverse 库提供模块化构建块,可将 RTX 传感器仿真、物理、存储和相关物理 AI 功能集成到现有应用堆栈中。借助 ovrtx,您可以将摄像头、激光雷达、雷达、语义分割和视觉预飞输出添加到基于 OpenUSD 的工作流中。
对于开发设计、仿真、机器人、工业数字孪生、合成数据生成或物理 AI 应用的团队,ovrtx 提供了在他们已有的工具、流程和应用循环中评估 RTX 传感器仿真的实用路径。
准备好开始了吗?
- 探索 Omniverse 库: 访问 NVIDIA-Omniverse GitHub 资源库,查找工具和技能,帮助智能体和开发者向现有应用添加 RTX 传感器仿真、物理特性、OpenUSD 工作流、存储和验证。
- 运行示例:查看 Omniverse Labs 获取早期实验样本和概念验证项目,了解 Omniverse 库如何组合在一起。
- 使用 NVIDIA 物理 AI 智能体技能: 使用 智能体技能 将可重复的设置、仿真和评估任务转化为工作流,供开发者检查、调整并使用 AI 编码智能体运行。
- 在 DGX 工作站上本地运行:只需三步即可在 DGX 工作站上部署 NemoClaw,只需 30 分钟。