一款用 Rust 编写的数据驱动游戏引擎,基于实体组件系统(ECS),支持 2D 和 3D 游戏开发。
avianphysics/avian
专为 Bevy 游戏引擎打造的 ECS 驱动 2D/3D 物理引擎,使用 Rust 编写。
- Star
- 3,280
- Fork
- 302
- 未关闭 Issue
- 212
- 最近提交
- 3天前
这是什么?
Avian 是为 Bevy 游戏引擎开发的物理引擎,使用 Rust 编写,分为 2D(avian2d)和 3D(avian3d)两个 crate。它直接基于 Bevy 的 ECS 设计,物理对象就是普通的实体和组件,无需额外维护一套独立的物理世界。
引擎支持动态、运动学和静态刚体,涵盖线速度与角速度、外力与冲量、阻尼、轴锁定、休眠以及连续碰撞检测。碰撞检测基于 Parry 库实现,同时提供碰撞事件、碰撞层、碰撞钩子、关节(固定、距离、移动、旋转、球形)以及射线检测、形状投射等空间查询功能,并包含固定时间步长下的 Transform 插值与调试渲染。
项目同时支持 f32 和 f64 精度,默认使用 f32。文档托管在 docs.rs 上,仓库中also附有大量 2D 和 3D 示例。
核心功能
- 01动态、运动学和静态刚体,支持速度、阻尼与轴锁定
- 02基于 Parry 的碰撞检测,提供碰撞层、碰撞事件和碰撞钩子
- 03内置固定、距离、移动、旋转和球形关节
- 04支持射线检测、形状投射等空间查询
- 05固定时间步长下的 Transform 插值与外推
- 06支持 f32 和 f64 精度
适用场景
- 为基于 Bevy 开发的 2D 或 3D 游戏添加刚体物理与碰撞
- 在 Bevy 模拟中实现铰链、滑块等关节约束
- 利用射线或形状投射实现视线判断、弹道检测等玩法逻辑
快速上手
- 1
在 Cargo.toml 的依赖中添加 avian3d(2D 项目则添加 avian2d)
avian3d = "0.8" - 2
在 Bevy 应用中添加 PhysicsPlugins,并使用 RigidBody 和 Collider 生成物理实体
使用前须知
- 仅适用于 Bevy 游戏引擎,在 Bevy 之外无法使用。
- 当前为 1.0 之前的版本(0.8),不同版本之间 API 可能变化。
- 每个 Bevy 版本都需要对应的 Avian 版本,升级 Bevy 时可能需要同步更新。
收录于专题
标签
常见问题
- avian 是什么?
- 专为 Bevy 游戏引擎打造的 ECS 驱动 2D/3D 物理引擎,使用 Rust 编写。 Avian 是为 Bevy 游戏引擎开发的物理引擎,使用 Rust 编写,分为 2D(avian2d)和 3D(avian3d)两个 crate。它直接基于 Bevy 的 ECS 设计,物理对象就是普通的实体和组件,无需额外维护一套独立的物理世界。
- avian 可以免费使用吗?用的什么许可证?
- avian 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- avian 还在维护吗?
- 活跃维护中。avian 最近一次提交是在 2026年11月4日。
- avian 适合用来做什么?
- 为基于 Bevy 开发的 2D 或 3D 游戏添加刚体物理与碰撞 在 Bevy 模拟中实现铰链、滑块等关节约束 利用射线或形状投射实现视线判断、弹道检测等玩法逻辑
- avian 怎么安装和运行?
- 在 Cargo.toml 的依赖中添加 avian3d(2D 项目则添加 avian2d): avian3d = "0.8" 在 Bevy 应用中添加 PhysicsPlugins,并使用 RigidBody 和 Collider 生成物理实体
- 在哪里获取 avian?
- 源代码和安装说明在 GitHub 上:https://github.com/avianphysics/avian
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
5万+178 本周5026RustApache-2.0更新于 昨天
面向游戏和 VR 应用的 C++ 刚体物理与碰撞检测库,支持多核并行。
1.2万+243 本周1010C++MIT维护活跃更新于 21小时前
Godot 是一款免费开源、跨平台的游戏引擎,可在统一编辑器中开发 2D 和 3D 游戏。
12万+371 本周2.7万C++MIT维护活跃更新于 昨天
一款轻量的脚本驱动游戏引擎,支持 2D、第三人称 3D 及混合游戏开发。
63+5 本周9C++Other更新于 20小时前
一款面向网页的 JavaScript 2D 刚体物理引擎,可在浏览器和 Node.js 中运行。
1.9万+30 本周2000JavaScriptMIT维护活跃更新于 上个月
通用物理引擎,用于快速、精确地模拟带接触的关节式结构,常用于机器人与机器学习研究。
1.6万+103 本周1930C++Apache-2.0更新于 19小时前