Web based VR Therapies

Happy New Year!!!

I’d like to thank the amazing community of babylonjs and especially @JCPalmer, @Drigax, @sebavan, @RaananW and @Deltakosh for your help!

I can finally share what I’ve been working on. My goal is to create multiple web based virtual reality therapies as a proof of concept. Here you can find the first 2 of the therapies: https://getvret.com/

The first prototype aims to distract the user from pain (pain management):

The second prototype attempts to demonstrate a potential of exposure therapy with the user presenting in front of an audience:

You can play the prototypes on either a PC or an Oculus Quest. There’s also a mobile support, but that’s not very reliable at the moment.

If you’re unable to check them out in VR you can find some gameplay videos here:

Please let me know what you think :slight_smile:


What an amazing idea! Good luck :slight_smile:
I am sorry i can’t test it now, but will do the minute my internet provider decides i deserve to have my internet back.

1 Like

Love that when our tool helps real people!


I probably helped with the gun sight on the asteroid shooter. I played it on a Quest 2. Still, it took me a while to figure out the controllers did nothing. After that, you can almost not miss, unless you never ‘lock on’.

2 things:

  • You might make the game over text, also into a button to exit immersive mode. I clicked the Oculus button to get out.

  • The song keeps playing after I exited immersive mode. I took my head set off, and hit the power button. The “screens” went dark, but it still keeps playing. I just put it back on while writing this. When I deleted the tab it went away.

I am thinking that these things are this way to work on multiple platforms. In my scenes, I run this even before I create an engine:

let isXRCapable;
BABYLON.WebXRSessionManager.IsSessionSupportedAsync("immersive-vr").then((result) =>{
    isXRCapable = result;

begin() is where the engine gets created, but now I also have a global scope variable of whether or not on an XR device. Makes conditional programming easier.

Thank you for the feedback!