NVIDIA показала, как ИИ-агенты создают лёгкие среды выполнения USD
Что такое OpenUSD
OpenUSD — открытая расширяемая платформа с общим языком описания сцен для физического ИИ. Она помогает объединять данные CAD, ресурсы симуляций и телеметрию из реального мира в едином физически точном представлении.
Раньше создание собственной реализации USD обычно требовало адаптировать большую существующую кодовую базу. Это было неудобно командам, которым нужны особый объём памяти, другой ABI или иные характеристики производительности. nanousd-labs предлагает другой путь: генерировать среду выполнения напрямую из стандарта.
Такой подход возможен благодаря тому, что USD описан в формальной машиночитаемой спецификации. Разработанная Альянсом OpenUSD (AOUSD) спецификация USD Core — это версионируемый стандарт, который определяет, как данные USD объединяются и разрешаются в стеках слоёв.
Поскольку спецификация служит точным контрактом для людей и ИИ-агентов, разработчики могут поручить агентам создать реализацию под конкретную нагрузку. Методика дополняет адаптацию существующей кодовой базы и ручную реализацию стандарта, сокращая цикл разработки и помогая создавать продукты физического ИИ под условия их развёртывания.
nanousd-labs опубликован в составе NVIDIA Omniverse Labs — набора открытых экспериментальных проектов. Его создали во время внутреннего технического марафона. Проект позволяет генерировать среды выполнения USD непосредственно из спецификации USD Core с помощью ИИ-агентов. NVIDIA показывает на его примере, как получить работающую реализацию USD, и предлагает разработчикам два способа опробовать эту методику в собственных проектах физического ИИ.
Среда склада, представляющая развертывание физического ИИ, требующее сред выполнения USD, настроенных под конкретные требования к производительности, памяти и ABI
Источник: developer.nvidia.com
Спецификация как контракт
Методика nanousd-labs основана на одной идее: спецификация USD Core выступает контрактом. Она описывает поведение совместимой среды выполнения, но не диктует, как именно её строить. ИИ-агенты читают спецификацию, пишут код для реализации указанного поведения и проверяют результат тестами, созданными на основе того же документа.
Стандарт при этом остаётся постоянным, а сгенерированный код можно менять под разные ограничения. Среду выполнения предполагается заново генерировать с учётом требований к памяти, производительности или языку, сохраняя совместимость со стандартом.
Под руководством разработчика агенты разбирают спецификацию по разделам, создают код для каждого поведения и запускают его против набора тестов, основанного на том же стандарте. Они применяют и проверяют правила построения, разрешения и переопределения данных сцены. Поэтому спецификация становится контрактом, по которому разработчик направляет создание и проверку реализации, а не документацией, которую один раз прочитал человек и истолковал вручную.
Поскольку реализация создаётся на основе спецификации, совместимость заложена в саму методику и не зависит от конкретной кодовой базы. Разработчик может заново сгенерировать среду выполнения под нужную нагрузку, не отказываясь от соответствия стандарту.
У подхода есть ограничения. Входом служит спецификация, а мерой успеха — соответствие стандарту. Это не означает полной автоматизации и не значит, что сегодня покрыта вся спецификация. При создании nanousd-labs агенты выполняли механическую работу по переводу спецификации в код — в том числе разбирали данные, объединяли сцены и определяли разрешение значений между слоями. Инженеры отвечали за производительность, компромиссы и архитектурные решения. Письменный стандарт задаёт для каждой задачи ясное определение корректного результата, которое можно проверить тестами.
nanousd — независимая реализация модели данных среды выполнения USD: набора правил, определяющих поведение USD-сцены при загрузке и запросах. Она напрямую выведена из спецификации USD Core и предоставляет стабильный C ABI. Реализация написана на C++, а открытый C API позволяет вызывать её из любого языка.
Спецификация ядра USD предоставляет общую основу для существующих инструментов OpenUSD и новых реализаций, сгенерированных агентами, включая nanousd, привязки Python и средства просмотра
Источник: developer.nvidia.com
nanousd — это слой данных, а не средство визуализации. Он разбирает, объединяет, запрашивает и записывает данные, останавливаясь там, где начинаются пиксели. ИИ-агенты реализуют модель данных среды выполнения из спецификации Core, а nanousd содержит только то, что требуется конкретной нагрузке, и предоставляет это через стабильный C ABI. Существующие наборы OpenUSD продолжают работать без изменений. В данном случае методика служит подходом, который можно перенимать, а реализация — её практическим примером.
ABI и замена реализации
Спецификация USD Core определяет, что должна делать среда выполнения, но оставляет открытыми вопросы памяти, многопоточности, ABI и языка. Для nanousd главным решением пока стал стабильный C ABI. Конкретные характеристики памяти и производительности ещё исследуются.
Клиентский код компилируется против фиксированного C API и загружает реализацию во время работы. Поэтому внутреннюю часть можно менять, не затрагивая вызывающий код. В качестве серверной части можно использовать OpenUSD внутри библиотеки Omniverse или заменить её на nanousd — клиентскую программу переписывать не придётся.
Такой подход также сохраняет точность измерений. Один и тот же сценарий работает через общий API, пока реализация под ним меняется. Смысл не в утверждении, что одна реализация быстрее другой, а в том, что стандарт вместе со стабильным ABI позволяет направлять ИИ-агентов к варианту, подходящему конкретной нагрузке.
Как попробовать nanousd-labs
Разработчики, создающие конвейеры и приложения физического ИИ и которым нужна лёгкая специализированная среда выполнения USD, могут начать двумя способами. Первый рассчитан на команды, которым нужна уже работающая реализация. Второй — на тех, кто хочет разобраться в методике и применить её в собственном наборе инструментов.
Первый вариант — клонировать и собрать nanousd. Это скомпилированная реализация с C API, которую может вызывать любой язык программирования. Она готова работать с существующими USD-сценами.
Большинство разработчиков физического ИИ начнут с nanousd-python — пакета Python, построенного на C API nanousd. Ему не нужен GPU, и он работает без графического интерфейса на любой машине. Установить пакет можно одной командой.
Открытие сцены и обход её примитивов — отдельных элементов, из которых состоит USD-сцена, — выглядит следующим образом.
Дальше ИИ-агент, опирающийся на спецификацию USD Core, выполняет создание и проверку данных. Создание ресурса выглядит так.
Агент создаёт сцену, снова собирает её через nanousd-labs, чтобы проверить корректность разрешения, а затем возвращает структуру собранной сцены и отмечает, что именно ему пришлось исправить.
Следующий результат показывает каждый элемент сцены, его тип и способ сборки.
Признак `Instanceable` означает, что два колеса используют одно общее определение в сцене, а не хранят по отдельной полной копии. Так USD экономно работает с повторяющимися элементами.
Проверка существующего ресурса устроена так же. Агент собирает файл, сравнивает полученный результат с правилами спецификации и выдаёт точный ответ: какая часть сцены расходится со стандартом, почему это происходит и каким должен быть правильный результат. Разработчик получает ясный сигнал о совместимости и не должен самостоятельно интерпретировать поведение конкретного инструмента.
Граф навыков
Второй способ связан с самой методикой и предполагает практическую работу. Когда агенты впервые создают реализацию напрямую по спецификации Core, все инструкции пишутся вручную. Граф навыков превращает указания человека в повторно используемые навыки. Структурированные рецепты, запросы и тесты описывают, как получать поведение, совместимое со спецификацией.
В учебном руководстве продолжительностью около 10 минут показано, как запустить навыки для создания разборщика USD ASCII (USDA), соответствующего спецификации Core. В результате разработчик получает работающий пример и понимание методики, с которого можно начать собственную реализацию.
Граф пока не создаёт всё целиком. Он развивается, а согласованность между несколькими частями остаётся нерешённой задачей. При этом именно граф навыков делает процесс повторяемым: стандарт служит контрактом, а рабочий процесс можно использовать снова, не собирая его заново для каждой реализации.
Создавать специализированную среду выполнения USD теперь можно без разработки с нуля. Спецификация USD Core даёт ИИ-агентам точную основу, а nanousd-labs показывает, как этот подход работает на практике. Методика открыта, стандарт публичен, и проект продолжает развиваться.
Разработчики уже могут добавлять в GitHub новые навыки, поддержку языков и сценарии для физического ИИ. Организации, входящие в AOUSD, могут участвовать в изменении самого стандарта через рабочую группу Core Spec. Спецификация Core остаётся основой, а nanousd-labs — одним из примеров того, что становится возможным при совместной работе ИИ-агентов и открытых стандартов.
Ежедневные новости об ИИ
Каждый день отбираем важные новости об ИИ, роботах и метавселенных и рассказываем главное — без хайпа и воды. Если хотите понимать, что происходит в ИИ раньше остальных, — подписывайтесь.
Только важное — каждый день
В Telegram