C++ 多物理场仿真库,用于刚体与柔性多体系统、颗粒介质、流固耦合及车辆机器人仿真。
simbody/simbody
开源 C++ 多体动力学库,用于模拟机器人、车辆和人体骨骼等关节机构。
- Star
- 2,571
- Fork
- 501
- 未关闭 Issue
- 143
- 最近提交
- 18小时前
这是什么?
Simbody 是一个用 C++ 编写的多体动力学库,用于模拟由刚体和关节组成的机构,并可施加力、规定运动和约束。它采用 Featherstone 风格的 O(n) 方法在广义坐标下计算运动,适用于人和动物骨骼等生物力学结构,也适用于机器人、车辆和各类机械系统。
Simbody 本身是库而非独立应用,开发者通过 C++ API 构建面向特定领域的工具。项目中提到 OpenSim、Gazebo 和 MacroMoleculeBuilder 都在使用它。它支持正向、逆向和混合动力学,提供多种接触模型、优化器、带误差控制的数值积分器,以及基于 OpenGL 的可视化工具。
项目使用 CMake 构建,可在 Windows、macOS 和 Linux 上运行,并可通过 apt、Homebrew、conda-forge 和 vcpkg 安装。
核心功能
- 01提供多种关节、约束和力类型,并支持用户扩展
- 02支持正向、逆向和混合动力学计算
- 03提供 Hertz、Hunt 和 Crossley 接触模型
- 04内置梯度下降、内点法和 CMA 优化器
- 05提供基于 OpenGL 的可视化工具
适用场景
- 为生物力学研究模拟人体或动物的肌肉骨骼运动
- 用 C++ 构建机器人或车辆的动力学模型
- 将多体物理引擎集成到特定领域的仿真应用中
快速上手
- 1
按照 README 中的说明,在 Mac 上用 Homebrew 安装 Simbody
- 2
按照 README 中的说明,在 Ubuntu 或 Debian 上用 apt-get 安装预编译二进制文件
- 3
从 GitHub 克隆源代码以从源码构建
git clone https://github.com/simbody/simbody.git C:/Simbody-source
使用前须知
- Simbody 是 C++ 库和 API,不是独立应用程序。
- 从源码构建需要 CMake 3.21 或更高版本,以及 LAPACK 和 BLAS。
收录于专题
标签
常见问题
- simbody 是什么?
- 开源 C++ 多体动力学库,用于模拟机器人、车辆和人体骨骼等关节机构。 Simbody 是一个用 C++ 编写的多体动力学库,用于模拟由刚体和关节组成的机构,并可施加力、规定运动和约束。它采用 Featherstone 风格的 O(n) 方法在广义坐标下计算运动,适用于人和动物骨骼等生物力学结构,也适用于机器人、车辆和各类机械系统。
- simbody 可以免费使用吗?用的什么许可证?
- simbody 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- simbody 还在维护吗?
- 活跃维护中。simbody 最近一次提交是在 2026年11月6日。
- simbody 适合用来做什么?
- 为生物力学研究模拟人体或动物的肌肉骨骼运动 用 C++ 构建机器人或车辆的动力学模型 将多体物理引擎集成到特定领域的仿真应用中
- simbody 怎么安装和运行?
- 按照 README 中的说明,在 Mac 上用 Homebrew 安装 Simbody 按照 README 中的说明,在 Ubuntu 或 Debian 上用 apt-get 安装预编译二进制文件 从 GitHub 克隆源代码以从源码构建: git clone https://github.com/simbody/simbody.git C:/Simbody-source
- 在哪里获取 simbody?
- 源代码和安装说明在 GitHub 上:https://github.com/simbody/simbody
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
基于 C++17 的物理引擎,提供 Python 绑定,用于机器人与计算动画中关节体的运动学、动力学和接触仿真。
通用物理引擎,用于快速、精确地模拟带接触的关节式结构,常用于机器人与机器学习研究。
面向游戏和 VR 应用的 C++ 刚体物理与碰撞检测库,支持多核并行。
基于 JAX 的可微分刚体物理引擎,面向机器人控制、形态协同设计与机器人学习。
一个 Python 框架,可将普通 Python 函数即时编译为在 CPU 或 GPU 上运行的内核,用于仿真、机器人与机器学习。