107
geildanke.com @fischaelameer An Introduction to WebVR How to make your user sick in 60 seconds. or

An Introduction to WebVR – or How to make your user sick in 60 seconds

Embed Size (px)

Citation preview

Page 1: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

An Introduction to WebVRHow to make your user sick in 60 seconds.

or

Page 2: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

You should care about WebVR.

Page 3: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Hardware & Concepts

Page 4: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Hardware & Concepts WebVR API

Page 5: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Hardware & Concepts WebVR API UX Design & VR

Page 6: An Introduction to WebVR – or How to make your user sick in 60 seconds

@fischaelameergeildanke.com

Virtual Reality is tricking our eyes and brain to think of a 2D image to be in 3D.

Page 7: An Introduction to WebVR – or How to make your user sick in 60 seconds

@fischaelameergeildanke.com

Virtual Reality changes the way we relate to technology.

Page 8: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Mobile VR Desktop VR Standalone VR

Google Cardboard Samsung Gear VR Google Daydream View

Page 9: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Mobile VR Desktop VR Standalone VR

Oculus Rift HTC Vive Playstation VR

Page 10: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Mobile VR Desktop VR Standalone VR

https://en.wikipedia.org/wiki/Virtual_Boy

Page 11: An Introduction to WebVR – or How to make your user sick in 60 seconds

@fischaelameergeildanke.com

Virtual Reality Concepts

Page 12: An Introduction to WebVR – or How to make your user sick in 60 seconds

@fischaelameergeildanke.com

Stereoscopic Images

Page 13: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 14: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 15: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 16: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

IPD = Interpupillary distance

Page 17: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 18: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 19: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 20: An Introduction to WebVR – or How to make your user sick in 60 seconds

@fischaelameergeildanke.com

Tracking

Page 21: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 22: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Rotation

Page 23: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Rotation

Position

Page 24: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 25: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Rotation

Position

Page 26: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Browser

https://github.com/mrdoob/three.js

Page 27: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Browser

WebGL

https://github.com/mrdoob/three.js

Page 28: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Browser

WebVRWebGL

https://github.com/mrdoob/three.js

Page 29: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Browser

WebVRWebGL

https://github.com/mrdoob/three.js

three.js

Ricardo Cabello

Page 30: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 31: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 32: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 33: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 34: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

x: 0, y: 1.6, z: 0

Page 35: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

x: 0, y: 1.6, z: 0

Page 36: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 37: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

let scene = new THREE.Scene();let camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 10000 );let renderer = new THREE.WebGLRenderer();

renderer.setSize( window.innerWidth, window.innerHeight );document.body.appendChild( renderer.domElement );

let geometry = new THREE.SphereGeometry( 500, 60, 40 );geometry.scale( -1, 1, 1 );

let video = document.createElement( 'video' );let videoTexture = new THREE.VideoTexture( video );let videoMaterial = new THREE.MeshBasicMaterial( { map: videoTexture } );let mesh = new THREE.Mesh( geometry, videoMaterial );

function render() {requestAnimationFrame( render );renderer.render( scene, camera );

}

render();

Page 38: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

let scene = new THREE.Scene();let camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 10000 );let renderer = new THREE.WebGLRenderer();

renderer.setSize( window.innerWidth, window.innerHeight );document.body.appendChild( renderer.domElement );

let geometry = new THREE.SphereGeometry( 500, 60, 40 );geometry.scale( -1, 1, 1 );

let video = document.createElement( 'video' );let videoTexture = new THREE.VideoTexture( video );let videoMaterial = new THREE.MeshBasicMaterial( { map: videoTexture } );let mesh = new THREE.Mesh( geometry, videoMaterial );

function render() {requestAnimationFrame( render );renderer.render( scene, camera );

}

render();

Page 39: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

let scene = new THREE.Scene();let camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 10000 );let renderer = new THREE.WebGLRenderer();

renderer.setSize( window.innerWidth, window.innerHeight );document.body.appendChild( renderer.domElement );

let geometry = new THREE.SphereGeometry( 500, 60, 40 );geometry.scale( -1, 1, 1 );

