В эпоху, когда границы между виртуальным и физическим мирами стираются, разработчики 3D-приложений, систем робототехники, автономных транспортных средств (AV) и цифровых двойников сталкиваются с новой, но критически важной задачей: как интегрировать возможности физического ИИ (Physical AI) в уже существующие рабочие процессы? Многие команды уже построили свои инструменты на базе OpenUSD, используют CAD-пайплайны, Blender или специализированные PLM/PDM системы. Однако им не хватает встроенных механизмов для генерации физически достоверных данных сенсоров, проверки систем восприятия и валидации поведения агентов непосредственно внутри этих инструментов. Решение, которое предлагает NVIDIA, заключается не в замене существующего стека, а в его расширении через модульные библиотеки.
Среди ключевых компонентов нового подхода — библиотека ovrtx, входящая в состав NVIDIA Agent Toolkit. Это легковесный SDK на C и Python, предназначенный для симуляции сенсоров на базе RTX. Он позволяет генерировать данные с камер, лидаров, радаров и других датчиков из сцен OpenUSD, сохраняя полный контроль над архитектурой приложения, пользовательским интерфейсом и потоком данных. В этой статье мы подробно разберем, как ovrtx встраивается в существующие пайплайны, какие компоненты необходимы для интеграции и как это выглядит на практике — от простого «Hello World» до сложных сценариев с PTC Onshape и Blender.

01Почему разработчикам нужны модульные библиотеки Omniverse?
Традиционно симуляция и рендеринг были либо отдельными тяжеловесными приложениями, либо требовали сложной кастомизации движков. Однако современные рабочие процессы, особенно в индустриальном дизайне и робототехнике, требуют, чтобы эти функции были частью самого приложения. Разработчикам нужно визуализировать сцены OpenUSD, генерировать данные для обучения нейросетей (синтетические данные), тестировать перцептивные системы роботов и валидировать поведение автономных систем, не покидая привычной среды разработки.
Ранее NVIDIA анонсировала подход «library-first» (библиотека как основа), который позволяет добавлять возможности Omniverse в существующие стеки приложений через сфокусированные API. Теперь, на конференции SIGGRAPH 2026, NVIDIA представила NVIDIA Agent Toolkit, в который вошли Omniverse libraries. В этом наборе ovrtx выступает в роли слоя симуляции сенсоров на базе RTX. Он помогает приложениям и AI-агентам генерировать не только цветные изображения, но и семантическую сегментацию, данные лидаров, радаров и другие мультимодальные выходы, необходимые для обучения моделей физического ИИ.
Ключевое преимущество такого подхода — сохранение контроля. Приложение-хост (host application) остается владельцем цикла выполнения, пользовательского интерфейса и модели данных. ovrtx выступает в роли «мотора» симуляции, который запускается по запросу приложения и возвращает результаты. Это позволяет интегрировать высокопроизводительный рендеринг RTX в легковесные приложения, облачные сервисы или локальные CAD-системы без необходимости перестраивать всю архитектуру.
02Архитектура интеграции: Как работает ovrtx?
Основной принцип работы ovrtx прост и элегантен: это легковесный SDK, который позволяет приложениям настраивать рендеринг и выходные данные сенсоров, делать «шаг» симуляции из основного цикла приложения и получать тензоры результатов на CPU или GPU. Давайте разберем типичный поток интеграции, состоящий из пяти основных шагов.
1. Создание и настройка рендерера ovrtx
Процесс начинается с инициализации библиотеки и создания экземпляра рендерера. Разработчик указывает, какие GPU использовать, и задает глобальные параметры конфигурации. Важно отметить, что даже если в сцене несколько камер или сенсоров, они управляются через один экземпляр рендерера, что упрощает управление состоянием.
2. Загрузка или подключение сцены OpenUSD
Следующий шаг — предоставление рендереру данных сцены. ovrtx работает с форматом OpenUSD, который стал стандартом де-факто для обмена 3D-данными в индустрии. Приложение может:
- Открыть файл USD или URL с помощью метода
open_usd. - Загрузить сцену напрямую из строки с помощью
open_usd_from_string. - Добавить дополнительные ссылки на контент с помощью
add_usd_reference.
Если ваше приложение уже имеет пайплайн работы с Omniverse или USD, ovrtx может читать эти данные напрямую, без необходимости конвертации сцены в другой формат. Это экономит время и сохраняет целостность метаданных, материалов и иерархии примов (prims).
3. Определение продуктов рендеринга (RenderProducts) и переменных (RenderVars)
Это, пожалуй, самый гибкий этап. RenderProducts и RenderVars предоставляют нативный для USD способ определения того, какие выходные данные нужно получить от рендерера или симулятора сенсоров. Вы можете программно определить типы выходов, разрешения, форматы и другие параметры.
Каждый RenderProduct связан с одним или несколькими сенсорами (например, путём к приму камеры в сцене USD). К каждому продукту прикрепляются RenderVars — конкретные типы данных, которые должен сгенерировать ovrtx. Примеры таких переменных:
- Цвет: LdrColor (низкий динамический диапазон) или HdrColor (высокий динамический диапазон).
- Глубина: Данные о расстоянии до объектов.
- Нормали поверхности: Векторы нормалей для каждого пикселя.
- Семантическая сегментация: Классификация объектов по типам (человек, автомобиль, дорога).
- Облака точек лидара: Точные 3D-координаты отражений.
- Детекции радара: Данные о скорости и расстоянии до объектов.

