Software for 2023 VR class
install Node.js and npm if you haven't
npm install
- Install python3 if you haven't, then do
python run.py
- Go to chrome://flags/ in your Google Chrome browser
- Search: "Insecure origins treated as secure" and enable the flag
- Add http://[your-computer's-ip-address]:8080 to the text box. For example: http://10.19.127.1:8080
- Relunch the chrome browser on your computer and go to http://localhost:8080
- Run the program locally on your compurer
- Open the browser on your VR headset
- Go to chrome://flags/
- Search: "Insecure origins treated as secure" and enable the flag
- Add http://[your-computer's-ip-address]:8080 to the text box. For example: http://10.19.127.1:8080
- Relunch the browser on your VR headset and go to http://[your-computer's-ip-address]:8080
- On your Oculus app, go to Devices, select your headset from the device list and wait for it to connect.Then select Developer Mode and turn on Developer Mode.
- Connect your quest with your computer using your Oculus Quest cable.
- Go to chrome://inspect#devices on your computer
- Go to your VR headset and accept Allow USB Debugging when prompted on the headset
- On the chrome://inspect#devices on your computer, you should be able to see your device under the Remote Target and its active programs. You can then inspect the 2023 VR Class window on your computer.
- Go to the scenes folder and create a .js file based on the template of demoExample.js
- Change the name and the content of the demo to whatever you like!
- Go to scenes.js, add the name of your demo and its path to the returned value of
scenes
- Note that the
enableSceneReloading
is set to true so that you can hot-reload the changes in your demo.
- Enable the experimental feature in the browser (Oculus Browser 11)
- Visit chrome://flags/
- Enable WebXR experiences with joints tracking (#webxr-hands)
- Enable WebXR Layers depth sorting (#webxr-depth-sorting)
- Enable WebXR Layers (#webxr-layers)
- Enable phase sync support (#webxr-phase-sync)
- Enable "Auto Enable Hands or Controllers" (Quest Settings (Gear Icon) -> Device -> Hands and Controllers)
- Enter the VR experience
- To change the initial position of your avatar: go to js/util/inline-viewer-helper.js and change the values of
this.lookYaw
,this.walkPosition
,this.lookPitch
. Notice thatthis.viewerHeight
(the avatar's height) is set to be 1.6m from theinlineViewerHelper.setHeight(1.6)
in js/immersive-pre.js. You can change this if you like. - To customize your own avatar: go to js/primitive/avatar.js. You can change the GLTF models used in the
Headset
and theController
classes. You can add additional arguments to theinitAvatar
function to specify the avatar's look, and pass those values from theaddPawn
function.
- Currently, we are only synchronizing the user's actions rather than the scene rendering, so all participants should start at the same time – we do not yet support updating the scene for participants who join later.
- In our current implementation, the Croquet session will start when the user clicks on the demoCroquet button, but the session will be dropped only when the person closes the webpage, or after the webpage has not been active for a long time. If you find that synchronization of participants has failed, try refreshing the page for all participants. This usually fixes it.
- We are currently disabling the auto-reloading feature, because that feature might create unwanted multiple Croquet sessions.