let video = document.createElement( 'video' );let videoTexture = new THREE.VideoTexture( video );let videoMaterial = new THREE.MeshBasicMaterial( { map: videoTexture } );let mesh = new THREE.Mesh( geometry, videoMaterial );

function render() {requestAnimationFrame( render );renderer.render( scene, camera );

}

render();

Page 40: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

let scene = new THREE.Scene();let camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 10000 );let renderer = new THREE.WebGLRenderer();

renderer.setSize( window.innerWidth, window.innerHeight );document.body.appendChild( renderer.domElement );

let geometry = new THREE.SphereGeometry( 500, 60, 40 );geometry.scale( -1, 1, 1 );

let video = document.createElement( 'video' );let videoTexture = new THREE.VideoTexture( video );let videoMaterial = new THREE.MeshBasicMaterial( { map: videoTexture } );let mesh = new THREE.Mesh( geometry, videoMaterial );

function render() {requestAnimationFrame( render );renderer.render( scene, camera );

}

render();

Page 41: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

let vrDisplay;

navigator.getVRDisplays().then( function( displays ) { if ( displays.length > 0 ) { vrDisplay = displays[ 0 ]; } else { console.log( 'No VR Displays found.' ); }});

Page 42: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

VRDisplay.isConnectedVRDisplay.isPresenting

VRDisplay.getEyeParameters()VRDisplay.getPose()VRDisplay.requestPresent()VRDisplay.submitFrame()VRDisplay.requestAnimationFrame()

Page 43: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

vrDisplay.requestPresent( [ { source: myCanvas } ] );

Page 44: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

myButton.addEventListener( 'click', function() { vrDisplay.requestPresent( [ { source: myCanvas } ] );});

Page 45: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

myButton.addEventListener( 'click', function() { vrDisplay.requestPresent( [ { source: myCanvas } ] ) .then( function() { vrDisplay.requestAnimationFrame( render ); });});

Page 46: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

function render() { vrDisplay.requestAnimationFrame( render );

}

Page 47: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

function render() { vrDisplay.requestAnimationFrame( render );

// update display pose // update scene and meshes

}

Page 48: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

let pose = vrDisplay.getPose();

console.log( pose.orientation );// [ 0, 0, 0, 1 ]// [ -0.0000724312, -0.06752134, 0.0028374712, 0.9977243 ]console.log( pose.position );// null// [ 0.05234, -0.043485, 0.0003243 ]

Page 49: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

let leftEyeParameters = vrDisplay.getEyeParameters( 'left' );

console.log( leftEyeParameters.offset );// [ -0.03, 0, 0 ]console.log( leftEyeParameters.renderWidth );// 640.5console.log( leftEyeParameters.renderHeight );// 721

Page 50: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

function render() { vrDisplay.requestAnimationFrame( render );

// update display pose // update scene and meshes

vrDisplay.submitFrame( pose );}

Page 51: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 52: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 53: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

https://iswebvrready.org/

Page 54: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Browser

WebVRWebGL

three.js

Page 55: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Browser

WebVRWebGL

three.js WebVR Polyfill

https://github.com/googlevr/webvr-polyfill

Page 56: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Browser

WebVRWebGL

three.js

three.js VRControls three.js VREffect

WebVR Polyfill

Ricardo Cabello

https://github.com/mrdoob/three.js

Page 57: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Browser

WebVRWebGL

three.js

three.js VRControls three.js VREffect

WebVR Manager

WebVR Polyfill

Boris Smus

https://github.com/borismus/webvr-boilerplate

Page 58: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

WebGL & static image fallbacks

Page 59: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

WebGL

Touch & Gyroscope Input

Page 60: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Mobile and Desktop VR Devices

Page 61: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Mobile and Desktop VR Devices

Progressive Loading

Page 62: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Browser

WebVRWebGL

three.js

three.js VRControls three.js VREffect

WebVR Polyfill

WebVR Manager

Page 63: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Browser

WebVRGamepad WebGL

three.js

three.js VRControls three.js VREffect

WebVR Polyfill

WebVR Manager

Page 64: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Browser

