Babylon.js is a
real time
Real-time or real time describes various operations in computing or other processes that must guarantee response times within a specified time (deadline), usually a relatively short time. A real-time process is generally one that happens in defined ...
3D engine using a
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
library for displaying
3D graphics
3D computer graphics, or “3D graphics,” sometimes called CGI, 3D-CGI or three-dimensional computer graphics are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for the ...
in a web browser via
HTML5. The source code is available on
GitHub
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous ...
and distributed under the
Apache License 2.0.
History and progress
It was initially released in 2013 under
Microsoft Public License
The Shared Source Initiative (SSI) is a source-available software licensing scheme launched by Microsoft in May 2001. The program includes a spectrum of technologies and licenses, and most of its source code offerings are available for download aft ...
having been developed by two
Microsoft
Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
employees. David Catuhe created the 3D
game engine
A game engine is a software framework primarily designed for the development of video games and generally includes relevant libraries and support programs. The "engine" terminology is similar to the term "software engine" used in the software i ...
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
Microsoft Silverlight is a discontinued application framework designed for writing and running rich web applications, similar to Adobe Inc., Adobe's Run time environment, runtime, Adobe Flash. A plugin for Silverlight is still available for a v ...
's
WPF based 3D system.
Catuhe's side-project then became his full-time job, and his team's primary focus.
In 2015, it was presented at the
WebGL Conference in Paris. As of 2018, it has more than 190 contributors and following its promotion and application in games, including one by
Ubisoft
Ubisoft Entertainment SA (; ; formerly Ubi Soft Entertainment SA) is a French video game publisher headquartered in Saint-Mandé with development studios across the world. Its video game franchises include '' Assassin's Creed'', ''Far Cry'', '' ...
. Its use has developed into a variety of fields such as:
* virtual worlds
* crime data visualization
* education in medicine
* fashion avatars
* managing
Kinect
Kinect is a line of motion sensing input devices produced by Microsoft and first released in 2010. The devices generally contain RGB cameras, and infrared projectors and detectors that map depth through either structured light or time of flig ...
on the web
* military training
* modelling historic sites
* Product design
*
RDF graphs
* urban underground infrastructure modelling
Technical description
The source code is written in
TypeScript and then
compiled
In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
into a
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
version. The JavaScript version is available to end users via
NPM or
CDN
CDN may refer to:
Places
* Canada (Canadian), a North American country
* , a neighborhood in Montreal, Quebec, Canada
Technology
* Content delivery network, on the Internet
* Change detection and notification, of Web pages
Transportation
* Can ...
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
3D rendering is the 3D computer graphics process of converting 3D modeling, 3D models into 2D computer graphics, 2D images on a computer. 3D renders may include photorealistic rendering, photorealistic effects or non-photorealistic rendering, no ...
.
Modeling methodology
The 3D
modeling process used is that of polygon modeling with triangular faces to be
represented by shell models. Limited use of
constructive solid geometry
Constructive solid geometry (CSG; formerly called computational binary solid geometry) is a technique used in solid modeling. Constructive solid geometry allows a modeler to create a complex surface or object by using Boolean operators to combi ...
is possible though only as a transitional method to create the union, subtraction and intersection of shell models. Once created models are
rendered on an
HTML 5
HTML5 is a markup language used for structuring and presenting content on the World Wide Web. It is the fifth and final major HTML version that is a World Wide Web Consortium (W3C) recommendation. The current specification is known as the HTML ...
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
A camera is an Optics, optical instrument that can capture an image. Most cameras can capture 2D images, with some more advanced models being able to capture 3D images. At a basic level, most cameras consist of sealed boxes (the camera body), ...
and lights together with the 4 x 4 world
matrices for each object which stores their position, rotation and scale. The technique used to produce
photo realistic images is that of
physically based rendering along with
post-processing methods.
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
Cannon.js is an open source JavaScript 3D physics engine created by Stefan "schteppe" Hedman. Unlike physics engine libraries ported from C++ to JavaScript, cannon.js is written in JavaScript from the start and can take advantage of its features. ...
and Oimo. Animation involving, for example, changes in position or color of models is accomplished by
key frame
In animation and filmmaking, a key frame (or keyframe) is a drawing or shot that defines the starting and ending points of a smooth transition. These are called ''frames'' because their position in time is measured in frames on a strip of film ...
animation objects called animatables, while full character animation is achieved through the use of
skeletons with blend weights.
See also
*
List of 3D graphics libraries
3D graphics have become so popular, particularly in video games, that specialized APIs (application programming interfaces) have been created to ease the processes in all stages of computer graphics generation. These APIs have also proved vital to ...
*
List of WebGL frameworks Frameworks are available to create WebGL content quickly and easily without building from the ground up.
Note: The following list mixes WebGL libraries with game engines as well as cloud services without any distinctions.
See also
* WebGL
* ...
*
JavaScript library
*
Web framework
A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and ...
References
Further reading
*
*
*
*
*
*
*
*
External links
*
{{Microsoft FOSS
2013 software
3D scenegraph APIs
Cross-platform software
Free 3D graphics software
Graphics libraries
JavaScript libraries
Microsoft free software
Software using the Apache license
WebGL