1 of 30

Ray Input:

Defaults for WebVR input

Boris Smus

2 of 30

1998

The web:

Pages

Scrollbars

Blue links

etc

3 of 30

Imagine the alternative...

4 of 30

5 of 30

2016

The VR web:

What input patterns?

6 of 30

7 of 30

8 of 30

Input is hard, need sane defaults

Especially something that works well across platforms:

  • Desktop
  • Touch
  • 0DOF (eg. Cardboard, Gear VR)
  • 3DOF (eg. Daydream)
  • 6DOF (eg. Oculus, Vive)

9 of 30

10 of 30

API

var input = new RayInput();

input.add(object);

// Register a callback whenever an object is acted on.

input.on('action', (opt_mesh) => {

// Called when an object was activated.

});

11 of 30

12 of 30

Orientation only controllers

Where do you position the Daydream Controller?

You need an arm model.

13 of 30

14 of 30

15 of 30

Goal: sane defaults, non-prescriptive

16 of 30

17 of 30

Copresence in WebVR

Boris Smus

18 of 30

19 of 30

VR co-presence is mandatory

20 of 30

I built a VR demo using web tech

  • WebGL
  • WebVR
  • WebAudio
  • WebRTC

21 of 30

22 of 30

3DOF Pose

Audio Stream

23 of 30

O(n²) will not scale!

24 of 30

25 of 30

Some fun features

Mouth moves in response to speech (VoiceActivityDetector)

Spatialized sound depending on position and orientation of actors.

Shrink and grow modulates your voice (PitchShift)

26 of 30

27 of 30

Bad news: this is just a demo

Native will have much deeper integration.

  • Identity?
  • Avatars?
  • Deeper copresence integration?

28 of 30

29 of 30

What is the path to identity, avatars, payments in the browser?

30 of 30

Thanks