4. Шаг симуляции из цикла приложения
После настройки рендерера и сцены, приложение переходит в основной цикл выполнения (main loop). Этот цикл может управлять физикой, анимацией, вводом пользователя или сетевым взаимодействием. Когда приложение готово к рендерингу, оно вызывает метод renderer.step(), передавая время дельты (delta_time). ovrtx затем генерирует запрошенные выходные данные для всех настроенных RenderProducts.
Важно, что приложение само управляет этим циклом. ovrtx не навязывает свой таймер или цикл выполнения, а служит «услугой по запросу» (on-demand service). Это позволяет интегрировать симуляцию сенсоров в любые, даже самые нестандартные рабочие процессы.
5. Возврат результатов в приложение
После каждого шага симуляции приложение получает тензоры с результатами. Эти данные можно обработать на CPU или оставить на GPU. Для работы с данными NVIDIA предлагает интеграцию с популярными библиотеками через DLPack, NumPy или PyTorch. Если вам нужно сохранить изображение или облако точек, вы можете запросить данные на CPU. Если же вы передаете данные в нейросеть для инференса, вы можете оставить буфер на GPU, избегая лишних копирований памяти.
03Ключевые компоненты стека Omniverse Libraries
Хотя ovrtx может работать автономно, его полная мощь раскрывается в сочетании с другими библиотеками из стека Omniverse Libraries. Понимание роли каждого компонента критически важно для проектирования эффективных архитектур.
Omniverse RTX Renderer
Это ядро технологии, предоставляемое библиотекой ovrtx. Он использует аппаратные ускорители RTX, включая RT-ядра для трассировки лучей в реальном времени и Tensor-ядра для AI-ускорения. Это позволяет моделировать свет, материалы и физику взаимодействия сенсоров с окружением с высокой степенью реализма, что необходимо для генерации качественных синтетических данных.
ovstage
ovstage — это общий runtime-этап (stage) для библиотек Omniverse. Он предоставляет API для чтения, записи, запроса и управления данными сцены OpenUSD, такими как трансформации, материалы, иерархия и состояние симуляции. В многобиблиотечном рабочем процессе ovstage позволяет, например, библиотеке ovphysx записывать обновленные состояния физики, а ovrtx — читать измененные данные сцены для симуляции сенсоров. Это исключает необходимость каждой библиотеке поддерживать собственное представление сцены, обеспечивая согласованность данных.
OpenUSD
NVIDIA выбрала OpenUSD в качестве фундаментального слоя данных. OpenUSD определяет стандартное представление 3D-сцен и предоставляет API для их чтения и записи. Данные организованы в виде графа сцены, который ovrtx может рендерить. USD-стаджи могут определять сложную геометрию, фотометрические источники света, материалы OpenPBR, камеры и другие сенсоры.

