Skip to content

Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework.

License

Notifications You must be signed in to change notification settings

daoshengmu/Babylon.js

This branch is 33760 commits ahead of, 44910 commits behind BabylonJS/Babylon.js:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Oct 28, 2021
e6929dc · Oct 28, 2021
Apr 1, 2021
Aug 6, 2021
Oct 14, 2017
Oct 28, 2021
Oct 28, 2021
Oct 8, 2021
Oct 27, 2021
Oct 26, 2021
Oct 18, 2021
Oct 27, 2021
Sep 3, 2021
Oct 27, 2021
Aug 9, 2021
Sep 1, 2021
Oct 18, 2021
Oct 21, 2021
Oct 8, 2021
Oct 8, 2021
Jul 27, 2021
Oct 8, 2021
Sep 28, 2021
Sep 30, 2021
Oct 27, 2021
Oct 27, 2021
Jan 6, 2021
Nov 25, 2015
May 16, 2021
Mar 5, 2020
Jul 10, 2020
Jan 30, 2020
Apr 13, 2021
May 4, 2018
Feb 13, 2020
Jul 6, 2020
Sep 7, 2021
Sep 7, 2021
Jan 11, 2021
Mar 21, 2019
Dec 21, 2020
Jun 23, 2017
Sep 23, 2021
Oct 26, 2021
Oct 8, 2021
Oct 8, 2021
Apr 2, 2021
Jul 21, 2020

Repository files navigation

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

Additional references can be found on https://cdn.babylonjs.com/xxx where xxx is the folder structure you can find in the /dist folder like https://cdn.babylonjs.com/gui/babylon.gui.min.js

For the preview release, use the following URLs:

Additional references can be found on https://preview.babylonjs.com/xxx where xxx is the folder structure you can find in the /dist/preview release folder like https://preview.babylonjs.com/gui/babylon.gui.min.js

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();
});

Preview release

Preview version of 5.0 can be found here. If you want to contribute, please read our contribution guidelines first.

Documentation

Contributing

Please see the Contributing Guidelines.

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.

Build

Babylon.js is automatically built using Gulp. Further instructions can be found in the documentation or in the readme at /Tools/Gulp.

About

Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 89.3%
  • HLSL 4.4%
  • JavaScript 2.3%
  • Roff 1.6%
  • SCSS 1.6%
  • HTML 0.8%