My team and I are interested in Babylon Native but we are not sure how mature it is?
Hi Everyone,
My team and I have a web application that we use BabylonJS for to render 3D meshes. We are thinking of moving this web application to be a native application (with the use of Babylon Native) for a couple of reasons: (1) We want an application that will use a Graphics API that is closer to the GPU (such as DirectX on Windows), and (2) we want to use the application on multiple platforms.
However, the project status for Babylon Native says that its still in public preview. My team and I are interested to adopt Babylon Native but are not sure when we can start using it.
I’m not sure what you mean by this. Babylon Native will intercept the rendering calls from Babylon.js and forward them to bgfx. It doesn’t get closer to the GPU, at least not in a significant way.
I would recommend reading these if you haven’t already:
The main reason why we still have this marker is because the API contract is still in flux. In other words, we don’t currently guarantee backwards compatibility for the native part of the contract. The API may change in the future. If this is acceptable, it will be okay to use it. We will be here to support you.
We have some internal projects using Babylon Native directly, but I have not heard of external users using Babylon Native directly. There are people using Babylon React Native. Hopefully forum users can chime in on this.
We’re using Babylon React Native for a commercially released product. See Emesent Commander.
Babylon React Native is definitely production ready. Coming from a web dev background, it fulfils its promise of being able to use familiar web technologies to develop native mobile 3D applications. It supports most of the Babylon.js packages (that we need anyway). There are some differences and idiosyncrasies between native and web, but most of those are due to the differences in target platforms and not Babylon itself.
The main pain point we encountered was more due to React Native being single threaded, so the 2D UI, application logic, 3D and video streaming (in our case) all share the same thread. React Native New Architecture with concurrency isn’t quite mature enough yet to alleviate this performance bottleneck. If you’re planning on using Babylon Native directly, then this would not be a concern for you.
So I’d reiterate what @bghgary recommended, read the following carefully to determine which of Babylon.js web, Babylon Native or Babylon React Native best suits your particular use case:
And a big shout out to the @BabylonNative team! They’ve been very helpful and responsive to our questions and requests for support, as has the broader Babylon community.