Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework.
Babylon.js
Getting started? Play directly with the Babylon.js API using our playground. It also contains a lot of samples to learn how to use it.
Any questions? Here is our official forum.
CDN
For the preview release, use the following URLs:
A list of additional references can be found here.
npm
BabylonJS and its modules are published on npm with full typing support. To install, use:
npm install babylonjs --save
This will allow you to import BabylonJS entirely using:
import * as BABYLON from 'babylonjs';
or individual classes using:
import { Scene, Engine } from 'babylonjs';
If using TypeScript, don't forget to add 'babylonjs' to 'types' in tsconfig.json
:
... "types": [ "babylonjs", "anotherAwesomeDependency" ], ...
To add a module, install the respective package. A list of extra packages and their installation instructions can be found on the babylonjs user on npm.
Usage
See Getting Started:
// Get the canvas DOM element var canvas = document.getElementById('renderCanvas'); // Load the 3D engine var engine = new BABYLON.Engine(canvas, true, {preserveDrawingBuffer: true, stencil: true}); // CreateScene function that creates and return the scene var createScene = function(){ // Create a basic BJS Scene object var scene = new BABYLON.Scene(engine); // Create a FreeCamera, and set its position to {x: 0, y: 5, z: -10} var camera = new BABYLON.FreeCamera('camera1', new BABYLON.Vector3(0, 5, -10), scene); // Target the camera to scene origin camera.setTarget(BABYLON.Vector3.Zero()); // Attach the camera to the canvas camera.attachControl(canvas, false); // Create a basic light, aiming 0, 1, 0 - meaning, to the sky var light = new BABYLON.HemisphericLight('light1', new BABYLON.Vector3(0, 1, 0), scene); // Create a built-in "sphere" shape using the SphereBuilder var sphere = BABYLON.MeshBuilder.CreateSphere('sphere1', {segments: 16, diameter: 2, sideOrientation: BABYLON.Mesh.FRONTSIDE}, scene); // Move the sphere upward 1/2 of its height sphere.position.y = 1; // Create a built-in "ground" shape; var ground = BABYLON.MeshBuilder.CreateGround("ground1", { width: 6, height: 6, subdivisions: 2, updatable: false }, scene); // Return the created scene return scene; } // call the createScene function var scene = createScene(); // run the render loop engine.runRenderLoop(function(){ scene.render(); }); // the canvas/window resize event handler window.addEventListener('resize', function(){ engine.resize(); });Contributing
If you want to contribute, please read our contribution guidelines first.
Documentation
Contributing
Please see the Contributing Guidelines.
Useful links
Features
To get a complete list of supported features, please visit our website.
Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.
We'll never share your email with anyone else.