-
Notifications
You must be signed in to change notification settings - Fork 304
SSL Site for Multiuser XR
We need to create a hosted secure service to negotiate a connection between Shot Generator as a host, and the VR headset or AR client phone. The other benefit of this system is that multiple users will be able to manipulate a scene in other locations or even other countries! Currently, we do a direct connection with a self-signed certificate. This gives a nasty warning, and is kinda janky.
PeerJS Server (https://github.com/peers/peerjs)
link.wonderunit.com: heroku server running peerjs-server
stbr.link s3 static site that serves: index.html / xrclient.js
User wants to use XR to edit a scene...
- User clicks the VR button in Shot Generator (it will not connect without clicking the button)
- Shot Generator will generate an ID: 4 digit alphanumeric (Example: 9h5b)
- Shot Generator will connect to link.wonderunit.com via PeerJS and connect to the ID
- If the ID is already in use (There is another host is there, very very unlikely), it will generate and connect to a new ID.
- Shot Generator will display the link to the XR session: https://stbr.link/9h5b
- Wait for the XR client to connect...
User puts on VR headset...
- User clicks on browser
- Types in URL: stbr.link/9h5b (defaults to https)
- Javascript xrclient loads
- JS client gets the ID from the URL: 9h5b
- JS client connects to link.wonderunit.com via PeerJS and connect to the ID
- If the host is not there, show information: a page that explains there is no host, what to do (press the button, check internet)
- If the host is there, they are connected Peer to Peer
- JS client gets information from the host to see if it can still connect (how many clients can be in there?)
- User clicks "Enter VR"
User wants to enter AR on their phone...
- User opens chrome on android phone (for now)
- Types in URL: stbr.link/9h5b (defaults to https)
- ... same as above ...
- User clicks "Enter AR"
Main Storyboarder owner will open Shot Generator and click the VR button. This will produce a link. They can send this link to another person over chat/zoom/email/fb and that person can join the VR scene in their VR Headset or Phone! Or if they don't have those, they can just watch the Control Center.
It sucks having to always type in a new ID in the headset. So once the ID is assigned, Storyboarder will reuse that ID. This way, you can bookmark the link on your Quest or Phone.
When you are connected to VR, if someone has your ID, they can connect to your scene. Therefore, if you didn't want anyone to connect to your scene for your future sessions, you can change the ID in Shot Generator. It will generate a new ID and make a new connection. Also, you can set your ID's length in the preferences. We default to
4 digits: https://www.crockford.com/base32.html
- 4 digit alphanumeric: (26+10)^4 = 1 in 1,679,616 uniqueness
- 5: 1 in 60,466,176
- 6: 1 in 2,176,782,336
- 7: 1 in 78,364,164,096
The more digits, the more security through obscurity. When Shot Generator is closed, or if the VR button is never clicked, no one can connect to your host.
You can also set in preferences to refresh the ID every time you click the VR button.
©2020 Wonder Unit, Inc. https://wonderunit.com
Storyboarder Help
What is Storyboarder?
Previously Answered Questions
Layers in Storyboarder
Shot Generator
How to use Shot Generator
VR Help
Creating a scene in VR
Creating custom 3D Models for Shot Generator
Creating custom Emotions for Characters in Shot Generator
Development Plan
v1.18 Plan
About Wonder Unit
About Wonder Unit