ITADN
dimforge/rapier
dimforge/rapier · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

crates.io

Build status crates.io crates.io

网站 | 文档


Rust 编程语言的 2D 和 3D 物理引擎


什么是 Rapier?

Rapier 是一套用于游戏、动画和机器人的 2D 和 3D 物理引擎。这些 crate 是 rapier2drapier3drapier2d-f64rapier3d-f64。它们使用 Rust 编程语言编写,由 Dimforge 组织开发。它永久免费 且开源!

入门指南

开始使用 Rapier 最简单的方法是:

  1. 阅读 用户指南
  2. 尝试示例:cargo run --release --bin all_examples2cargo run --release --bin all_examples3。 它们的源代码位于 examples2d/examples3d/ 目录中。
  3. 不要犹豫,在 Discord 上寻求帮助,或在 GitHub 上提交 issue。

性能

SIMD 批量约束求解和接触处理始终开启: 求解器每条指令处理 4 个接触流形,在没有 SIMD 支持的目标上回退到标量 代码。对于性能敏感的应用, 也请启用:

  • parallel — 通过 rayon 对整个物理步骤(宽相、 窄相、求解器)进行多线程处理。在具有异构核心的 CPU 上 (Apple silicon、Intel hybrid),还请调用 PhysicsPipeline::set_dedicated_thread_pool(None) 以在仅包含性能核心的 线程池上运行该步骤:否则,求解器的屏障同步阶段 将以最慢(效率)核心的速度运行。
rapier3d = { version = "*", features = ["parallel"] }

Python 绑定

Python 绑定正在开发中。它们以四个 PyPI 包的形式发布—— rapier2drapier3drapier2d-f64rapier3d-f64——每种 (维度,标量)风味各一个。请参阅 python/README.md 了解 如何从检出构建绑定、文档和测试环境,以及 python/docs/ 查看 API 文档。

AI 编码免责声明与政策

AI 编码被广泛用于以下 crate 的实现和维护:mjcf-rsrapier3d-mjcf,以及 Python 绑定(python/rapier-py*),包括其测试、示例和文档。

我们积极使用 AI 辅助(配合人工审查)执行以下任务:

  • 文档生成。
  • 变更日志生成。
  • 测试生成。
  • CI 配置和脚本。

我们接受涉及 AI 编码的贡献,只要:

  • 它们经过人工验证可正常工作。
  • 代码质量达到人工编写代码的标准。
  • 在适用情况下包含非回归测试(其本身可以由 AI 生成)。

资源与讨论

  • Dimforge: 查看我们正在开发的所有开源项目!关注我们的 博客 上的公告。
  • 用户指南: 通过阅读官方用户指南,学习如何在您的项目中使用 Rapier。
  • Discord: 来 Discord 与我们聊天、获取帮助、提出功能建议!
  • NPM 包: 如果您需要 在 JavaScript/Typescript 中使用它,请查看我们的 Rapier NPM 包。

请务必熟悉我们的 行为准则 以及我们的 贡献指南,然后再参与贡献或与社区 进行讨论。