Babylon.js

From public sources

Babylon.js is an open-source JavaScript and TypeScript 3D game and rendering engine for building interactive web experiences with WebGL, WebGPU and WebXR.

LibraryCategory: Libraries & SDKs · Animation & 3DOpen sourcedata checked Oct 15, 2026

Overview

Building interactive 3D content for the web usually means wiring together low-level WebGL code, asset loaders, physics and input handling by hand. Babylon.js provides a complete engine in one framework: scenes, cameras, lights, meshes, materials, animations and audio, all accessible through a clean JavaScript and TypeScript API. The library renders through WebGL and WebGPU and ships with typed packages on npm, so it can be imported as a whole or in smaller modules. Developers can start quickly with the online Playground, which hosts many samples, or install the package and run a scene in a few dozen lines of code. The project is licensed under Apache-2.0. Babylon.js suits web game developers, interactive product visualisation teams and anyone adding real-time 3D to a browser application. It runs in the browser as a front-end dependency and can be bundled into any standard web build pipeline.
  • 3d
  • animation
  • babylon
  • game-development
  • game-engine
  • game-engine-3d
  • typescript
  • webaudio
  • webgl
  • webgl2
  • webgpu
  • webvr

Installation

Commands are shown, never run by the marketplace. Check them against the official documentation.

Compatibility

Unknown means no evidence was found — not that the product is incompatible.
PlatformStatusArchitectureEvidenceConfidence
Node.jsUnknown———
PythonUnknown———
JVMUnknown———
.NETUnknown———
WebAssemblyUnknown———
Web browserUnknown———

Releases

checked Oct 29, 2026
v9.33.0LatestOct 29, 2026Official source ↗

Files in 9.33.0

The marketplace does not host these files: downloads go to the official source. Files have not been scanned by us.
FilePlatformSizeSHA-256Download from the official source
cdnSnapshot.zipUnknown1.4 MB8561b476cddd…Official source ↗

Release history

Quality profile

algorithm quality-v1.0 · assessed Oct 15, 2026
Quality Score100
Risk Score0
Confidence 1.00
Quality Score and Risk Score are different measures. A high score does not guarantee safety.

Score components

Maintenance · 2020
last activity 0 days ago
Documentation · 1515
README 6510 chars, description present
Ready to use · 1515
install instructions: yes; releases: yes
Metadata · 1010
4/4 of description, homepage, license, topics
Releases · 1010
10 release(s), latest 8 days ago
Category confidence · 1010
classifier confidence 1
Adoption · 1010
26168 stars (log-dampened, 10k = max)
License clarity · 55
SPDX Apache-2.0
Community · 55
issues enabled, 3707 forks

License

Apache-2.0
Known licensefrom the repository host

This is the catalog policy status, not legal advice.

Sources

github.com/BabylonJS/Babylon.jsPrimary★ 26,168 starslast activity Oct 15, 2026Primary repository · Confidence 1.00

Reviews

Sign in to write a review

No reviews yet.

Alternatives

README

From BabylonJS/Babylon.js · license Apache-2.0 · fetched Oct 29, 2026

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.

[npm version] [Build Status] [Average time to resolve an issue] [Percentage of issues still open] [Build size] [Twitter] [Discourse users]

Any questions? Here is our official forum.

CDN

⚠️ WARNING: The CDN should not be used in production environments. The purpose of our CDN is to serve Babylon packages to users learning how to use the platform or running small experiments. Once you've built an application and are ready to share it with the world at large, you should serve all packages from your own 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

alternatively, you can now rely on our ES6 packages. Using the ES6 version will allow tree shaking among other bundling benefits.

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

Building and developing this repository requires Node.js 22.22.2 or newer within the Node 22 line, or Node.js 24.16.0 or newer within the Node 24 line, and npm 11.18.0 or newer. These are development-tool requirements; they do not change the runtime requirements of the published Babylon.js libraries.

If you want to contribute, please read our contribution guidelines first.

Documentation

Useful links

  • Official web site: www.babylonjs.com
  • Online playground to learn by experimentating
  • Online sandbox where you can test your .babylon and glTF scenes with a simple drag'n'drop
  • Online shader creation tool where you can learn how to create GLSL shaders
  • 3DS Max exporter can be used to generate a .babylon file from 3DS Max
  • Maya exporter can be used to generate a .babylon file from Maya
  • Blender exporter can be used to generate a .babylon file from Blender 3d
  • Unity 5 (deprecated) exporter can be used to export your geometries from Unity 5 scene editor(animations are supported)
  • glTF Tools by KhronosGroup

Features

To get a complete list of supported features, please visit our website.

Open the repository ↗