WebVRGamepad Web AudioWebGL

three.js

three.js VRControls three.js VREffect

WebVR Polyfill

WebVR Manager

Page 65: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Browser

WebVRGamepad Web Audio Web SpeechWebGL

three.js

three.js VRControls three.js VREffect

WebVR Polyfill

WebVR Manager

Page 66: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 67: An Introduction to WebVR – or How to make your user sick in 60 seconds

@fischaelameergeildanke.com

UX Design for VR

Page 68: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Comfort

Interpretability

Usefulness

Delight

Beau Cronin

https://medium.com/@beaucronin/the-hierarchy-of-needs-in-virtual-reality-development-4333a4833acc

Page 69: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Presence

Comfort

Interpretability

Usefulness

Delight

Beau Cronin

https://medium.com/@beaucronin/the-hierarchy-of-needs-in-virtual-reality-development-4333a4833acc

Page 70: An Introduction to WebVR – or How to make your user sick in 60 seconds

@fischaelameergeildanke.com

Ergonomics

Page 71: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

It was the pioneer days; people had to make their own interrogation rooms. Out of cornmeal. These endless days are finally ending in a blaze. When I say, 'I love you,' it's not because I want you or because I can't have you. It's my estimation that every man ever got a statue made of him was one kind of sommbitch or another. Oh my god you will never believe what happened at school today. From beneath you, it devours. I am never gonna see a merman, ever.It was supposed to confuse him, but it just made him peppy. It was like the Heimlich, with stripes! How did your brain even learn human speech? I'm just so curious.Apocalypse, we've all been there; the same old trips, why should we care? Frankly, it's ludicrous to have these interlocking bodies and not...interlock. I just don't see why everyone's always picking on Marie-Antoinette. You're the one freaky thing in my freaky world that still makes sense to me. You are talking crazy-person talk.

http://www.commercekitchen.com/whedon-ipsum/

Page 72: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 73: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 74: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 75: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 76: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

70°

Page 77: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

130°

Comfortably bending 30° to each side

Page 78: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

230°

Stretching 80° to each side

https://www.youtube.com/watch?v=00vzW2-PvvE

Page 79: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

0.5m

20m

https://www.youtube.com/watch?v=00vzW2-PvvE

Page 80: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

~20px

~10ppd

< 20px

60ppd

Page 81: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

avoid eyestrain: use darker colors

avoid focussing on different depths

do not trigger phobias

use correct scales

do not move things fast towards the camera

do not attach things near the camera

make the user comfortable

Page 82: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

avoid eyestrain: use darker colors

avoid focussing on different depths

do not trigger phobias

use correct scales

do not move things fast towards the camera

do not attach things near the camera

make the user comfortable

Page 83: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

avoid eyestrain: use darker colors

avoid focussing on different depths

do not trigger phobias

use correct scales

do not move things fast towards the camera

do not attach things near the camera

make the user comfortable

Page 84: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

avoid eyestrain: use darker colors

avoid focussing on different depths

do not trigger phobias

use correct scales

do not move things fast towards the camera

do not attach things near the camera

make the user comfortable

Page 85: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

avoid eyestrain: use darker colors

avoid focussing on different depths

do not trigger phobias

use correct scales

do not move things fast towards the camera

do not attach things near the camera

make the user comfortable

Page 86: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

avoid eyestrain: use darker colors

avoid focussing on different depths

do not trigger phobias

use correct scales

do not move things fast towards the camera

do not attach things near the camera

make the user comfortable

Page 87: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameerIcon made by Freepik from www.flaticon.com

Page 88: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameerIcon made by Freepik from www.flaticon.com

Page 89: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 90: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 91: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

no acceleration

do not move the horizon or the camera

always keep a low latency and a high frame rate

avoid flicker and blur

add a stable focus point

support short usage

abstract design is better than realistic

do not make your users sick!

Page 92: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

no acceleration

do not move the horizon or the camera

always keep a low latency and a high frame rate

avoid flicker and blur

add a stable focus point

support short usage

abstract design is better than realistic

do not make your users sick!

Page 93: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

no acceleration

