Инструменты4 сентября 2026 г., 15:45 МСК🤖 Auto

MotionBricks.cpp: NVIDIA-модель для анимации на CPU и Vulkan

Порт NVIDIA MotionBricks на C++23/GGML позволяет запускать генерацию скелетной анимации на CPU и GPU без CUDA, используя стабильный C ABI для интеграции с Go.

Баннер новости 6774

Суть проекта и архитектура

Разработчики из LocalAI представили MotionBricks.cpp — реализацию модели NVIDIA MotionBricks, адаптированную для инференса на центральных процессорах (CPU) и графических ускорителях через Vulkan. Ключевая особенность проекта — наличие стабильного C ABI (Application Binary Interface), что позволяет использовать библиотеку в языках, не имеющих встроенной поддержки C++, таких как Go (через PureGo), без необходимости использования CGo.

Реализован полный путь инференса для модели G1: от строгой загрузки форматов GGUF и планирования длительности/поз-токенов до VQ-декодирования, конвертации признаков (418/414/413) и вывода скелетной анимации. CPU и Vulkan версии используют единый публичный API, сохраняя идентичность решений по длительности и позам.

Технические характеристики модели

Модель G1 представляет собой компактное, но эффективное решение для генерации движений. Ниже приведены ключевые метрики и параметры, доступные в релизе:

Параметр Значение / Описание
Количество обучаемых параметров 183,148,382 (F32)
Формат весов GGUF (F32), размер ~0.73 GB
Скелетная топология 34 сустава (joint)
Выходные данные Root translations [frames,3] и локальные XYZW-повороты [frames,34,4]
Поддерживаемые стили 15 оригинальных пресетов (конвертированы из .mbstyle)
Лицензия кода Apache License 2.0
Лицензия весов NVIDIA Open Model License

Интеграция и использование

Библиотека спроектирована с учетом безопасности и воспроизводимости. Загрузчик валидирует ревизию модели, идентификаторы контрольных точек, количество тензоров и топологию перед запуском. Для разработчиков на Go предусмотрен демо-интерфейс на базе Three.js, который позволяет в реальном времени управлять персонажем (WASD, стрелки) и переключаться между стилями анимации.

Сборка осуществляется через CMake. Проект поддерживает как онлайн-загрузку весов (с верификацией SHA-256), так и офлайн-режим. Для Go-компонентов рекомендуется использовать флаг CGO_ENABLED=0, чтобы обеспечить чистую сборку без зависимостей от C-компилятора.

Где найти ресурсы

Готовые веса модели (MotionBricks-G1-GGML) и 15 стилей анимации опубликованы в организации LocalAI-io на платформе Hugging Face. Репозиторий зафиксирован на конкретной ревизии (commit cc2a47603dbc203a418f35dd06ed3611833f506), что гарантирует стабильность работы. Исходный код доступен на GitHub по адресу localai-org/motion-bricks.cpp.

Источник: Github ↗