What is the difference between Babylon React Native and Babylon Native? Which one should I use for developing for Meta Quest?

I tried building the Babylon React Native Sample app

And it worked on Android with no issues, The Meta Quest (MQ) 3 also runs a different version of Android (albeit without google suff like ARCore). So I tried installing the app via the device shell and I got it to launch, but pressing “Start XR”, fails with the prompt “Please install the latest version of google play servcies for AR” , which cannot be done because the MQ3’s version of Android doesn’t support the play store.

I’m guessing something about compiling for android with the react-native-iosandroid package inherently relies on ARCore and Google Play.

I went on the babylon react native main page and found

BABYLON NATIVE

With Babylon Native, you can write your rendering code once and re-use it across your web site and your various native applications. You code your application in JavaScript and the Babylon Native Runtime runs it on platform native graphics APIs (DirectX on Windows, Metal on iOS/MacOS, OpenGL on Android, and OpenXR devices such as HoloLens 2 and Oculus).

More on Babylon Native

Should I be using Babylon Native instead of Babylon React NAtive if I want to make an app that will work on both ios, Google Android and the MQ3?

There is this https://github.com/BabylonJS/BabylonNative/blob/master/Documentation/WhenToUseBabylonNative.md in the Native repo.

Also your question is too long. Did not see the Quest part, till I almost hit the “reply” button. If you need that then probably neither at this time, but not native for sure. Only XR on Hololens for Native.

Do not know about React, but from what you write, does not look possible for now.

I see, Thank You and I apologize for the long question :slight_smile:
I’m still figuring stuff out.

If you need that then probably neither at this time, but not native for sure. Only XR on Hololens for Native.

Are you saying Babylon Native currently supports XR only on Hololens?

Pretty sure. Right @bghgary ? For a long time, it was never said other XR systems would not be supported, there was just not the resources to add them.

Native is just a preview, missing key stuff as well, like WebAudio.

1 Like

We don’t have support for Oculus yet as there are issues. Contributions would be welcome for this. That statement on the website should probably be amended to remove Oculus. XR should work on HoloLens but no one is actively working on this at the moment. XR does work on Android and iOS via ARCore and ARKit.

2 Likes

Got it, Thanks! I’m trying to deploy a cross platform XR experience, maybe I should just use regular BabylonJS and make it a webapp then.

Thanks everybody for the clarifications :slight_smile:

1 Like

WebXR is not supported on iOS, so it won’t work there, but it should work everywhere else.

cc @RaananW

1 Like

@bghgary @JCPalmer In terms of WebXR support for Vision Pro, does the work flow explored in this announcement/blog change things?

… also: How to enable WebXR on Apple Vision Pro

If so, the doc referenced above might need a revision, which it has not seen in 2 years… BabylonNative/Documentation/WhenToUseBabylonNative.md at master · BabylonJS/BabylonNative · GitHub

VisionOS supporting WebXR is new, so it doesn’t change the existing platforms. If iOS Safari started supporting WebXR, then it would change some things for Babylon Native but probably not a lot. Maybe @RaananW knows the state of WebXR support for Safari on iOS.

No WebXR on iOS. Sadly.