Babylon.js
| Babylon.js | |
|---|---|
| Information | |
| Type | Game engine |
| Industry | Web 3D graphics, game development |
| Developer | Microsoft and open-source contributors |
| Written In | TypeScript |
| Operating System | Cross-platform (web browsers) |
| License | Apache License 2.0 |
| Supported Devices | WebXR-capable browsers and headsets, including Meta Quest, HoloLens 2 and Apple Vision Pro |
| Release Date | 2013 |
| Website | https://www.babylonjs.com |
Babylon.js is a free and open-source real-time 3D engine for the web, written in TypeScript and distributed as a JavaScript framework. Its GitHub repository describes it as a "game and rendering engine packed into a friendly JavaScript framework", released under the Apache License 2.0.[1] The engine renders through WebGL and WebGPU and has built-in support for WebXR, the browser API for virtual reality and augmented reality sessions, so VR and AR scenes built with it can run in a WebXR-capable browser.[2][3]
The project was started in 2013 by Microsoft employees David Catuhe and David Rousset as a side project, and it later became the main focus of a Microsoft team.[4][5] Meta's developer site lists Babylon.js alongside Three.js and A-Frame as frameworks for building WebXR apps for Meta Quest headsets.[6] The current major version is Babylon.js 9, first released on 26 March 2026; the most recent release as of late September 2026 is 9.28.0, published on 24 September 2026.[7][8]
History
Origins
David Catuhe and David Rousset created Babylon.js at Microsoft in 2013. In an interview recorded in 2018, Catuhe called it the "pet project" the two had in the past.[4] According to TechSpot, it was first released that year under a shared-source license, and later versions moved to the Apache License 2.0.[9] A 2015 Microsoft community blog post named Catuhe as lead developer, Rousset and Pierre Lagarde as developers and Michel Rousseau as 3D artist, and listed a WebVR camera, a VR device orientation camera and a stereoscopic camera among the engine's features at version 2.1.[10]
Microsoft's Open Source Programs Office later wrote that Catuhe's side project "became his full-time job, and his team's primary focus". The same 2021 post named Microsoft products that used the engine at the time: the Reactions feature in Microsoft Teams, slideshow rendering in PowerPoint for the web, and Flipgrid.[5]
WebVR era
Babylon.js 3.0, announced by Catuhe on 12 July 2017, added support for WebGL 2 and for loading glTF 2.0 files, and brought WebVR 1.1 support that included the then-new Windows Mixed Reality headsets. The engine could fall back to WebVR 1.0 on devices that did not support the newer specification, with the Samsung Gear VR given as an example.[11]
Version 3.1 introduced the VRExperienceHelper, which set up a WebVR scene with a single call (scene.createDefaultVRExperience()). It added an enter-VR button, gaze-based selection when no controller was present, laser pointers from motion controllers, and teleportation across designated floor meshes, with the field of view narrowed during the teleport animation to reduce discomfort. Default controller models were included for Windows Mixed Reality controllers, Oculus Touch and the HTC Vive.[12]
WebXR and later releases
Babylon.js 4.1, released in February 2020, expanded the engine's WebXR support with an experience helper, a session manager for advanced users, a single XR camera, input-source support, teleportation, scene interactions, physics and an API for experimental AR features. The 4.1 announcement also introduced Babylon Native, a way to build native applications from Babylon.js code.[13] The project's documentation describes WebVR as deprecated and recommends moving WebVR code to WebXR, which in most cases means replacing the VR experience helper with the XR experience helper.[3]
In June 2021, Meta's browser team wrote that Babylon.js was planning to add support for WebXR Layers later that year.[14] Babylon.js 5.0, which Microsoft presented in a series of blog posts in May 2022, added support for WebXR Layers together with WebXR image tracking and light estimation, which estimates real-world lighting so that virtual objects receive matching light and shadows.[15] Microsoft also said that version 5.0 offered full support for WebGPU.[2]
Babylon.js 6.0 (April 2023) added a WebAssembly plugin for the Havok physics engine and a reworked physics API.[9] Babylon.js 7.0 (March 2024) added full-screen GUI in XR, touchable UI elements, world scale, antialiased multiviews and the ability to use hands and controllers at the same time; Microsoft also stated that 7.0 "adds full support for Vision Pro", referring to the Apple Vision Pro.[16]
Babylon.js 8.0, announced on 27 March 2025, rewrote the core engine shaders in WGSL so that the engine supports WebGPU directly without a conversion layer.[17] For XR, 8.0 added WebXR depth sensing, which Microsoft said worked on recent Android devices and the Meta Quest 3, and export to USDZ files for building AR experiences aimed at iOS devices.[18]
Babylon.js 9.0 was announced on 26 March 2026. The launch post focused on rendering and tooling: clustered lighting, textured area lights, volumetric lighting, a Node Particle Editor, a frame graph system, animation retargeting and wider Gaussian splatting support, including the .PLY, .splat, .SPZ and .SOG/.SOGS formats. It did not list new XR features.[7]
WebXR support
WebXR can be added to a Babylon.js scene with a single call to scene.createDefaultXRExperienceAsync(). This starts an immersive VR session through the default experience helper, which sets up session initialization, input sources, the XR camera, teleportation and scene interactions.[3] A lower-level basic experience helper creates the XR camera, the session manager and the features manager, and lets developers enter a session of a chosen type, such as immersive-vr with a local-floor reference space.[19]
Optional XR capabilities are delivered as plugins through the WebXR Features Manager. The documentation says it was created to keep the engine backward compatible while tracking WebXR APIs, such as hit test and anchors, that were still changing and had different support across browser versions. Each feature is versioned, and developers can request a specific version, the "stable" version or the "latest" one.[20]
The table below lists selected XR features described in the current documentation.
| Feature | Description | Source |
|---|---|---|
| Teleportation | On by default in the default experience helper; supports moving forward, moving backwards and rotating in place | [21] |
| Controller movement | Smooth locomotion with the controllers, used instead of teleportation rather than alongside it | [22] |
| Hand tracking | Tracks 25 joints per hand; enabled by default in the default experience helper from version 6.40.0 when the device supports it | [23] |
| Body tracking | Reads up to 83 body joints per frame from the WebXR Body Tracking specification and can drive a rigged avatar mesh; documented as available on Meta Quest devices in the Meta Quest Browser | [24] |
| AR features | Hit test, anchors (with experimental persistent anchors), plane detection, background remover, DOM overlay, light estimation and depth sensing | [25] |
| WebGPU rendering in XR | Experimental rendering of immersive sessions with a WebGPU engine through the browser's XRGPUBinding; requires WebXR Layers and a WebGL fallback path is recommended |
[26] |
For immersive AR sessions, the documentation names Android phones running a Chromium-based browser with ARCore installed, the HoloLens 2 in its native Edge browser, and Quest headsets that support passthrough as supported hardware, and it recommends checking support at runtime because the list keeps changing.[25] For desktop testing, it points developers to Meta's Immersive WebXR emulator browser extension or to the Windows Mixed Reality simulator.[3] Microsoft's own mixed reality documentation includes a tutorial series for building a basic mixed reality app with Babylon.js and WebXR and running it in the Windows Mixed Reality simulator.[27]
See also
References
- ↑ "BabylonJS/Babylon.js". GitHub. Babylon.js. https://github.com/BabylonJS/Babylon.js. Retrieved 2026-09-27.
- ↑ 2.0 2.1 Jason Carter (2022-05-05). "Babylon.js 5.0: Beyond The Stars - Part 1". Windows Developer Blog. Microsoft. https://blogs.windows.com/windowsdeveloper/2022/05/05/babylon-js-5-0-beyond-the-stars-part-1/. Retrieved 2026-09-27.
- ↑ 3.0 3.1 3.2 3.3 "WebXR". Babylon.js Documentation. Babylon.js. https://github.com/BabylonJS/Documentation/blob/master/content/features/featuresDeepDive/webXR/introToWebXR.md. Retrieved 2026-09-27.
- ↑ 4.0 4.1 Kent Bye (2019-05-06). "#760: Web-Based 3D with Microsoft's Babylon.js JavaScript Framework & glTF". Voices of VR Podcast. https://voicesofvr.com/760-web-based-3d-with-microsofts-babylon-js-javascript-framework-gltf/. Retrieved 2026-09-27.
- ↑ 5.0 5.1 Emma Irwin (2021-02-22). "Microsoft Open Source success story: Babylon". Microsoft Open Source Blog. Microsoft. https://opensource.microsoft.com/blog/2021/02/22/microsoft-open-source-success-story-babylon/. Retrieved 2026-09-27.
- ↑ "Platforms". Meta Horizon OS Developers. Meta. https://developers.meta.com/horizon/discover/platforms/. Retrieved 2026-09-27.
- ↑ 7.0 7.1 Jason Carter, Thomas Lucchini (2026-03-26). "Announcing Babylon.js 9.0". Windows Developer Blog. Microsoft. https://blogs.windows.com/windowsdeveloper/2026/03/26/announcing-babylon-js-9-0/. Retrieved 2026-09-27.
- ↑ "Release 9.28.0". GitHub. Babylon.js. 2026-09-24. https://github.com/BabylonJS/Babylon.js/releases/tag/9.28.0. Retrieved 2026-09-27.
- ↑ 9.0 9.1 Alfonso Maruccia (2023-04-21). "Microsoft improves 3D rendering performance on the web with Babylon.js 6.0". TechSpot. https://www.techspot.com/news/98401-microsoft-improves-3d-rendering-performance-web-babylonjs-60.html. Retrieved 2026-09-27.
- ↑ "Build 3D games for the web with Babylon.js". Microsoft Learn (MSDN blog archive). Microsoft. 2015-06-20. https://learn.microsoft.com/en-us/archive/blogs/msgulfcommunity/build-3d-games-for-the-web-with-babylon-js. Retrieved 2026-09-27.
- ↑ David Catuhe (2017-07-12). "Announcing Babylon.js 3.0". Windows Developer Blog. Microsoft. https://blogs.windows.com/windowsdeveloper/2017/07/12/announcing-babylon-js-3-0/. Retrieved 2026-09-27.
- ↑ David Rousset (2017-12-22). "Babylon.js VRExperienceHelper: create fully interactive WebVR apps in 2 lines of code". davrous.com. https://www.davrous.com/2017/12/22/babylon-js-vrexperiencehelper-create-fully-interactive-webvr-apps-in-2-lines-of-code/. Retrieved 2026-09-27.
- ↑ Jason Carter, Thomas Lucchini (2020-02-27). "Welcome to Babylon.js 4.1". Windows Developer Blog. Microsoft. https://blogs.windows.com/windowsdeveloper/2020/02/27/welcome-to-babylon-js-4-1/. Retrieved 2026-09-27.
- ↑ Rik Cabanier, Dave Hill (2021-06-29). "Achieve Better Rendering and Performance with WebXR Layers in Oculus Browser". Meta Horizon OS Developers Blog. Meta. https://developers.meta.com/horizon/blog/achieve-better-rendering-and-performance-with-webxr-layers-in-oculus-browser/. Retrieved 2026-09-27.
- ↑ Jason Carter (2022-05-16). "Babylon.js 5.0: Key Engine Advancements - Part 3". Windows Developer Blog. Microsoft. https://blogs.windows.com/windowsdeveloper/2022/05/16/babylon-js-5-0-key-engine-advancements-part-3/. Retrieved 2026-09-27.
- ↑ Jason Carter, Thomas Lucchini (2024-03-04). "Part 2 - Babylon.js 7.0: WebXR, glTF and animation advancement". Windows Developer Blog. Microsoft. https://blogs.windows.com/windowsdeveloper/2024/03/04/part-2-babylon-js-7-0-webxr-gltf-and-animation-advancement/. Retrieved 2026-09-27.
- ↑ Jason Carter, Thomas Lucchini (2025-03-27). "Announcing Babylon.js 8.0". Windows Developer Blog. Microsoft. https://blogs.windows.com/windowsdeveloper/2025/03/27/announcing-babylon-js-8-0/. Retrieved 2026-09-27.
- ↑ Jason Carter, Thomas Lucchini (2025-04-03). "Part 3 - Babylon.js 8.0: glTF, USDz, and WebXR advancements". Windows Developer Blog. Microsoft. https://blogs.windows.com/windowsdeveloper/2025/04/03/part-3-babylon-js-8-0-gltf-usdz-and-webxr-advancements/. Retrieved 2026-09-27.
- ↑ "WebXR Experience Helpers". Babylon.js Documentation. Babylon.js. https://github.com/BabylonJS/Documentation/blob/master/content/features/featuresDeepDive/webXR/webXRExperienceHelpers.md. Retrieved 2026-09-27.
- ↑ "WebXR Features Manager". Babylon.js Documentation. Babylon.js. https://github.com/BabylonJS/Documentation/blob/master/content/features/featuresDeepDive/webXR/webXRFeaturesManager.md. Retrieved 2026-09-27.
- ↑ "WebXR Teleportation feature". Babylon.js Documentation. Babylon.js. https://github.com/BabylonJS/Documentation/blob/master/content/features/featuresDeepDive/webXR/WebXRTeleportation.md. Retrieved 2026-09-27.
- ↑ "WebXR Movement". Babylon.js Documentation. Babylon.js. https://github.com/BabylonJS/Documentation/blob/master/content/features/featuresDeepDive/webXR/WebXRMovement.md. Retrieved 2026-09-27.
- ↑ "WebXR Hand Tracking Feature". Babylon.js Documentation. Babylon.js. https://github.com/BabylonJS/Documentation/blob/master/content/features/featuresDeepDive/webXR/WebXRHandTracking.md. Retrieved 2026-09-27.
- ↑ "WebXR Body Tracking Feature". Babylon.js Documentation. Babylon.js. https://github.com/BabylonJS/Documentation/blob/master/content/features/featuresDeepDive/webXR/WebXRBodyTracking.md. Retrieved 2026-09-27.
- ↑ 25.0 25.1 "WebXR Augmented Reality Features". Babylon.js Documentation. Babylon.js. https://github.com/BabylonJS/Documentation/blob/master/content/features/featuresDeepDive/webXR/webXRARFeatures.md. Retrieved 2026-09-27.
- ↑ "WebGPU in WebXR". Babylon.js Documentation. Babylon.js. https://github.com/BabylonJS/Documentation/blob/master/content/features/featuresDeepDive/webXR/webGPUXR.md. Retrieved 2026-09-27.
- ↑ "Introduction to the Babylon.js and WebXR tutorials". Microsoft Learn. Microsoft. 2021-03-05. https://learn.microsoft.com/en-us/windows/mixed-reality/develop/javascript/tutorials/babylonjs-webxr-helloworld/introduction-01. Retrieved 2026-09-27.