do not move the horizon or the camera

always keep a low latency and a high frame rate

avoid flicker and blur

add a stable focus point

support short usage

abstract design is better than realistic

do not make your users sick!

Page 94: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

no acceleration

do not move the horizon or the camera

always keep a low latency and a high frame rate

avoid flicker and blur

add a stable focus point

support short usage

abstract design is better than realistic

do not make your users sick!

Page 95: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

no acceleration

do not move the horizon or the camera

always keep a low latency and a high frame rate

avoid flicker and blur

add a stable focus point

support short usage

abstract design is better than realistic

do not make your users sick!

Page 96: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

no acceleration

do not move the horizon or the camera

always keep a low latency and a high frame rate

avoid flicker and blur

add a stable focus point

support short usage

abstract design is better than realistic

do not make your users sick!

Page 97: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

no acceleration

do not move the horizon or the camera

always keep a low latency and a high frame rate

avoid flicker and blur

add a stable focus point

support short usage

abstract design is better than realistic

do not make your users sick!

Page 98: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

It was the pioneer days; people had to make their own interrogation rooms. Out of cornmeal. These endless days are finally ending in a blaze. When I say, 'I love you,' it's not because I want you or because I can't have you. It's my estimation that every man ever got a statue made of him was one kind of sommbitch or another. Oh my god you will never believe what happened at school today. From beneath you, it devours. I am never gonna see a merman, ever.It was supposed to confuse him, but it just made him peppy. It was like the Heimlich, with stripes! How did your brain even learn human speech? I'm just so curious.Apocalypse, we've all been there; the same old trips, why should we care? Frankly, it's ludicrous to have these interlocking bodies and not...interlock. I just don't see why everyone's always picking on Marie-Antoinette. You're the one freaky thing in my freaky world that still makes sense to me. You are talking crazy-person talk.

http://www.commercekitchen.com/whedon-ipsum/

Page 99: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

It was the pioneer days; people had to make their own interrogation rooms. Out of cornmeal. These endless days are finally ending in a blaze. When I say, 'I love you,' it's not because I want you or because I can't have you. It's my estimation that every man ever got a statue made of him was one kind of sommbitch or another. Oh my god you will never believe what happened at school today. From beneath you, it devours. I am never gonna see a merman, ever.It was supposed to confuse him, but it just made him peppy. It was like the Heimlich, with stripes! How did your brain even learn human speech? I'm just so curious.Apocalypse, we've all been there; the same old trips, why should we care? Frankly, it's ludicrous to have these interlocking bodies and not...interlock. I just don't see why everyone's always picking on Marie-Antoinette. You're the one freaky thing in my freaky world that still makes sense to me. You are talking crazy-person talk.

http://www.commercekitchen.com/whedon-ipsum/

Page 100: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 101: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Page 102: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Goodbye, UX metaphors!

Page 103: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

Goodbye, UX metaphors!

Page 104: An Introduction to WebVR – or How to make your user sick in 60 seconds

@fischaelameergeildanke.com

The Future of WebVR

Page 105: An Introduction to WebVR – or How to make your user sick in 60 seconds

@fischaelameergeildanke.com

You are responsible for the well-being of your users!

Page 106: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

https://twitter.com/Tojiro

https://twitter.com/joshcarpenter

https://twitter.com/borismus

https://twitter.com/thealphamike

Amazing people to follow

https://webvr-slack.herokuapp.com/

https://www.reddit.com/r/WebVR/

Community

http://www.uxofvr.com/

https://mozvr.com/

https://iswebvrready.org/

General information

https://github.com/clayallsopp/react-vr

https://w3c.github.io/webvr/

https://aframe.io/

https://github.com/borismus/webvr-boilerplate

https://github.com/googlevr/webvr-polyfill

https://threejs.org/

API, frameworks, libraries https://twitter.com/Lady_Ada_King

https://twitter.com/arturitu

https://twitter.com/snickersnax

Page 107: An Introduction to WebVR – or How to make your user sick in 60 seconds

geildanke.com @fischaelameer

https://geildanke.com/en/vr

Thank you!

@fischaelameer