Babylon.js
Babylon.js is a real time 3D engine using a JavaScript library for displaying 3D graphics in a web browser via HTML5. The source code is available on GitHub and distributed under the Apache License 2.0.
Original author(s) | David Catuhe[1] |
---|---|
Developer(s) | Microsoft[2] and contributors[3] |
Initial release | 2013 |
Stable release | 5.3.0 (April 21, 2022 ) [±] |
Preview release | 5.3.0 (April 21, 2022 ) [±] |
Repository | github |
Written in | TypeScript, JavaScript |
Type | 3D engine |
License | Apache License 2.0 |
Website | www |
History and progress
It was initially released in 2013 under Microsoft Public License having been developed by two Microsoft employees. David Catuhe created the 3D game engine and was helped by David Rousset (VR, Gamepad and IndexedDB support) mostly in their free time as a side-project. They were also helped by artist Michel Rousseau who contributed several 3D scenes. It 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] As of 2018, it has more than 190 contributors[8] and following its promotion[9][10] and application in games,[11] including one by Ubisoft.[12] Its use has developed into a variety of fields such as:
Technical description
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 all the web browser 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 5 canvas 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, these are 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]
References
-
"David Catuhe - Group Engineering Manager - Microsoft". linkedin.com. Retrieved 11 March 2021.
... Creator and leader of Babylon.js open source project ...
- "Microsoft Unveils Babylon.js 4.1, a Powerful Open Source Web Rendering Engine". winbuzzer.com. 28 February 2020. Retrieved 18 April 2021.
- "Contributors to BabylonJS/Babylon.js · GitHub". github.com. Retrieved 11 March 2021.
- Elliot, Iain (2013-08-15). "Babylon.js - A WebGL Game Engine From Microsoft". i-programmer.info. Retrieved 2018-09-06.
- Dumand, Mickael (2014-11-28). "Interview de David Rousset sur babylon.js" [An Interview with David Rousset on Babylon.js]. ekino (in French). Archived from the original on 2016-09-12. Retrieved 2018-09-07.
- Irwin, Emma (2021-02-21). "Microsoft Open Source success story—Babylon". Retrieved 2021-04-18.
- 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.
- "Contributors". GitHub. Retrieved 2018-09-06.
- Weber, Raanan (2015-12-01). "Babylon.js Building a Basic Game for the Web". Vol. 30, no. 13. MSDN. Retrieved 2018-09-12.
{{cite magazine}}
: Cite magazine requires|magazine=
(help) - Weber, Raanan (2016-01-01). "Game Development - Babylon.js: Advanced Features for Enhancing Your First Web Game". Vol. 31, no. 1. MSDN. Retrieved 2018-09-12.
{{cite magazine}}
: Cite magazine requires|magazine=
(help) - "Babylon.js Flight Simulator". Archived from the original on 2020-08-16. Retrieved 2018-09-07.
- Protalinski, Emil (2014-05-09). "Microsoft and Ubisoft launch 3D Web game Assassin's Creed Pirates, built with open-source framework Babylon.JS". The Next Web. Retrieved 2018-09-07.
- Nolan, Ben (2018-08-02). "Developing a Virtual World for multiple devices". medium.com. Retrieved 2018-09-05.
- Button, Brian (2018-05-24). "Visualizations of Boston, Massachusetts crime data". Retrieved 2018-09-09.
- Lurie, Jonathan. "MRI obliquing with webgl2 3D texture - Pixpipe & BabylonJS". YouTube. Retrieved 2018-09-09.
- Batista, Arthur V.; Lemos, Robson R.; Rudolph, Cristiane M.; Bueno, Bruna S.; Fiuza, Patricia J. (2018). "A Web3D Serious Game for Human Anatomy Education" (PDF). p. 4. Retrieved 2018-09-09.
- "3D Clothing Demo with BabylonJS". 20 September 2016. Retrieved 2018-09-09.
- Moreno, Francisco; Ramirez, Esmitt; Sans, Francisco; Carmona, Rhadamés (2015-10-23). "An Open Source Framework to Manage Kinect on the Web". 2015 Latin American Computing Conference (CLEI). p. 7. doi:10.1109/CLEI.2015.7359995. ISBN 978-1-4673-9143-6. S2CID 2798664. Retrieved 2018-09-09.
- Maxwell, Douglas; Heilmann, Michael (2017). "Leveraging HTML5 and WebGL to Address Information Assurance Barriers for Simulation Based Training in the U.S. Military" (PDF). modsimworld.org. p. 8.
- Goussu, Laurence. "Digital Pompéi". The National Institute for Research in Computer Science and Control (Inria). Retrieved 2018-09-07.
- "Sponza Palace". Retrieved 2018-09-12.
- Cardoza, Christina; Moore, Madison (2017-07-14). "SD Times news digest". SD Times. Retrieved 2018-09-07.
- "XBox Design Lab". Xbox. Archived from the original on 2016-08-19. Retrieved 2018-09-12.
- Viola, Fabio; Roffia, Luca; Antoniazzi, Francesco; D’Elia, Alfredo; Aguzzi, Cristiano; Cinotti, Tullio Salmon (2018-08-17). "Interactive 3D Exploration of RDF Graphs through Semantic Planes". Future Internet. 10 (8): 5–8. doi:10.3390/fi10080081.
- Rodríguez, Juan Manuel Jurado; Alvarado, Lidia Ortega; Higueruela, Francisco R. Feito (2018). "3D underground reconstruction for real-time and collaborative virtual reality environment" (PDF). World Society for Computer Graphics. pp. 40, 43. Retrieved 2018-09-09.
- Chenard, Julian. "Tree Generator - How to use VertexData object". Pixel Codr. Archived from the original on 2019-08-27. Retrieved 2018-11-27.
- Feldspar, Craig. "Constructive Solid Geometry in Babylon.js". GitHub. Retrieved 2018-11-27.
- Catuhe, David (November 2016). "Building Shaders with Babylon.js". Smashing Magazine. Retrieved 2018-11-27.
- Ryan, Patrick (2018-01-08). "Art Pipeline for glTF". Khronos Group. Retrieved 2018-11-27.
- Moreau-Mathis, Julien (2016). Babylon.js Essentials. Packt Publishing. ISBN 978-1785884795.
- Rousset, David (2015-06-11). "WebGL Physics and Collision Detection Using BabylonJS and Oimo.js". Game Development. Retrieved 2018-11-27.
- Beaulieu, Andy (2014-05-26). "babylon.js: physics and character animation". Spritehand. Retrieved 2018-09-06.
Further reading
- Elster, Josh (2022). Going the Distance with Babylon.js: Building extensible, maintainable, and attractive browser-based interactive applications from start to finish. Packt Publishing. ISBN 978-1801076586.
- Chenard, Julian (2017). Learning Babylon.js: Learn the basics of the 3D framework Babylon.js by creating a whole game!. Independently published. ISBN 978-1520730448.
- Moreau-Mathis, Julien (2016). Babylon.js Essentials. Packt Publishing. ISBN 978-1785884795.
- Chenard, Julien (2015). Learning BabylonJS (e-book).
- Cozzi, Patrick (2015). "WebGL Engine Design in Babylon.js". WebGL Insights. CRC Press. ISBN 978-1498716079.
- Chenard, Julian; Moreau-Mathis, Julien (2016). "Réaliser un jeu en 3D avec BabylonJS" [Creating a 3D Game with BabylonJS] (PDF). Programmez! (in French).
- Bousquié, Jérôme (2015). "La 3D sur le Web avec BabylonJS" [3D on the Web with BabylonJS] (PDF). Programmez! (in French).
- Catuhe, David (2014). "Sous le capot d'un moteur 3D" [Under the Hood of a 3D Engine] (PDF). Programmez! (in French).