04Стратегии использования: Когда подключать другие библиотеки?
Разработчикам не обязательно использовать все библиотеки Omniverse сразу. Выбор зависит от конкретных задач приложения. Ниже приведена таблица, которая поможет определить необходимый стек.
| Потребность приложения | Используемая библиотека | Функция |
|---|---|---|
| Симуляция сенсоров RTX, вывод на экран, визуализация | ovrtx | Генерация кадров и выходных данных сенсоров из контента OpenUSD |
| Физическая симуляция с рендерингом или данными сенсоров | ovrtx + ovphysx | Добавление физического поведения, которое можно визуализировать или использовать в рабочем процессе |
| Трансляция рендеринга на удаленные устройства или в браузер | ovrtx + ovstream | Добавление пути потоковой передачи для интерактивного просмотра |
| Управление контентом OpenUSD в рабочих процессах хранения | ovrtx + ovstorage | Добавление пути для чтения, записи или синхронизации данных сцены OpenUSD |
| Обмен состоянием сцены между рендерингом, физикой и кодом приложения | ovstage + ovrtx / ovphysx | Предоставление общего runtime-этапа для обмена данными сцены, обновлениями симуляции и измененным состоянием примов |
Начинайте с ovrtx, если вашему рабочему процессу нужны отрендеренные кадры, вывод на экран или симулированные выходные данные сенсоров. Добавляйте ovphysx, ovstream или ovstorage только тогда, когда тот же рабочий процесс также требует физического поведения, интерактивной потоковой передачи или управления контентом OpenUSD.

05Практические примеры интеграции
Чтобы лучше понять, как ovrtx работает в реальных сценариях, рассмотрим два примера: минимальный запуск и интеграцию с профессиональными инструментами, такими как PTC Onshape Render Studio и Blender.
Пример 1: Минимальный запуск (Hello World)
Для начала работы NVIDIA рекомендует использовать репозиторий NVIDIA-Omniverse/ovrtx на GitHub. Там доступен минимальный пример, который служит «дымовой проверкой» (smoke test) для прямого пути SDK. Этот пример позволяет быстро валидировать установку, загрузить сцену и получить базовый рендер, прежде чем добавлять взаимодействие, сложные выходные данные сенсоров или большие сцены.
Код интеграции остается лаконичным. Приложение создает рендерер, открывает USD-файл, определяет продукты рендеринга и запускает цикл. Вот упрощенный псевдокод, демонстрирующий этот процесс:
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 производит запрошенные выходные данные рендеринга или сенсоров, а результаты возвращаются в рабочий процесс для отображения, хранения, анализа или дальнейшей обработки.

Пример 2: Интеграция с PTC Onshape Render Studio и Blender
ovrtx не ограничивается простыми скриптами. Он успешно интегрируется в сложные профессиональные среды. Например, в рабочем процессе PTC Onshape Render Studio, который используется для облачного рендеринга и проектирования, ovrtx позволяет генерировать симулированные данные сенсоров непосредственно из CAD-моделей. Это критически важно для тестирования автономных систем на основе реальных инженерных данных, а не упрощенных 3D-моделей.
Аналогичным образом, в пайплайнах Blender, которые широко используются в индустрии визуальных эффектов и геймдева, ovrtx может быть интегрирован через аддоны или скрипты. Разработчики могут использовать Blender для создания и анимации сцен, а затем передавать эти сцены в ovrtx для генерации синтетических данных с физически точными сенсорами. Это объединяет мощь визуализации Blender с точностью симуляции NVIDIA RTX.
06Что это значит на практике
Интеграция ovrtx в существующие приложения открывает новые горизонты для разработчиков, работающих в области физического ИИ, робототехники и цифровых двойников. Вот ключевые выводы, которые следует учитывать:
- Сохранение контроля и гибкости: Вы не обязаны переходить на полностью новую платформу. Вы можете добавить возможности RTX-симуляции сенсоров в ваши существующие CAD, PLM или кастомные приложения, сохраняя контроль над архитектурой и данными.
- Высокая точность данных: Благодаря использованию RTX и OpenUSD, данные, генерируемые ovrtx, физически достоверны. Это снижает разрыв между симуляцией и реальностью (sim-to-real gap), что критически важно для обучения надежных AI-моделей.
- Модульность: Возможность использовать ovrtx как автономно, так и в сочетании с другими библиотеками (ovphysx, ovstream, ovstorage) позволяет создавать гибкие пайплайны, адаптированные под конкретные задачи — от простого рендеринга до сложных многоагентных симуляций.
- Доступность: Нахождение ovrtx в составе NVIDIA Agent Toolkit и доступность в виде prerelease на GitHub означает, что разработчики могут начать эксперименты уже сейчас, используя актуальные API и документацию.
Для разработчиков, стремящихся внедрить Physical AI в свои продукты, ovrtx становится мощным инструментом, позволяющим генерировать качественные синтетические данные и тестировать системы восприятия в контролируемой, но реалистичной среде. Начните с изучения репозитория NVIDIA-Omniverse/ovrtx, попробуйте минимальный пример и постепенно расширяйте функциональность, добавляя новые типы сенсоров и интегрируя библиотеку в ваш основной рабочий процесс.
Источник: NVIDIA Developer ↗
