A Three.js renderer for 3D Gaussian Splatting scenes, supporting WebGPU and WebGL2 with streaming LOD for large models.
playcanvas/engine
An open-source JavaScript game engine for building interactive 3D apps, games and visualizations on WebGL2 and WebGPU that run in any browser.
Open-source alternative to:Unity
- Stars
- 17,226
- Forks
- 2,052
- Open issues
- 464
- Last commit
- yesterday
What is it?
PlayCanvas Engine is the core runtime of the PlayCanvas game engine, distributed as the npm package `playcanvas`. It renders 2D and 3D graphics through WebGL2 and WebGPU, so the output runs in any modern browser on desktop or mobile without a plugin.
The engine covers the main parts of a game stack: a scene graph of entities and components, physics via ammo.js, state-based animation, mouse, keyboard, touch and gamepad input, and 3D positional sound built on the Web Audio API. Assets are loaded asynchronously and use glTF 2.0 with Draco and Basis compression. It also supports 3D Gaussian Splatting and WebXR for AR and VR. Game behaviors are written in TypeScript or JavaScript.
The project is MIT licensed and can be installed with `npm install playcanvas`, or scaffolded with `create-playcanvas`. Related packages include a React renderer, Custom Elements web components, and a browser-based visual editor.
Key features
- 01Renders 2D and 3D graphics on WebGL2 and WebGPU.
- 02Supports 3D Gaussian Splatting for loading and displaying splat scenes.
- 03Provides WebXR support for AR and VR experiences.
- 04Integrates ammo.js for 3D rigid-body physics.
- 05Loads glTF 2.0 assets with Draco and Basis compression.
Use cases
- Building browser-based 3D games that run without installation.
- Creating interactive product visualizations or configurators for the web.
- Displaying Gaussian Splat captures in a web page.
- Developing WebXR AR or VR experiences.
Quick start
- 1
Install the engine package with npm
npm install playcanvas - 2
Or scaffold a full project with create-playcanvas
npm create playcanvas@latest
Things to know
- Requires a browser with WebGL2 or WebGPU support.
- Building the engine from source requires Node.js 18 or newer.
In collections
Topics
FAQ
- What is engine?
- An open-source JavaScript game engine for building interactive 3D apps, games and visualizations on WebGL2 and WebGPU that run in any browser. PlayCanvas Engine is the core runtime of the PlayCanvas game engine, distributed as the npm package `playcanvas`. It renders 2D and 3D graphics through WebGL2 and WebGPU, so the output runs in any modern browser on desktop or mobile without a plugin.
- Is engine free to use? What license does it have?
- engine is open source under the MIT license. Check the license terms before using it in commercial products.
- Is engine still maintained?
- Actively maintained. The last commit to engine was on Nov 6, 2026.
- What can I use engine for?
- Building browser-based 3D games that run without installation. Creating interactive product visualizations or configurators for the web. Displaying Gaussian Splat captures in a web page. Developing WebXR AR or VR experiences.
- How do I install engine?
- Install the engine package with npm: npm install playcanvas Or scaffold a full project with create-playcanvas: npm create playcanvas@latest
- Where can I get engine?
- The source code and installation instructions are on GitHub: https://github.com/playcanvas/engine
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A JavaScript/TypeScript 3D game and rendering engine that runs in the browser on WebGL, WebGPU and WebXR.
Windows Explorer thumbnail handler that previews 3D Gaussian Splatting PLY files and Spatialograph Maker projects without opening them.
A JavaScript 3D library that makes it easier to build and render 3D scenes in the browser with WebGL and WebGPU.
Open 3D Engine (O3DE), a multi-platform, real-time 3D engine for building games, cinematic 3D worlds and simulations.
A 2D/3D game engine written in Go on Vulkan, with a built-in editor that is itself a game running in the engine.