Introducing Babylon.js 8.0

Babylon.js
10 min read4 days ago

--

Our mission is to build one of the most powerful, beautiful, simple, and open web rendering engines in the world. Today, web graphics and rendering hit the accelerator with the release of Babylon.js 8.0.

Babylon.js 8.0 represents a year of new features, optimizations, and performance improvements aimed at helping you create more compelling, interactive web experiences faster than ever.

IBL Shadows

Image-Based Lighting (IBL) is a computer graphics lighting technique that approximates environment lighting based on a source image. Originating in the visual effects world as a way to blend computer-generated effects with real photography, IBL has become a ubiquitous tool for computer graphics wizards around the world.

Babylon.js first introduced support for IBL over 8 years ago and it has quickly become one of the most commonly used features of the engine.

Today, we are absolutely thrilled to announce that our good friends at Adobe leveled up IBL in Babylon by adding shadows to the mix! Yup, that’s right, now both light and shadows for the scene environment can be approximated from a source image. Special shout out to Michael Bond at Adobe for his incredible work on this!

Check out a demo: https://aka.ms/babylon8IBLShadows

Learn more: https://aka.ms/babylon8IBLShadowsDoc

Area Lights

We are thrilled to announce that Babylon.js 8.0 brings a frequently requested feature…Area Lights! This amazing new addition to the lighting palette allows you to specify a 2D shape that emits light from it, much like a large diffuse light that you might find on a movie set! We can’t wait to see how you use this new light type to bring a new dimension to your scene!

Check out a demo: https://aka.ms/babylon8AreaLightsDemo

Learn more here: https://aka.ms/babylon8AreaLightsDoc

Node Render Graph — Alpha

One of the most powerful new features in Babylon.js 8.0 is something we call the “Node Render Graph.”

Up to now, the specific rendering pipeline for Babylon has been a black box. You tell Babylon what to render and it goes off and does it for you. There have been observables that allow you to manipulate the result after completion of a render, but the render process itself has been opaque. Well…not anymore!

With Babylon.js 8.0 you now have full control of the entire render pipeline. This means that you can fully customize and control every part of the process of how your frames are rendered on the GPU. And if that wasn’t enough, you also now have a fancy new Node Graph tool to allow you to customize your own render pipeline, without writing complex render process code! Please note that the Node Render Graph is in Alpha for you to test and discover but should not be used in production yet as it is subject to change.

Try out the editor (on desktop): Babylon.js Node Render Graph Editor

Check out a demo (on desktop): https://aka.ms/babylon8RenderGraphDemo

Learn more here: https://aka.ms/babylon8RenderGraphDoc

All New Lightweight Viewer

Babylon.js is used by tens of thousands of people and organizations across the globe to bring complex visual ideas to life on the web. Babylon.js 8.0 unlocks a new super-powered tool for the other end of the spectrum…those scenarios where you want to display a simple 3D object on a web page with zero complexity, and stunning visuals in a tiny package.

Introducing the all new Babylon.js Lightweight Viewer. This new viewer is designed to harness the same rendering beauty and power of the full engine but comes in a smaller bundle footprint and uses dynamic imports and capabilities (audio or animation for example) depending on the model that is loaded. It can be added to any web page with just a few lines of HTML and is also fully extensible. We’re excited to see it starting to gain traction and see contributions from Adobe making it even better, and we can’t wait to see how you use it in your websites!

Of course, this new Lightweight Viewer wouldn’t be complete without a super easy-to-use configurator along with it! The Viewer Configurator is a simple tool that allows you to customize the Viewer to your exact specifications and give you the simple .html properties to set so it looks the same in your website!

Play with the Configurator (on desktop): https://aka.ms/babylon8ViewerConfig

Check it out: https://aka.ms/babylon8viewerHome

Learn more here: https://aka.ms/babylon8viewerDoc

WGSL Core Engine Shaders

Babylon.js has had support for WebGPU since its inception. The core engine shaders in Babylon.js, however, have been written in GLSL (WebGL shading language) from the beginning. Because WebGPU has its own shading language (WGSL) this posed a very interesting challenge. How do you get GLSL shaders to render in WebGPU? Fortunately, there is a conversion library that’s been available. So, anyone wanting to target WebGPU with Babylon can leverage this library to convert the Babylon shaders into something WebGPU can use. The downside of this is that this conversion library is over 3MB, requiring users to double their download size for a standardBabylon.js project.

With Babylon 8.0, this problem is a thing of the past. All of the core engine shaders for Babylon.js are now available in both GLSL and WGSL. This means direct support for WebGPU right out of the box with no conversion layer, essentially making Babylon.js 2x smaller when targeting WebGPU than in the past!

Check out a demo: https://aka.ms/babylon8WGSLDemo (try switching between WebGL2 and WebGPU)

Learn more here: https://aka.ms/babylon8WGSLDoc

Assets courtesy of Imphenzia

NME -> WGSL Support

Well, why stop at core engine shaders? Why not unlock the ability to create custom WGSL shaders using Babylon’s Node Material Editor as well!

