3D for Web, Mobile and PC

NPM version GitHub last commit

Physics for Three.js

Easily add Physics (ammo.js) to your Three.js scene. Including Dynamic, Static and Kinematic Bodies, Compound Shapes, Constraints, CCD Motion Clamping and more.

Ammo Physics on Node.js

Run enable3d's Headless Physics Module on your Node.js Server without the use of additional packages like electron, node-canvas, jsdom or puppeteer.

Standalone 3D Framework

Use enable3d to easily get your first 3D HTML5 WebGL Game up and running in minutes. It uses the popular Three.js Engine and ammo.js (bullet3) Physics.

Phaser 3D Extension

Integrate 3D Objects and Physics with few lines of code to your Phaser Games. Use all cool Phaser features you are used to, to create an amazing 3D game.

Open Source and Free

Yep, enable3d is open source and free. You'll find everything on github. Staring the project helps a lot! It shows people like it and will thus motivate me to develop it further :)

Web, Mobile and PC

Written in JavaScript (TypeScript), allows you to easily deploy it to any http server. Use capacitor to deploy your game to Android and iOS and electron to deploy it to Windows and OSX.

Introduction Video

Watch a great introduction video on YouTube.

Enable3D Introduction Video

Get Started

Examples Documentation Templates


Packages from npm Bundles from github

Become a Supporter



Connect with the community on GitHub Discussions.

Multiplayer Games

Want to make a multiplayer game? You can run enable3d on the client and the server (in headless mode; with physics). Also check out geckos.io.

Development Server

Need a great dev-server? Check out Five Server:


These features are all on my todo list:


Initially I only wanted to make a 3D extension for Phaser 3. That is where the name enable3d is coming from. But now, this project can do much more. I have extracted the main project into separate modules. So, you can now use enable3d as a Physics Plugin for Three.js, as a Standalone 3D Framework, as an 3D Extension for Phaser or on your Node.js Server.