Peter O'Shaughnessy | @poshaughnessy
It’s only in the past couple years that it has become possible to make a VR device that is low-cost and high-performance
- Palmer Luckey
Virtual reality was once the dream of science fiction. But the internet was also once a dream, and so were computers and smartphones.
- Mark Zuckerberg
I've made a lot of desktop & mobile applications & nothing I ever created was ever going to make someone laugh, cry, recoil, scream or have that reaction that VR lets you have.
- Josh Carpenter
When you think about Neuromancer & Snow Crash
[and their] interconnected seamless worlds... it's pretty much the web that they're describing. It's the open web.
- Josh Carpenter
if( navigator.getVRDevices ) {
navigator.getVRDevices().then( onVRDevices );
}
function onVRDevices( vrDevices ) {
for( var i=0; i < vrDevices.length; i++ ) {
if( instance of HMDVRDevice ) {
vrHMD = vrDevices[i];
// These will be applied to 'camera' in scene
leftTrans = vrHMD.getEyeTranslation('left');
leftFOV = vrHMD.getRecommendedEyeFieldOfView(
'left');
...
}
}
}
if( canvas.webkitRequestFullscreen ) {
canvas.webkitRequestFullscreen({vrDisplay: vrHMD});
} else if( container.mozRequestFullScreen ) {
container.mozRequestFullScreen({vrDisplay: vrHMD});
}
var vrEffect = new THREE.VREffect(renderer);
vrEffect.render(scene, camera);
...
vrEffect.setFullScreen(true);
function onVRDevices( vrDevices ) {
for( var i=0; i < vrDevices.length; i++ ) {
if( instance of PositionSensorVRDevice ) {
vrInput = device;
return;
}
}
}
function update() {
var state = vrInput.getState();
if ( state.orientation !== null ) {
// Apply orientation to 'cameras'
}
if ( state.position !== null ) {
// Apply position to 'cameras'
}
}
var vrControls = new THREE.VRControls(camera);
...
vrControls.update();
Being worked on - not in latest browser build!
var effect = new THREE.StereoEffect( renderer );
...
effect.render( scene, camera );
var controls = new THREE.DeviceOrientationControls(
camera, true);
controls.connect();
...
controls.update();
Leap.loop(function(frame){
console.log( frame.hands );
});
Leap.loopController.use('boneHand', {
scene: scene,
arm: true // Display the arm
});
I'll share the slides with the links afterwards!