Ok! Check!

Ability Unlocked! Let’s go Babylon 8.0!!!!!

Check out a demo (on desktop): https://aka.ms/babylon8nmeWGSL

Learn more here: https://aka.ms/babylon8nmeWGSLDoc

Overhauled Audio Engine

Babylon’s audio engine is long overdue for a tune-up and Babylon.js 8.0 swings for the fences, bringing an entirely fresh audio engine to your ears. This new engine was designed to be powerful — taking advantage of the full suite of web-audio features, modern — class names and architecture you’ve come to expect, and simple-to-use — allowing anyone to leverage these features, no matter what your experience level. For those of you who care passionately about the marriage of audio and visuals to tell a compelling story, Babylon.js 8.0 was built for you!

Check out a demo: https://aka.ms/babylon8AudioEnginev2Demo

Learn more here: https://aka.ms/babylon8AudioEnginev2Doc

Gaussian Splat Updates

Babylon.js 8.0 builds on the exciting foundation of Gaussian Splat support with some exciting new updates such as SPZ and compressed PLY formats, spherical harmonics, as well as runtime optimizations for memory footprint and CPU/GPU usage.

Check out a demo (SPZ): https://aka.ms/babylon8gsplatImrovementsDemo

Learn more here: https://aka.ms/babylon8gsplatImprovementsDoc

Footage from: St. Peter’s Basilica. A collaboration with Microsoft, and Iconem for the Fabbrica di San Pietro.

Havok Character Controller

With Babylon.js 8.0, we’ve continued our amazing partnership with the very talented team at Havok, this time bringing their fully featured character controller into Babylon.js. This brings a state-of-the-art character controller to your toolbox allowing you to start making your very own character-centered game with just a few lines of code!

Check out a demo: https://aka.ms/babylon8havokCCDemo

Learn more here: https://aka.ms/babylon8havokCCDoc

Smart Filters

Babylon.js 8.0 builds on our rich library of node-based creation tools with the introduction of Smart Filters and the Smart Filter Editor. This new tool allows you to create video filters, texture treatments, post-processes, you name it. If it’s a 2D visual effect, This tool is for you! Under the hood it leverages shaders in the same way you’d expect any of our GPU based tools to do, but it focuses on helping you create elaborate 2D visual treatments for web experiences. We can’t wait to see what you make with this exciting new tool!

Try it out yourself (on desktop): https://aka.ms/babylon8sfe

Check out a demo (on desktop): https://aka.ms/babylon8sfeDemo

Learn more here: https://aka.ms/babylon8sfeDoc

Environment Improvements

Babylon.js 8.0 continues to improve visual realism, leveling up the environment lighting to look closer and closer to real-time ray traced results! Another shout out to Michael Bond at Adobe for this additional great contribution.

Check out a demo: https://aka.ms/babylon8EnvImprovementsDemo

Learn more here: https://aka.ms/babylon8EnvImprovementsDoc

Node Geometry Editor Updates

Last year, Babylon.js introduced the ability to procedurally generate geometry without writing any code through the Node Geometry Editor.

With Babylon.js 8.0, Node Geometry takes a big step up with a massive list of new features including a lattice deformer, point list, clean geometry, interceptor, an aggregator, and the ability to subdivide.

Check out a demo (on desktop): https://aka.ms/babylon8ngeDemo

Learn more here: https://aka.ms/babylon8ngeDoc

Node Material Editor Debug Node

Babylon’s Node Material Editor makes it incredibly simple to create complex visual shaders without writing any code. This artist friendly tool bridges the gap between the complexity of building GPU shaders, and the way artists think and work.

Babylon.js 8.0 introduces some exciting UI improvements as well as the new incredibly useful “visual debug node.” This node allows you to see the visual output at any point in your Node Tree. You no longer have to move the output around and hook it up to different places in your graph. It’s as simple as adding debug nodes throughout your tree to see how your shader changes throughout the computation!

Check out a demo (on desktop): https://aka.ms/babylon8nmedebugnodedemo

Learn more here: https://aka.ms/babylon8nmedebugnodedoc

Improved Booleans

No, not those Booleans. True and False are just fine the way they are. We’re talking about Geometric Booleans!

Babylon.js 8.0 introduces support for the popular Manifold.js library, allowing you to create new shapes with more consistent Geometric Booleans. Or more simply put, “Finally some Booleans that look the way I expect them to look!”

Check out a demo: https://aka.ms/babylon8booleanDemo

Learn more here: https://aka.ms/babylon8booleanDoc

Updated glTF Support — KHR_materials_diffuse_transmission

Babylon.js 8.0 continues the long rich tradition of supporting every extension update to the glTF format. As glTF advances, Babylon.js is in lock-step with support for those advancements. Babylon.js 8.0 brings support for the very beautiful KHR_material_diffuse_transmission!

Check out a demo: https://aka.ms/babylon8gltfdemo

Learn more here: https://aka.ms/babylon8gltfDoc

Credit to Eric Chadwick for the beautiful asset, seriously, Eric’s work is incredible, go support him!

