面向游戏和 VR 应用的 C++ 刚体物理与碰撞检测库,支持多核并行。
liabru/matter-js
一款面向网页的 JavaScript 2D 刚体物理引擎,可在浏览器和 Node.js 中运行。
- Star
- 18,603
- Fork
- 2,001
- 未关闭 Issue
- 280
- 最近提交
- 上个月
这是什么?
Matter.js 是一个用 JavaScript 编写的 2D 刚体物理引擎,专为网页环境设计。它负责碰撞、重力、摩擦、弹性恢复和约束等计算,开发者可以直接在基于 Canvas 的游戏、交互图形或模拟项目中加入真实的物理运动,而无需自行实现物理逻辑。
引擎支持刚体、复合刚体和凹多边形,也能根据 SVG 路径或地形生成形状。它提供射线检测和区域查询等碰撞查询功能,支持时间缩放实现慢动作效果,并带有可缩放、平移的视图。Canvas 渲染器可以绘制矢量图形和纹理。物体静止时可进入休眠状态,世界状态也可以借助 resurrect.js 进行序列化。
它兼容 Chrome、Firefox、Safari 和 IE8 及以上版本,也可以在 Node.js 中运行。可以通过 npm 或 Yarn 安装,也能直接用一个 script 标签引入,并提供插件机制、大量示例和 API 文档。
核心功能
- 01支持刚体、复合刚体和凹多边形,并带有碰撞检测
- 02提供重力、摩擦、弹性碰撞和约束计算
- 03支持射线检测和区域查询
- 04Canvas 渲染器可绘制矢量图形和纹理
- 05支持时间缩放、可缩放视图和物体休眠
- 06提供插件机制,可在浏览器和 Node.js 中运行
适用场景
- 在浏览器中开发弹弓、堆叠类等 2D 物理游戏
- 为基于 Canvas 的网页动画加入交互式物理效果
- 在 Node.js 中运行无界面的物理模拟
- 原型化桥梁、小车、摆锤等机械系统
快速上手
- 1
从 npm 安装该包
npm install matter-js - 2
参考 Getting started 维基页面中的最小使用示例
使用前须知
- README 将 master 分支的 alpha 构建标注为实验性版本。
收录于专题
标签
常见问题
- matter-js 是什么?
- 一款面向网页的 JavaScript 2D 刚体物理引擎,可在浏览器和 Node.js 中运行。 Matter.js 是一个用 JavaScript 编写的 2D 刚体物理引擎,专为网页环境设计。它负责碰撞、重力、摩擦、弹性恢复和约束等计算,开发者可以直接在基于 Canvas 的游戏、交互图形或模拟项目中加入真实的物理运动,而无需自行实现物理逻辑。
- matter-js 可以免费使用吗?用的什么许可证?
- matter-js 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- matter-js 还在维护吗?
- 半年内有更新。matter-js 最近一次提交是在 2026年9月30日。
- matter-js 适合用来做什么?
- 在浏览器中开发弹弓、堆叠类等 2D 物理游戏 为基于 Canvas 的网页动画加入交互式物理效果 在 Node.js 中运行无界面的物理模拟 原型化桥梁、小车、摆锤等机械系统
- matter-js 怎么安装和运行?
- 从 npm 安装该包: npm install matter-js 参考 Getting started 维基页面中的最小使用示例
- 在哪里获取 matter-js?
- 源代码和安装说明在 GitHub 上:https://github.com/liabru/matter-js
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
专为 Bevy 游戏引擎打造的 ECS 驱动 2D/3D 物理引擎,使用 Rust 编写。
Box2D 2D 物理引擎的 JavaScript/TypeScript 重写版,用于 HTML5 游戏开发。
通用物理引擎,用于快速、精确地模拟带接触的关节式结构,常用于机器人与机器学习研究。
基于 Rust 的 2D 与 3D 物理引擎,适用于游戏、动画和机器人,提供 C、Python 等绑定。
Bullet Physics SDK,一个用于实时碰撞检测和多物理场仿真的 C++ 库,适用于游戏、VR、机器人和机器学习。