It was initially released in 2013 underMicrosoft Public License, having been developed by twoMicrosoft employees in their free time as a side-project. David Catuhe created the 3Dgame engine, while David Rousset implementedVR, Gamepad andIndexedDB support. The two were aided by artist Michel Rousseau, who contributed several 3D scenes. Babylon.js is based on an earlier game engine forSilverlight'sWPF 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 theWebGL Conference in Paris.[7] Following its promotion[8][9] and application in games,[10] video game publisherUbisoft released anAssassin'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 inTypeScript and thencompiled into aJavaScript version. The JavaScript version is available to end users viaNPM orCDN 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 theHTML5 standard andWebGL to undertake the3D rendering.
The 3Dmodeling process used is that of polygon modeling with triangular faces to berepresented by shell models.[27] Limited use ofconstructive solid geometry is possible, though only as a transitional method to create the union, subtraction, and intersection of shell models.[28] Once created, models arerendered on anHTML 5canvas element using ashader program which determines the pixel positions and colors on the canvas using the polygon models, thetextures applied to each model, the scenecamera and lights together with the 4 x 4 worldmatrices for each object which stores their position, rotation and scale.[29] The technique used to producephoto realistic images is that ofphysically based rendering[30] along withpost-processing methods.[31] In order to simulate collisions between models and other real world physical actions, one of twophysics engines need to be added as plugins:Cannon.js and Oimo.[32] Animation involving, for example, changes in position or color of models is accomplished bykey frame animation objects called "animatables," while full character animation is achieved through the use ofskeletons with blend weights.[31][33]
^Rousseau, Jean-Michel; Rousseau, David (2015-10-12)."BabylonJS et ses dernières fonctionnalités" [BabylonJS and its latest features].webglparis.com (in French). Retrieved2018-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.