了解 / 物理引擎
一套自己的
物理引擎。
EvoForge 里的机器人仿真和游戏角色都跑在自研的物理引擎上:用 Rust 写成、全程双精度、内置在应用里——不用另装,也不用另买引擎授权。
01 / 刚体刚体 · 关节 · 多关节体
刚体与多关节机器人。
刚体、碰撞体和关节共处一个世界。多关节体——一条机械臂、一个人形机器人——以广义坐标存在于同一个世界里,它们的连杆与产生的接触、关节在同一个系统里一起求解。求解器采用分子步的软约束;两点接触作为一个整体块来解,摩擦投影到库仑圆盘上,静止的岛会自动休眠。另有一个带精确接触求解的关节体仿真器,供那些以运动效果来评判的控制器使用。
02 / 软体有限元 · 撕裂 · 自碰
会形变、会撕裂的软体。
软体是稳定 Neo-Hookean 材料的四面体网格,用牛顿法隐式积分,内层用预条件共轭梯度求解。它们有摩擦、会撕裂,能和刚体碰撞,彼此之间、和自身也会碰撞,包括高速运动时的接触。
03 / 碰撞自研几何层
经得起推敲的几何。
底层是 EvoForge 自己的碰撞层:粗检测用动态 AABB 树,几何上有凸包与近似凸分解、三角网格、高度场和体素,接触流形逐步保留冲量,连续碰撞检测让快速物体停在第一次接触处,而不是穿墙而过。