Fast and lightweight JavaScript game engine built on WebGL and glTF
Alternatives To Engine
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Babylon.js22,09236208a day ago409December 08, 202386apache-2.0TypeScript
Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework.
Filament16,85827a day ago130November 15, 2023131apache-2.0C++
Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2
Cesium11,582227459a day ago124December 01, 20231,329apache-2.0JavaScript
An open-source JavaScript library for world-class 3D globes and maps :earth_americas:
Engine8,959210a day ago169December 04, 2023567mitJavaScript
Fast and lightweight JavaScript game engine built on WebGL and glTF
Claygl2,71055202 months ago14January 23, 201942bsd-2-clauseJavaScript
A WebGL graphic library for building scalable Web3D applications
Vue 3d Model2,233713a year ago31August 15, 2022110mitVue
📷 vue.js 3D model viewer component
Three Gltf Viewer1,931
6 days ago6mitJavaScript
Drag-and-drop preview for glTF 2.0 models in WebGL using three.js.
a month ago156otherC#
Efficient glTF 3D import / export package for Unity
Three Vrm1,0831194 days ago79December 05, 202341mitTypeScript
Use VRM on Three.js
Xeogl93523 years ago2September 12, 201857otherJavaScript
A WebGL-based 3D engine for technical visualization. Not actively maintained.
Alternatives To Engine
Select To Compare

Alternative Project Comparisons

PlayCanvas WebGL Game Engine

API Reference | User Manual | Examples | Forum | Blog

PlayCanvas is an open-source game engine. It uses HTML5 and WebGL to run games and other interactive 3D content in any mobile or desktop browser.

NPM version Minzipped size Average time to resolve an issue Percentage of issues still open Twitter


Project Showcase

Many games and apps have been published using the PlayCanvas engine. Here is a small selection:

Seemore After The Flood Casino
Swooop dev Archer Flappy Bird
Car Star-Lord Global Illumination

You can see more games on the PlayCanvas website.


PlayCanvas is used by leading companies in video games, advertising and visualization such as:
Animech, Arm, BMW, Disney, Facebook, Famobi, Funday Factory, IGT, King, Miniclip, Leapfrog, Mojiworks, Mozilla, Nickelodeon, Nordeus, NOWWA, PikPok, PlaySide Studios, Polaris, Product Madness, Samsung, Snap, Spry Fox, Zeptolab, Zynga


PlayCanvas is a fully featured game engine.

  • Graphics - Advanced 2D + 3D graphics engine built on WebGL 1 & 2.
  • Animation - Powerful state-based animations for characters and arbitrary scene properties
  • Physics - Full integration with 3D rigid-body physics engine ammo.js
  • Input - Mouse, keyboard, touch, gamepad and VR controller APIs
  • Sound - 3D positional sounds built on the Web Audio API
  • Assets - Asynchronous streaming system built on glTF 2.0, Draco and Basis compression
  • Scripts - Write game behaviors in Typescript or JavaScript


Here's a super-simple Hello World example - a spinning cube!

<!DOCTYPE html>
    <meta charset="utf-8">
    <title>PlayCanvas Hello Cube</title>
    <meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no' />
        body {
            margin: 0;
            overflow: hidden;
    <script src='https://code.playcanvas.com/playcanvas-stable.min.js'></script>
    <canvas id='application'></canvas>
        // create a PlayCanvas application
        const canvas = document.getElementById('application');
        const app = new pc.Application(canvas);

        // fill the available space at full resolution

        // ensure canvas is resized when window changes size
        window.addEventListener('resize', () => app.resizeCanvas());

        // create box entity
        const box = new pc.Entity('cube');
        box.addComponent('model', {
            type: 'box'

        // create camera entity
        const camera = new pc.Entity('camera');
        camera.addComponent('camera', {
            clearColor: new pc.Color(0.1, 0.1, 0.1)
        camera.setPosition(0, 0, 3);

        // create directional light entity
        const light = new pc.Entity('light');
        light.setEulerAngles(45, 0, 0);

        // rotate the box according to the delta time since the last frame
        app.on('update', dt => box.rotate(10 * dt, 20 * dt, 30 * dt));


Want to play with the code yourself? Edit it on CodePen.

How to build

Ensure you have Node.js installed. Then, install all of the required Node.js dependencies:

npm install

Now you can run various build options:

Command Description Outputs
npm run build Build release, min, debug and profiler engines build\playcanvas[.min/.dbg/.prf].[mjs/js]
npm run build:es5 Build release, min, debug and profiler engines for es5 only build\playcanvas[.min/.dbg/.prf].js
npm run build:release Build release engine for es5 and es6 build\playcanvas.[mjs/js]
npm run build:types Build engine Typescript bindings build\playcanvas.d.ts
npm run docs Build engine API reference docs docs

Pre-built versions of the engine are also available.

Latest development release (head revision of dev branch):

Latest stable release:

Specific engine versions:

Generate Source Maps

To build the source map to allow for easier engine debugging, you can add -- -m to any engine build command. For example:

npm run build -- -m

This will output to build/playcanvas.js.map

PlayCanvas Editor

The PlayCanvas Engine is an open source engine which you can use to create HTML5 apps/games. In addition to the engine, we also make the PlayCanvas Editor:


For Editor related bugs and issues, please refer to the Editor's repo.

Popular Gltf Projects
Popular Webgl Projects
Popular Mapping Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Game Development
Game Engine
Virtual Reality