# Forge Rapier physics example 1.0 Original Forge adapter/UI/checks: MIT, retain LICENSE.txt. Actual dependency: Dimforge @dimforge/rapier3d-compat 0.21.0, Apache-2.0, retain RAPIER-LICENSE.txt (Copyright 2020 Dimforge EURL). No external art or complete-game template. Covered code rights do not clear other game assets/dependencies/trademarks. Download rapier-physics-source.zip and extract into a new empty folder. The ZIP contains the original example and notices; install the upstream library separately: 1. Node 24: run `npm install --ignore-scripts --no-audit --no-fund`. The dependency version is exact; retain the resulting lockfile. 2. Run `npm run build`. It copies the exact pinned upstream module only if its SHA256 matches the reviewed module; it refuses to overwrite a different rapier.mjs. No package install script is run. 3. Run `npm run check`: six actual WASM checks must pass (three update schedules, impulse/contact, invalid/disposed operations and repeated world creation/disposal). 4. Python3: serve with `python3 -m http.server 8080`; open http://localhost:8080/index.html. Modules need HTTP, not file://. Another static server is fine if its CSP allows WebAssembly compilation. 5. Choose Start/restart. The library loads only on that action. Pause, step one fixed1/60-second tick, resume, apply an upward impulse, then Dispose world. Blur/background pauses; Resume requires your action. Restart disposes the previous world and event queue before creating a fresh one. The canvas is an original side view of actual 3D positions (metres). It is not a 3D renderer or an engine plugin. Rapier owns fall/collision; the Forge adapter owns one fixed-step loop, UI and resource disposal. The body/floor use neutral geometry. No vehicle handling, character controller, race rules, networking or whole-game integration is implied. Step one tick is enabled only when paused. This deliberate example should be kept separate from a working project. Website dependency transfer is approximately1.7MB gzip (4.34MB uncompressed); only an explicit start requests it. The website serves exact unmodified upstream bytes from a checked compressed copy with the Apache notice. The package source is https://registry.npmjs.org/@dimforge/rapier3d-compat/0.21.0 ; tarball SRI sha512-tCl1HPGwOhn5aCQbgqWbOH+Nx/5fnr3IPAnzQuR7zIhC/raqi2yxC6LhvZqjdI2El5hQgY5RDAwDrAjAi2FdPA== ; module SHA25602dc6a4e2fffc013bab08fbb44fa68f501d8303615e9afe4c7d89ad4eedda0d0. Original-source docs: https://rapier.rs/docs/user_guides/javascript/getting_started_js/ . The source package contains no telemetry/accounts/private project inputs. Actual browser and downloaded-package checks are separate from physical-device/assistive/native-engine/full-game acceptance. Browser numbers describe this controlled scene, not a speed benchmark or universal deterministic result.