A Babylon Native Backstage Tour

What is Babylon Native?

Babylon Native is a very exciting project and it fits perfectly with my love for learning. Its goal is to provide a way for native applications to utilize the powerful Babylon.js for 3D rendering in a cross platform way. For more information see:

Diagram that show JavaScript technology stack when executed under Babylon Native.

Work at the Babylon Native team

Among other things, our goal in the Babylon Native team is to bring all functionality currently supported by the Babylon.js framework to be supported when running within a native application, this way our users can just bring the code they already have running in the browser and get the exactly same experience when running in the native application.

Example — Adding support for morph targets:

One of my first tasks after joining Babylon Native team was to bring the support for morph targets. They way Babylon.js handles the differences in execution between the web browser (were it has access to the WebGL and WebGPU APIs) and Babylon Native (were graphic functionality will be provided by our C++ layer) is that it has two implementations of its Engine class, one that run in the browser and another (NativeEngine) that run on the native environment.

Adding support for 2D Texture Arrays:

First thing we do is to add an implementation of “createRawTexture2DArray” to the NativeEngine class. This implementation will not be able to use WebGL or WebGPU to create the texture array on the GPU.

Javascript NativeEngine class calls the C++ loadRawTexture2DArray method, to create the graphics objects using bgfx.
Implementation of LoadRawTexture2DArray on the C++ NativeEngine.
Win32 application using Babylon Native to display a 3D model with morph targets.

Final thoughts

Babylon Native is a very unique project to work with. It gives you the opportunity to work with both high level languages such as Javascript as well as low level C++. More than that, it allow you to understand how Javascript engines work, how 3D graphics work and hundreds of other things!

Are you excited about this type of work?

The Babylon team has open positions for both the Babylon.js and Babylon Native! If you want to learn more about those positions please use the links below:

References

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Babylon.js

Babylon.js

1.4K Followers

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