Interfaces of the Future

And how to hack around
with them now

Peter O'Shaughnessy | @poshaughnessy | Press f for full screen, h for high contrast

Pearson Future Tech

The Multi-Device Era

Multiple devices

Jeremy Keith

Pictures under glass

PlaceIt

What's next?

Wearables?

Pebble and Galaxy Gear

Kārlis Dambrāns

Wearables?

Google Glass

Thomas Hawk

Different devices, different experiences

Using iPad on a sofa

plantronicsgermany

Different devices, different experiences

Selfie

Wikimedia

Long Nose of Innovation

Sketchplanations

Hype Cycle

Wikipedia

A couple of upcoming paradigms...

Augmented Reality & Holographics

Pearson School of Thought

2015

Meta

2019?

Raybans

Wikimedia

Virtual Reality

Neo in the Matrix

Sudhee

2015

Oculus Rift

Oculus Rift

Presence

Fotolia

BeAnotherLab

Oculus Rift Grandma

Paul Rivot

In the last few weeks:

Browsers implementing:

  • Device discovery
  • Full screen extensions
  • Sensor integration, e.g. orientation
  • Rendering for different hardware

“WebVR”

  • "Version Zero"
  • Not even in alpha channels yet

WebGL

Stereo with no distortion

Oculus Rift

WebGL

Stereo with distortion for Oculus

Oculus Rift

CSS 3D

CSS3D Globe

edankwan.com

Code

Warning: APIs will change

if( navigator.getVRDevices ) {
    // Chrome
    navigator.getVRDevices().then( vrDeviceCallback );

} else if( navigator.mozGetVRDevices ) {
    // Firefox
    navigator.mozGetVRDevices( vrDeviceCallback );
}
function vrDeviceCallback( vrDevices ) {
    for( var i=0; i < vrDevices.length; i++ ) {
        // If instance of HMDVRDevice...
        // If instance of PositionSensorVRDevice...
    }
}
var leftFOV =
    vrHMD.getRecommendedEyeFieldOfView('left');

var leftTrans = vrHMD.getEyeTranslation('left');
                
if( canvas.webkitRequestFullscreen ) {
    canvas.webkitRequestFullscreen({
        vrDisplay: hmdDevice });

} else if( container.mozRequestFullScreen ) {
    container.mozRequestFullScreen({
        vrDisplay: hmdDevice });
}

Add some Three.js and a dinosaur...

Oculus Rift TRex!

Thanks to DK and eyeon Software for lending me the content.

bit.ly/oculus-example

Code example from Google

Google Cardboard

Google Cardboard

Coding for Cardboard

  • No WebVR support yet
  • But we can do without it for now...
var effect = new THREE.StereoEffect( renderer );
...
effect.render( scene, camera );



                
var controls = new THREE.DeviceOrientationControls(
        camera, true);

controls.connect();
...
controls.update();
                

Cardboard TRex! (Minus Cardboard)

Thanks again to DK for lending the dinosaur.

bit.ly/cardboard-example

Code example from Google

Just a taster

TRex close-up

Today:

Tomorrow:

Let's start hacking.

Thank you.