glTF Exporter Improvements

Babylon.js introduces a host of new improvements to the glTF serializer, allowing you to export your Babylon scenes as glTF objects with support for the latest extensions and features!

Check out a demo: https://aka.ms/babylon8gltfSerializerDemo (try exporting as glTF and opening in your favorite 3D tool)

Learn more here: https://aka.ms/babylon8gltfSerializerDoc

More glTF Loader Options

Babylon.js 8.0 unlocks new loader options for .glTF objects allowing you to programmatically load your assets with pre-determined specifications, such as loading at a specific LOD (Level of Detail). These new loader options will provide new flexibility and control of how you bring assets into your Babylon.js scenes!

Check out a demo: https://aka.ms/babylon8glTFLoaderDemo

Learn more here: https://aka.ms/babylon8glTFLoaderDoc

Thank you to Shopify for the wonderful shoe asset.

IES Light Support

IES Lighting is a technique that describes the “shape” of a light that emits from a lamp. You can read more about it here: IES-Library. Babylon.js brings support for IES files, unlocking new ways to express dimension and lighting in your scenes!

Check out a demo: https://aka.ms/babylon8IESLightDemo (click/touch to see different IES light shapes)

Learn more here: https://aka.ms/babylon8IESLightDoc

USDZ Export

Babylon.js 8.0 allows you to export .usdz files, making it easier than ever for you to build AR experiences targeted for iOS devices!

Check out a demo: https://aka.ms/babylon8usdzDemo

Learn more here: https://aka.ms/babylon8usdzDoc

GPU Mesh Picking

Picking meshes in a scene can be an expensive feature since the CPU has to loop through every piece of geometry to find the triangle that most closely intersects the ray cast from the picking location.

Ready for some wizardry? Babylon.js 8.0 introduces the ability to pick meshes from directly from the GPU! Yup, that’s right. This means that in complex scenes, where picking is required, you can boost performance by offloading this to the GPU.

Check out a demo: https://aka.ms/babylon8gpuPickDemo

Learn more here: https://aka.ms/babylon8gpuPickDoc

GPU Bounding Box

Bounding Box calculation can be expensive, especially if you have a few animated meshes with a large number of vertices. Babylon.js 8.0 introduces the ability pass Bounding Box calculation to the GPU, freeing up valuable cycles on the CPU and improving performance for your scene.

Check out a demo: https://aka.ms/babylon8gpuBBoxDemo

Learn more here: https://aka.ms/babylon8gpuBBoxDoc

EXR Texture Support

Babylon.js 8.0 also brings support for EXR files. This feature-rich image format unlocks some new superpowers for you to use in Babylon.js. Negative pixel values for example can be used to store complex visualizations as a texture format that can now be read in Babylon.js!

Check out a demo: https://aka.ms/babylon8exrDemo

WebXR Depth Sensing

Babylon.js 8.0 brings support for a new and exciting WebXR feature called “Depth Sensing.” This feature uses depth information captured from devices to give developers the ability to overlay real world visuals “on top” of computer-generated images! You just have to see it to believe it. It feels like magic!

Check out a demo (on recent Android devices or Oculus Quest 3): https://aka.ms/babylon8webxrDSDemo

Learn more here: https://aka.ms/babylon8webxrDSDoc

A Peek Ahead

Phew! Babylon.js 8.0 is by far the platform’s biggest release to date. There’s so much goodness packed into it that it feels like you’ve been scrolling forever! Would you believe there’s even more in active development?!!! Here’s a tiny tease about a couple of things on the horizon.

glTF Interactivity Support — If you follow the advancement of the glTF file format, then you know that exciting things are coming with the interactivity workstream. We’re actively working on supporting this incredible new extension that will allow asset behaviors to travel with your assets. That means that interactivity is no longer tied to one specific creation tool or engine!

OpenPBR Support OpenPBR is an open standard for how Physically Based Rendered materials look when rendered. Guess what’s in active development in Babylon? 😉

Tooling For Everyone — We understand that everyone who comes to the Babylon platform comes from different backgrounds and experience levels, from software engineers at the top of their game, to students and artists just beginning their computer graphics journey. We are passionate about ensuring that everyone who is interested in leveraging Babylon.js has the tools and workflows to do so. We’ll have more to share on this later this year.

Thank You

With each evolution of Babylon.js comes a revolution in web rendering technology and an overwhelming feeling of gratitude. The Babylon platform simply wouldn’t be possible without the incredible community of developers, the 500+ contributors, and the steadfast advocates that contribute their knowledge, expertise, help, and passion to this amazing technology. “Thank you” to each one of you for all that you do to help make Babylon.js one of the most powerful, beautiful, simple, and open web rendering platforms in the world.

Sign up to discover human stories that deepen your understanding of the world.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Babylon.js
Babylon.js

Written by Babylon.js

Babylon.js: Powerful, Beautiful, Simple, Open — Web-Based 3D At Its Best. https://www.babylonjs.com/

No responses yet

Write a response