PlayCanvas Engine
The open-source PlayCanvas Engine is the world's most advanced WebGL/WebGPU game engine. Use JavaScript to program anything from simple 2D games to advanced 3D graphics simulations. All written in standards-compliant, cross-platform HTML5 for every major browser and device.
WebGL2 + WebGPU
Dual graphics backend with WebGL2 for broad compatibility and WebGPU for next-generation performance including compute shaders.
Open source
The PlayCanvas Engine is open sourced on GitHub under the MIT license with full TypeScript definitions.
Tiny engine footprint
A lightweight runtime that loads and executes incredibly quickly, even on low-end mobile devices and Chromebooks.
npm + ES Modules
Install via npm and import only what you need. Tree-shakable ES Modules keep your bundle size minimal.
Looking for more?
The features above are just a few of our favorites. There are many, many more to choose from and many more in the pipeline.
New!
WebGPU Support
Full WebGPU graphics backend for next-generation rendering performance with automatic WebGL2 fallback.
New!
Compute Shaders
Harness the power of the GPU for general purpose computation via WebGPU compute shaders.
New!
3D Gaussian Splatting
Render photorealistic 3D Gaussian Splats with support for uncompressed, compressed and SOG formats with GPU-accelerated sorting.
New!
WGSL Shader Support
Write shaders in WGSL for the WebGPU backend alongside GLSL for WebGL2. The engine manages both shader variants automatically.
New!
React Integration
Build 3D experiences declaratively with PlayCanvas React, a full component library for React developers.
New!
Web Components
Use standard HTML custom elements like <pc-app>, <pc-entity> and <pc-camera> to build 3D scenes with zero framework dependencies.
TypeScript Definitions
Full TypeScript type definitions generated from the engine source for type-safe development and rich IDE support.
ES Modules + npm
Install the engine via npm as a tree-shakable ES Module. Import only the features you need for minimal bundle sizes.
glTF™ 2.0 Support
Import and render stunning glTF™ assets with support for Draco mesh compression, KHR_materials_variants and more.
Draco Mesh Compression
Up to 90% reduction in model file size for faster downloads.
Clustered Lighting
Render hundreds of dynamic lights in the scene with low performance cost.
Area Lights
Simulate real world lighting panels with Area Lights.
Asynchronous asset streaming
Enable applications to load faster by deferring loading of non-essential assets.
WebXR support
Create immersive AR, VR and mixed reality experiences with hand tracking, hit testing, plane detection, anchors and more.
Powerful audio API
Positional 3D sound with an easy API that allows you to hook up WebAudio filters.
Entity-component system
Build applications quickly with a flexible entity-component application framework.
Physically based rendering
Realistic rendering using the latest techniques in real-time 3D graphics with image-based lighting.
Animation State Graph
Easily create complex animation logic using the State Graph Editor with layer support.
One-click publishing
Publish PlayCanvas apps live to the web with a single click.
Shader chunk system
Partial and full shader customization: tweak parameters, override chunks of the standard shader, or write your own GLSL and WGSL.
GPU skinning
Hardware accelerated character animation.
GPU particle system
Hardware accelerated particle effects system.
Runtime lightmap generation
Have dozens of high-resolution shadowed static lights, without having to download a lightmap over the network.
Static lighting optimizations
Use hundreds of static lights with specular on any platform.
Blend shape animation
Support for blend shape / morph target animation on your models.
Templates
Create reusable Entity hierarchies as Templates for faster editing workflows.
Soft shadows and light cookies
Select from multiple shadow casting algorithms to suit your performance needs. Light cookies enable cool effects cheaply.
Asset importer and manager
Import assets including 3D models and animations (FBX, OBJ, glTF, GLB), textures including HDR textures, audio files and more.
Linear & HDR graphics pipeline
Linear & HDR pipeline: gamma-correct, tonemapped rendering with support for HDR cubemaps and lightmaps.
Input device API
Support any input device including keyboard, mouse, gamepads or touchscreens.
Signed distance field font rendering
Convert TTF/OTF fonts into font assets and render crisp text into PlayCanvas scenes.
Rigid body physics engine
Full 3D rigid body physics simulation with collision detection powered by ammo.js (Bullet).
Responsive user interface tools
Components that allow you to create your own responsive 2D or 3D UIs.
On-device development & testing
Fast iteration time using real-time updating on mobile devices.
Powerful asset filtering
Search and filter your large asset collection for quick development.
Realtime editing of scenes
See changes from your teammates instantly with Google Docs-style collaboration features.
Cubemap prefiltering
Set up image-based lighting with the click of a button.
In-app visual profiler
Profiler overlay which displays graphs, timings and stats in realtime for your PlayCanvas application.
Texture compression
Compress textures to Basis, KTX2, ASTC, ETC and DXT formats for optimal size and performance across all devices.
Material editor
Quickly and easily tweak materials visually in realtime.
Multi-platform support
Run the Editor on any device: desktop, laptop, tablet or mobile.