PlayCanvas Engine is an open-source JavaScript-based game engine designed for creating interactive 3D applications, games, and visualizations that run directly in web browsers. Built on WebGL2 and WebGPU, the engine provides a comprehensive runtime for real-time graphics and interactive experiences across any device with browser support.
The engine's graphics capabilities form its core strength, featuring an advanced 2D and 3D graphics system powered by WebGL2 and WebGPU. A notable feature is first-class support for 3D Gaussian Splats, allowing developers to load and render this emerging graphics technology natively. The engine integrates WebXR support for immersive augmented and virtual reality experiences, enabling developers to create XR content that runs in browsers without additional plugins or installations.
Physics simulation is handled through full integration with ammo.js, a 3D rigid-body physics engine, providing realistic physical interactions within 3D scenes. The animation system is state-based and supports both character animations and arbitrary scene property animations. Input handling covers multiple interaction paradigms including mouse, keyboard, touch, and gamepad APIs, making games playable across different input devices. Audio capabilities include 3D positional sound built on the Web Audio API, allowing spatial audio effects within 3D environments.
Asset management in PlayCanvas relies on an asynchronous streaming system built on glTF 2.0 standard, with support for Draco and Basis compression formats for optimized file sizes. Game behaviors can be written in either TypeScript or JavaScript, giving developers flexibility in their scripting approach. The engine is distributed as the core playcanvas package on npm, with an expanding ecosystem including React renderer bindings, web components for declarative 3D, a project scaffolding CLI tool, and a separate browser-based visual editor.
The repository shares contributors with major projects including Microsoft's VSCode and TypeScript, as well as the Rust language project, indicating cross-pollination with significant open-source initiatives.
The engine is used by major companies across gaming, advertising, and visualization sectors, including Disney, Samsung, King, Miniclip, and Snap. The project maintains comprehensive documentation including a user manual, API reference, examples gallery, and community forum. Building the engine requires Node.js 18 or higher, with npm commands available for building all engine flavors and generating API documentation.