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.js19,67526911416 hours ago420September 22, 202299apache-2.0TypeScript
Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework.
Filament15,49324a day ago93September 20, 2022102apache-2.0C++
Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2
Cesium10,12622722416 hours ago102September 01, 20221,320apache-2.0JavaScript
An open-source JavaScript library for world-class 3D globes and maps :earth_americas:
Engine8,2172816 hours ago129August 30, 2022511mitJavaScript
Fast and lightweight JavaScript game engine built on WebGL and glTF
Claygl2,57555912 days ago14January 23, 201941bsd-2-clauseJavaScript
A WebGL graphic library for building scalable Web3D applications
Vue 3d Model2,233732 months ago31August 15, 2022110mitVue
📷 vue.js 3D model viewer component
Three Gltf Viewer1,630
21 days ago5mitJavaScript
Drag-and-drop preview for glTF 2.0 models in WebGL using three.js.
Xeogl93513 years ago2September 12, 201857otherJavaScript
A WebGL-based 3D engine for technical visualization. Not actively maintained.
18 days ago103apache-2.0C#
Efficient glTF 3D import / export package for Unity
Three Vrm7671217 days ago51July 08, 202229mitTypeScript
Use VRM on Three.js
Alternatives To Engine
Select To Compare

Alternative Project Comparisons

PlayCanvas WebGL Game Engine

Docs | 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 Language grade: JavaScript 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.
Video Game
3d Graphics
Game Development
Game Engine
Virtual Reality