Суть проекта и архитектура
Разработчики из 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 ↗
