* feat(platform-common): 添加WASM加载器和环境检测API * feat(rapier2d): 新增Rapier2D WASM绑定包 * feat(physics-rapier2d): 添加跨平台WASM加载器 * feat(asset-system): 添加运行时资产目录和bundle格式 * feat(asset-system-editor): 新增编辑器资产管理包 * feat(editor-core): 添加构建系统和模块管理 * feat(editor-app): 重构浏览器预览使用import maps * feat(platform-web): 添加BrowserRuntime和资产读取 * feat(engine): 添加材质系统和着色器管理 * feat(material): 新增材质系统和着色器编辑器 * feat(tilemap): 增强tilemap编辑器和动画系统 * feat(modules): 添加module.json配置 * feat(core): 添加module.json和类型定义更新 * chore: 更新依赖和构建配置 * refactor(plugins): 更新插件模板使用ModuleManifest * chore: 添加第三方依赖库 * chore: 移除BehaviourTree-ai和ecs-astar子模块 * docs: 更新README和文档主题样式 * fix: 修复Rust文档测试和添加rapier2d WASM绑定 * fix(tilemap-editor): 修复画布高DPI屏幕分辨率适配问题 * feat(ui): 添加UI屏幕适配系统(CanvasScaler/SafeArea) * fix(ecs-engine-bindgen): 添加缺失的ecs-framework-math依赖 * fix: 添加缺失的包依赖修复CI构建 * fix: 修复CodeQL检测到的代码问题 * fix: 修复构建错误和缺失依赖 * fix: 修复类型检查错误 * fix(material-system): 修复tsconfig配置支持TypeScript项目引用 * fix(editor-core): 修复Rollup构建配置添加tauri external * fix: 修复CodeQL检测到的代码问题 * fix: 修复CodeQL检测到的代码问题
Website | Documentation | 2D examples (sources) | 3D examples (sources)
2D and 3D physics engines for the JavaScript programming language (official bindings).
Building packages manually
From the root of the repository, run:
./builds/prepare_builds/prepare_all_projects.sh
./builds/prepare_builds/build_all_projects.sh
Note that prepare_all_projects.sh only needs to be run once. It needs to be re-run if any file from the
builds/prepare_builds directory (and subdirectories) are modified.
The built packages will be in builds/rapier2d/pkg, builds/rapier3d/pkg, etc. To build the -compat variant of the
packages, run npm run build in the rapier-compat directory. Note that this will only work if you already ran
prepare_all_projects.sh. The compat packages are then generated in, e.g., rapier-compat/builds/3d/pkg.
Feature selection
Multiple NPM packages exist for Rapier, depending on your needs:
@dimforge/rapier2dor@dimforge/rapier3d: The main build of the Rapier physics engine for 2D or 3D physics simulation. This should have wide browser support while offering great performances. This does not guarantee cross-platform determinism of the physics simulation (but it is still locally deterministic, on the same machine).@dimforge/rapier2d-simdor@dimforge/rapier3d-simd: A build with internal SIMD optimizations enabled. More limited browser support (requires support for simd128).@dimforge/rapier2d-deterministicor@dimforge/rapier3d-deterministic: A less optimized build but with a guarantee of a cross-platform deterministic execution of the physics simulation.
Bundler support
Some bundlers will struggle with the .wasm file package into the builds above. Alternative -compat versions exist
which embed the .wasm file into the .js sources encoded with base64. This results in a bigger package size, but
much wider bundler support.
Just append -compat to the build you are interested in:
rapier2d-compat,
rapier2d-simd-compat,
rapier2d-deterministic-compat,
rapier3d-compat,
rapier3d-simd-compat,
rapier3d-deterministic-compat.
Nightly builds
Each time a new Pull Request is merged to the main branch of the rapier.js repository,
an automatic canary build is triggered. Builds published to npmjs under the canary tag does not come with any
stability guarantee and does not follow semver versioning. But it can be a useful solution to try out the latest
features until a proper release is cut.