Bullet Physics SDK — библиотека C++ для обнаружения столкновений и мультифизического моделирования в реальном времени, используемая в играх, VR, робототехнике и машинном обучении.
dartsim/dart
Физическая библиотека на C++17 с привязками Python для расчёта кинематики, динамики и контактов у сочленённых роботов и анимированных персонажей.
Open source альтернатива:MATLAB Simscape Multibody
- Звёзды
- 1,224
- Форки
- 307
- Открытые issues
- 13
- Последний коммит
- 4 часа назад
Что это?
DART (Dynamic Animation and Robotics Toolkit) — библиотека на C++17 с привязками Python (dartpy) для симуляции сочленённых твёрдых и мягких тел. Она описывает системы в обобщённых координатах и рассчитывает движение с помощью алгоритма сочленённых тел Фезерстоуна (Articulated Body Algorithm), а также предоставляет матрицу масс, силы Кориолиса и гравитации, якобианы и их производные.
Движок обрабатывает контакты с помощью решателей на основе LCP (Dantzig и PGS), поддерживает ограничения суставов и замкнутые кинематические цепи. Для обнаружения столкновений можно использовать FCL (по умолчанию), Bullet, ODE или собственный детектор DART. Модели роботов и сцен загружаются из файлов URDF, SDF, SKEL и MJCF (экспериментально); также предусмотрена иерархическая обратная кинематика всего тела. DART служит физическим движком для Gazebo через gz-physics.
Библиотеку можно установить через pip, conda-forge, vcpkg, Homebrew и несколько дистрибутивов Linux; также её можно собрать из исходного кода с помощью pixi.
Ключевые возможности
- 01Динамика в обобщённых координатах с использованием алгоритма сочленённых тел Фезерстоуна (Articulated Body Algorithm)
- 02Обработка контактов на основе LCP с решателями Dantzig и PGS, а также поддержка мягких тел
- 03Бэкенды обнаружения столкновений, включая FCL, Bullet, ODE и встроенный детектор
- 04Загрузка моделей из файлов URDF, SDF, SKEL и экспериментального формата MJCF
- 05Иерархическая обратная кинематика всего тела с поддержкой аналитических решателей
- 06C++ API и привязки Python dartpy
Сценарии использования
- Симуляция гуманоидных роботов и роботов-манипуляторов для исследований в области управления и планирования движений
- Прототипирование управления всем телом с помощью обратной кинематики и методов операционного пространства
- Создание физически правдоподобной анимации персонажей с сочленёнными телами
- Использование в качестве физического движка для робототехнических симуляторов, например Gazebo
Быстрый старт
- 1
Установить пакет Python
pip install dartpy - 2
Установить пакет C++ в Ubuntu / Debian
sudo apt install libdart-all-dev - 3
Установить пакет C++ в macOS с помощью Homebrew
brew install dartsim
Что важно знать
- Ветка разработки main может меняться; для стабильной работы нужна версия с тегом или установленный пакет.
- Пакеты дистрибутивов могут отставать от последнего релиза.
- Wheels на PyPI доступны только для наиболее распространённых платформ и версий Python.
В подборках
Темы
Частые вопросы
- Что такое dart?
- Физическая библиотека на C++17 с привязками Python для расчёта кинематики, динамики и контактов у сочленённых роботов и анимированных персонажей. DART (Dynamic Animation and Robotics Toolkit) — библиотека на C++17 с привязками Python (dartpy) для симуляции сочленённых твёрдых и мягких тел. Она описывает системы в обобщённых координатах и рассчитывает движение с помощью алгоритма сочленённых тел Фезерстоуна (Articulated Body Algorithm), а также предоставляет матрицу масс, силы Кориолиса и гравитации, якобианы и их производные.
- dart можно использовать бесплатно? Какая у него лицензия?
- dart распространяется с открытым исходным кодом под лицензией BSD-2-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- dart всё ещё поддерживается?
- Активно поддерживается. Последний коммит в dart — 6 нояб. 2026 г..
- Для чего можно использовать dart?
- Симуляция гуманоидных роботов и роботов-манипуляторов для исследований в области управления и планирования движений Прототипирование управления всем телом с помощью обратной кинематики и методов операционного пространства Создание физически правдоподобной анимации персонажей с сочленёнными телами Использование в качестве физического движка для робототехнических симуляторов, например Gazebo
- Как установить dart?
- Установить пакет Python: pip install dartpy Установить пакет C++ в Ubuntu / Debian: sudo apt install libdart-all-dev Установить пакет C++ в macOS с помощью Homebrew: brew install dartsim
- Где скачать dart?
- Исходный код и инструкции по установке — на GitHub: https://github.com/dartsim/dart
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Открытая библиотека C++ для моделирования динамики многотельных систем — роботов, транспортных средств и скелетов.
Библиотека мультифизического моделирования на C++ для систем из твёрдых и гибких тел, гранулярных сред, взаимодействия жидкости и твёрдых тел, а также транспортных средств и роботов.
Пул сред на C++ для обучения с подкреплением: параллельно запускает множество Gym-подобных сред, используя пул потоков.
Многопоточная библиотека на C++ для симуляции твёрдых тел и обнаружения столкновений в играх и VR-приложениях.
Дифференцируемый физический движок на JAX для управления роботами, совместного проектирования аппаратуры и обучения роботов.