It was initially released in 2013 under
Microsoft Public License, having been developed by two
Microsoft employees in their free time as a side-project. David Catuhe created the 3D
game engine, while David Rousset implemented
VR, Gamepad and
IndexedDB support. The two were aided by artist Michel Rousseau, who contributed several 3D scenes. Babylon.js is based on an earlier game engine for
Silverlight's
WPF based 3D system.[4][5]
Catuhe's side-project then became his full-time job, and his team's primary focus.[6]
In 2015, it was presented at the
WebGL Conference in Paris.[7] Following its promotion[8][9] and application in games,[10] video game publisher
Ubisoft released an
Assassin's Creed title built atop the library in 2014.[11] As of 2024, the project has more than 500 contributors.[12]
Its use has developed into a variety of fields such as:
The source code is written in
TypeScript and then
compiled into a
JavaScript version. The JavaScript version is available to end users via
NPM or
CDN who then code their projects in JavaScript accessing the engine's API. The Babylon.js 3D engine and user code is natively interpreted by web browsers supporting the
HTML5 standard and
WebGL to undertake the
3D rendering.
Modeling methodology
The 3D
modeling process used is that of polygon modeling with triangular faces to be
represented by shell models.[26] Limited use of
constructive solid geometry is possible, though only as a transitional method to create the union, subtraction, and intersection of shell models.[27] Once created, models are
rendered on an
HTML 5canvas element using a
shader program which determines the pixel positions and colors on the canvas using the polygon models, the
textures applied to each model, the scene
camera and lights together with the 4 x 4 world
matrices for each object which stores their position, rotation and scale.[28] The technique used to produce
photo realistic images is that of
physically based rendering[29] along with
post-processing methods.[30] In order to simulate collisions between models and other real world physical actions, one of two
physics engines need to be added as plugins:
Cannon.js and Oimo.[31] Animation involving, for example, changes in position or color of models is accomplished by
key frame animation objects called "animatables," while full character animation is achieved through the use of
skeletons with blend weights.[30][32]
^Rousseau, Jean-Michel; Rousseau, David (2015-10-12).
"BabylonJS et ses dernières fonctionnalités" [BabylonJS and its latest features]. webglparis.com (in French). Retrieved 2018-09-12.
Elster, Josh (2022). Going the Distance with Babylon.js: Building extensible, maintainable, and attractive browser-based interactive applications from start to finish. Packt Publishing.
ISBN978-1801076586.
Chenard, Julian (2017). Learning Babylon.js: Learn the basics of the 3D framework Babylon.js by creating a whole game!. Independently published.
ISBN978-1520730448.
Chenard, Julian; Moreau-Mathis, Julien (2016).
"Réaliser un jeu en 3D avec BabylonJS" [Creating a 3D Game with BabylonJS] (PDF). Programmez! (in French).