WebVR scenes made with Babylon look great in Quest Browser

I received an Oculus Quest at work today. First thing I did was navigate to a test site I’ve been developing using the quest browser. It looks great! I’m so impressed with Babylon.JS and how we are able to deliver VR content without going through Steam or Oculus stores!

Book Update: I’ve nearly finished another chapter (that’s 3 finished). As soon as I have more to show and my website updated I will let share.

6 Likes

These are 2 COOL NEWS :smiley:

1 Like

Thank you for letting us know that Babylon JS works on the Quest. :slight_smile:
:slight_smile:

1 Like

Great. Which browser works perfectly for VR ?

It’s called supermedium. Supermedium - Virtual Reality Browser on Oculus Rift | Oculus It works on the rift and rift s (i have the rift s).

For a standard browser, Firefox works well.

@drburton does the quest have a built in browser?

1 Like

I got my quest yesterday. I tried loading models on oculus browser, it works okey, need to customize controllers.
Any good reference for controller customization ?

1 Like

I tried some demos and one of my projects in the Quest default browser, too. (Might try Firefox Reality as well sometime)
It is really great that it works so nicely out of the box! Only PBR Materials do have a huge impact on performance when they are displayed on a huge part of the viewport :confused:

Also +1 to the controller question. If there was an easier way for interactions than building the whole logic myself then I would try to do more with it.

Yes, Quest has a built in browser and you can also download Firefox Reality if you don’t want to use the default browser.

1 Like

I am working on a tutorial that covers customized controllers.
Anything specific you would like to see?

I am thinking about best methods for easy navigation and interacting with meshes. I will be developing it for industrial training. I work with offshore oil & gas system. We have developed a concept called Plantdesk. A group of developers are working with our industrial data management platform. 3D is one part in it.

I played around with the VR controls a bit today based on this Babylon.js Playground and Use a Physics Engine - Babylon.js Documentation.

I altered the system there to parent objects directly to the controller instead of using the virtualSelected mechanic of the playground because I found it to be rather complex.
Grabbing works pretty great but gravity still pulled the objects down when grabbed. Then I found the PhysicsImpostor.sleep() and .wakeUp() for freezing physics for that time. That solved this problem but there is no velocity on the object when releasing it. Might go on implementing the virtualSelected mechanic as I can’t find a better way :cry:

I tried Physics Joints, too. Sadly I couln’t find the correct configuration (I think LockJoint would be correct, but it is too wobbly). Also there is no easy way to find connected joints and remove them after releasing an object. Did I miss something here?

Pinging @Cedric

Hi @GreyWorks

I’d keep the virtual selector controller from the previous frame, then when you release the impostor, add an impulse. The velocity of that impulse is the vector delta of the virtual controller (current frame position minus previous frame position) divided by the frame duration (0.0166 seconds for 60Hz refresh). that’s equal to the distance divided by the duration.

Now you have the velocity you want to give to the impostor, multiply by the impostor mass to get the force.

Add that force as an impulse to the impostor when you wake up the impostor and you should be good :slight_smile:

If you have some difficulties, I’d be happy to help you debug your playground.

1 Like

Thank you so much for the suggestion. I finally figured it out like you described and even got the rotation… somehow.

Sadly I don’t have a playground because I try to make the whole Interaction thing a TS class for future use in other projects. Thus I implemented it on a branch in my test project.
You can find it here if you want to take a look: Babylonjs-tests/VRInteractions.ts at VRInteractions · GreyWorks/Babylonjs-tests · GitHub

It is far from perfect and pretty wonky for now but it finally works! At least the grabbing and throwing :smiley:

I will try to flesh it out more and add click interaction. Maybe extend the class from the VR Helper? Don’t know yet.
Will ask for feedback when I’m done :slight_smile:
Hopefully it will be something that others can reuse, too.
But I think “Questions” is the wrong place for that. Maybe Demos and projects would be the right category then?

2 Likes

Ive got to see this grabbing and throwing. Gestures are very exciting, i would be happy to respond to the joysticks and buttons just now.

Excited about this! Would you be willing to share an early preview about this book?
My email is dpurushotham136@gmail.com. Thanks!!

I will be happy to send you the preview. Thanks for your interest!

Hi @drburton,

I am also interested in this book as a preview, my email is cstfan@gmail.com, thanks