SlideShare a Scribd company logo
1 of 16
Download to read offline
WebVR: Building for the
Immersive Web

Tony Parisi
Head of VR/AR, Unity Technologies
About me
Co-creator, VRML, X3D, glTF
Head of VR/AR, Unity
tonyp@unity3d.com
Advisory
http://www.uploadvr.com
http://www.highfidelity.io
http://www.shiift.world/
Groups
http://www.meetup.com/WebGL-Developers-Meetup/
http://www.meetup.com/Web-VR/
Sites
www.tonyparisi.com
www.dopaminevr.com
Learning Virtual Reality
Programming 3D Applications with HTML and WebGL
WebGL: Up and Running
http://www.amazon.com/-/e/B008UZ888I
The Next Computing Platform
Billions invested
$14B to $120B market by 2020
A few million units have shipped
The industry is anticipating scaling
to billions within five years
Q: How do we reach a billion headsets?
A: Not one app at a time.
“If you haven’t heard of WebVR yet, it’s time to take notice.”
-- VentureBeat, September 2016
Frictionless access
Frictionless discovery
Connected applications
Integrate the world’s data
The Next Wave: WebVR
The Web Goes 3D!
How it Works
Render 3D scene in
WebGL - rendering standard
runs on all browsers
3B computers and devices!
Use new browser APIs to
track HMD pose
Experimental API - need
development version of
browsers
Browser API extensions for
6DOF input controllers
Browser Devices V1.0 API Available Date
Firefox (Nightly) Oculus Rift, HTC Vive, OSVR Spring 2016
Chromium (Development) Oculus Rift, HTC Vive, OSVR Spring 2016
Samsung Internet Samsung Gear VR-capable phones Spring 2016
Mobile Chromium (Beta) Daydream-capable phones Late 2016
Oculus “Carmel” Samsung Gear VR-capable phones Late 2016
Microsoft Edge Hololens? unannounced
Supported Browsers and Devices
1. Querying for VR displays
2. Presenting content to the VR display
3. Refreshing the VR display
4. Head tracking
A Tour of the WebVR API
Querying for VR Displays
myVRApp.prototype.queryVRDisplays = function() {
if (navigator.getVRDisplays) {
navigator.getVRDisplays().then(function (displays) {
if (displays.length > 0) {
vrDisplay = displays[0];
// perform initialization using vrDisplay
} else {
console.log(
"WebVR supported, but no VRDisplays found.");
}
});
} else if (navigator.getVRDevices) {
console.log(
"WebVR supported, but not the latest version.");
} else {
console.log("Your browser does not support WebVR.");
}
}
displays returned in
promise callback
Presenting Content to the VR Display
myVRApp.prototype.present = function(on) {
if (on) {
vrDisplay.requestPresent( [{ source: canvas }] );
}
else {
vrDisplay.exitPresent();
}
}
// Set up VR button handling
var enterVRButton = document.querySelector( '.enterVR' );
enterVRButton.onclick = function() {
app.present(true);
};
begin/end
presentation mode
user interaction
required to start
Refreshing the VR Display
function onAnimationFrame (t) {
// request another animation frame for next time through
vrDisplay.requestAnimationFrame(onAnimationFrame);
// do the work: this is where the application
// gets the latest HMD position/orientation,
// updates the scene objects and animations,
// and renders using WebGL;
// ... code omitted ...
// finally, submit the frame
vrDisplay.submitFrame();
}
// start up the run loop
vrDisplay.requestAnimationFrame(onAnimationFrame);
copy the bits
from the canvas
set up
callback to
refresh
display (90hz!)
Head Tracking
function onAnimationFrame (t) {
// request another animation frame for next time through
vrDisplay.requestAnimationFrame(onAnimationFrame);
// do the work: this is where the application
// gets the latest HMD position/orientation:
var pose = vrDisplay.getPose();
// now we update scene objects and animations,
// based on the pose value, time and other inputs;
// and render using WebGL;
// ... code omitted ...
// finally, submit the frame
vrDisplay.submitFrame(pose);
}
// start up the run loop
vrDisplay.requestAnimationFrame(onAnimationFrame);
get HMD
position/orientation
The WebVR Ecosystem
Frameworks
JavaScript libraries: Three.js, Babylon.js
Markup systems: GLAM, SceneVR, A-Frame, ReactVR
WebVR Polyfill
<glam>
<scene>
<cube id="photocube”></cube>
</scene>
</glam>
#photocube {
image:url(../images/photo.png);
}
Formats
The “JPEG of 3D”
Tools
Unity, Unreal export
Browser-based VR creation
Responsive WebVR
WebVR Polyfill:
emulate API for existing
mobile browsers
for Cardboard VR
Big challenges
in designing for
desktop x mobile
x 2D x 3D
Developer builds of Chrome, Firefox (desktop and mobile)
Samsung Internet browser for Gear VR
Oculus “Carmel” for Gear VR
Coming soon to Daydream VR
Coming soon for Microsoft Edge
WebVR 1.0 API - preliminary spec
http://mozvr.github.io/webvr-spec/
W3C Community Group
https://www.w3.org/community/webvr/
Slack Channel
https://webvr.slack.com/
Examples
https://webvr.info/samples/
Development Status
https://webvr.info/
WebVR: Building for the
Immersive Web

Tony Parisi
Head of VR/AR, Unity Technologies

More Related Content

What's hot

WebGL Crash Course
WebGL Crash CourseWebGL Crash Course
WebGL Crash Course
Tony Parisi
 
Virtual Reality - Usability Testing
Virtual Reality - Usability TestingVirtual Reality - Usability Testing
Virtual Reality - Usability Testing
Aziz Khilawala
 

What's hot (14)

Foundations of the Immersive Web
Foundations of the Immersive WebFoundations of the Immersive Web
Foundations of the Immersive Web
 
WebGL, WebVR and the Metaverse
WebGL, WebVR and the MetaverseWebGL, WebVR and the Metaverse
WebGL, WebVR and the Metaverse
 
WebGL, HTML5 and How the Mobile Web Was Won
WebGL, HTML5 and How the Mobile Web Was WonWebGL, HTML5 and How the Mobile Web Was Won
WebGL, HTML5 and How the Mobile Web Was Won
 
WebVR Ecosystem and API Update
WebVR Ecosystem and API UpdateWebVR Ecosystem and API Update
WebVR Ecosystem and API Update
 
Powering the VR/AR Ecosystem 2017-01-17
Powering the VR/AR Ecosystem 2017-01-17Powering the VR/AR Ecosystem 2017-01-17
Powering the VR/AR Ecosystem 2017-01-17
 
WebGL Crash Course
WebGL Crash CourseWebGL Crash Course
WebGL Crash Course
 
Realidade virtual na prática com Gear VR e Cardboard
Realidade virtual na prática com Gear VR e CardboardRealidade virtual na prática com Gear VR e Cardboard
Realidade virtual na prática com Gear VR e Cardboard
 
製作 Unity Plugin for Android
製作 Unity Plugin for Android製作 Unity Plugin for Android
製作 Unity Plugin for Android
 
And Who Shall Control the Metaverse?
And Who Shall Control the Metaverse?And Who Shall Control the Metaverse?
And Who Shall Control the Metaverse?
 
theFactor.e 3D
theFactor.e 3DtheFactor.e 3D
theFactor.e 3D
 
FiiPractic 2015 - Adroid Pro - Day 1 - UI Day
FiiPractic 2015 - Adroid Pro - Day 1 - UI DayFiiPractic 2015 - Adroid Pro - Day 1 - UI Day
FiiPractic 2015 - Adroid Pro - Day 1 - UI Day
 
Usability Testing for Virtual Reality
Usability Testing for Virtual RealityUsability Testing for Virtual Reality
Usability Testing for Virtual Reality
 
Virtual Reality - Usability Testing
Virtual Reality - Usability TestingVirtual Reality - Usability Testing
Virtual Reality - Usability Testing
 
GWT widget development
GWT widget developmentGWT widget development
GWT widget development
 

Viewers also liked

Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!
Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!
Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!
FITC
 
FOSSGIS 2014 : Geospatial 3D Web (GER)
FOSSGIS 2014 : Geospatial 3D Web (GER)FOSSGIS 2014 : Geospatial 3D Web (GER)
FOSSGIS 2014 : Geospatial 3D Web (GER)
Camptocamp
 

Viewers also liked (16)

WebVR - MobileTechCon Berlin 2016
WebVR - MobileTechCon Berlin 2016WebVR - MobileTechCon Berlin 2016
WebVR - MobileTechCon Berlin 2016
 
An Introduction to WebVR – or How to make your user sick in 60 seconds
An Introduction to WebVR – or How to make your user sick in 60 secondsAn Introduction to WebVR – or How to make your user sick in 60 seconds
An Introduction to WebVR – or How to make your user sick in 60 seconds
 
A-Frame: VR for Web Developers
A-Frame: VR for Web DevelopersA-Frame: VR for Web Developers
A-Frame: VR for Web Developers
 
Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!
Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!
Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!
 
Build the Virtual Reality Web with A-Frame
Build the Virtual Reality Web with A-FrameBuild the Virtual Reality Web with A-Frame
Build the Virtual Reality Web with A-Frame
 
Introduction to WebGL and WebVR
Introduction to WebGL and WebVRIntroduction to WebGL and WebVR
Introduction to WebGL and WebVR
 
The next frontier: WebGL and WebVR
The next frontier: WebGL and WebVRThe next frontier: WebGL and WebVR
The next frontier: WebGL and WebVR
 
WebVR
WebVRWebVR
WebVR
 
Developing Web Graphics with WebGL
Developing Web Graphics with WebGLDeveloping Web Graphics with WebGL
Developing Web Graphics with WebGL
 
The Coming Distribution War
The Coming Distribution WarThe Coming Distribution War
The Coming Distribution War
 
Vrml, or There and Back Again
Vrml, or There and Back AgainVrml, or There and Back Again
Vrml, or There and Back Again
 
VR Without Borders RIVER WebVR April 2015
VR Without Borders RIVER WebVR April 2015VR Without Borders RIVER WebVR April 2015
VR Without Borders RIVER WebVR April 2015
 
FOSSGIS 2014 : Geospatial 3D Web (GER)
FOSSGIS 2014 : Geospatial 3D Web (GER)FOSSGIS 2014 : Geospatial 3D Web (GER)
FOSSGIS 2014 : Geospatial 3D Web (GER)
 
FOSS4G Europe 2015: OL3-Cesium (3D for OpenLayers)
FOSS4G Europe 2015: OL3-Cesium (3D for OpenLayers)FOSS4G Europe 2015: OL3-Cesium (3D for OpenLayers)
FOSS4G Europe 2015: OL3-Cesium (3D for OpenLayers)
 
The Long Game: It’s Not Prime Time for VR… Yet | Clive Downie
The Long Game: It’s Not Prime Time for VR… Yet | Clive DownieThe Long Game: It’s Not Prime Time for VR… Yet | Clive Downie
The Long Game: It’s Not Prime Time for VR… Yet | Clive Downie
 
AR Gamers – The Next Generation | Mark Shovman
AR Gamers – The Next Generation | Mark ShovmanAR Gamers – The Next Generation | Mark Shovman
AR Gamers – The Next Generation | Mark Shovman
 

Similar to WebVR: Developing for the Immersive Web

Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto me...
Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto me...Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto me...
Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto me...
Frédéric Harper
 

Similar to WebVR: Developing for the Immersive Web (20)

Browser-Based Virtual Reality April 2015
Browser-Based Virtual Reality April 2015Browser-Based Virtual Reality April 2015
Browser-Based Virtual Reality April 2015
 
Up And Running With Web VR Fall 2014
Up And Running With Web VR Fall 2014Up And Running With Web VR Fall 2014
Up And Running With Web VR Fall 2014
 
WebVR - JAX 2016
WebVR -  JAX 2016WebVR -  JAX 2016
WebVR - JAX 2016
 
Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto me...
Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto me...Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto me...
Firefox OS, a startup opportunity - Mobile Startups Toronto & HTML Toronto me...
 
What Web Developers Need to Know to Develop Windows 8 Apps
What Web Developers Need to Know to Develop Windows 8 AppsWhat Web Developers Need to Know to Develop Windows 8 Apps
What Web Developers Need to Know to Develop Windows 8 Apps
 
Migrating your Web app to Virtual Reality
Migrating your Web app to Virtual RealityMigrating your Web app to Virtual Reality
Migrating your Web app to Virtual Reality
 
Quick dive into WebVR
Quick dive into WebVRQuick dive into WebVR
Quick dive into WebVR
 
Drones, Flying robots and Javascript
Drones, Flying robots and JavascriptDrones, Flying robots and Javascript
Drones, Flying robots and Javascript
 
Портируем существующее Web-приложение в виртуальную реальность / Денис Радин ...
Портируем существующее Web-приложение в виртуальную реальность / Денис Радин ...Портируем существующее Web-приложение в виртуальную реальность / Денис Радин ...
Портируем существующее Web-приложение в виртуальную реальность / Денис Радин ...
 
Building AR and VR Experiences for Web Apps with JavaScript
Building AR and VR Experiences for Web Apps with JavaScriptBuilding AR and VR Experiences for Web Apps with JavaScript
Building AR and VR Experiences for Web Apps with JavaScript
 
Augmented reality in web rtc browser
Augmented reality in web rtc browserAugmented reality in web rtc browser
Augmented reality in web rtc browser
 
The Powerful VR WEB Is Here
The Powerful VR WEB Is HereThe Powerful VR WEB Is Here
The Powerful VR WEB Is Here
 
Experimenting with HoloLens for E-Commerce
Experimenting with HoloLens for E-CommerceExperimenting with HoloLens for E-Commerce
Experimenting with HoloLens for E-Commerce
 
Firefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-webFirefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-web
 
FLAR Workflow
FLAR WorkflowFLAR Workflow
FLAR Workflow
 
Vaadin 7 CN
Vaadin 7 CNVaadin 7 CN
Vaadin 7 CN
 
Augment your reality with ARCore !
Augment your reality with ARCore !Augment your reality with ARCore !
Augment your reality with ARCore !
 
Developing AIR for Android with Flash Professional
Developing AIR for Android with Flash ProfessionalDeveloping AIR for Android with Flash Professional
Developing AIR for Android with Flash Professional
 
Pushing the Web: Interesting things to Know
Pushing the Web: Interesting things to KnowPushing the Web: Interesting things to Know
Pushing the Web: Interesting things to Know
 
Introduction to html5
Introduction to html5Introduction to html5
Introduction to html5
 

More from Tony Parisi

More from Tony Parisi (11)

The New Fine Arts
The New Fine ArtsThe New Fine Arts
The New Fine Arts
 
Face the Future: Computing in an Augmented World
Face the Future: Computing in an Augmented WorldFace the Future: Computing in an Augmented World
Face the Future: Computing in an Augmented World
 
glTF and the WebGL Art Pipeline March 2015
glTF and the WebGL Art Pipeline March 2015glTF and the WebGL Art Pipeline March 2015
glTF and the WebGL Art Pipeline March 2015
 
The Web Eats Everything In Its Path Fall 2014
The Web Eats Everything In Its Path Fall 2014The Web Eats Everything In Its Path Fall 2014
The Web Eats Everything In Its Path Fall 2014
 
WebGL Primetime!
WebGL Primetime!WebGL Primetime!
WebGL Primetime!
 
Virtually Anywhere
Virtually AnywhereVirtually Anywhere
Virtually Anywhere
 
The Browser As Console - HTML5 and WebGL for Game Development
The Browser As Console - HTML5 and WebGL for Game DevelopmentThe Browser As Console - HTML5 and WebGL for Game Development
The Browser As Console - HTML5 and WebGL for Game Development
 
WebGL - It's GO Time
WebGL - It's GO TimeWebGL - It's GO Time
WebGL - It's GO Time
 
glTF Update with Tony Parisi WebGL Meetup August 2013
glTF Update with Tony Parisi WebGL Meetup August 2013glTF Update with Tony Parisi WebGL Meetup August 2013
glTF Update with Tony Parisi WebGL Meetup August 2013
 
Building Rich Internet Applications with HTML5 and WebGL
Building Rich Internet Applications with HTML5 and WebGLBuilding Rich Internet Applications with HTML5 and WebGL
Building Rich Internet Applications with HTML5 and WebGL
 
Artists Only
Artists OnlyArtists Only
Artists Only
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

WebVR: Developing for the Immersive Web

  • 1. WebVR: Building for the Immersive Web
 Tony Parisi Head of VR/AR, Unity Technologies
  • 2. About me Co-creator, VRML, X3D, glTF Head of VR/AR, Unity tonyp@unity3d.com Advisory http://www.uploadvr.com http://www.highfidelity.io http://www.shiift.world/ Groups http://www.meetup.com/WebGL-Developers-Meetup/ http://www.meetup.com/Web-VR/ Sites www.tonyparisi.com www.dopaminevr.com Learning Virtual Reality Programming 3D Applications with HTML and WebGL WebGL: Up and Running http://www.amazon.com/-/e/B008UZ888I
  • 3. The Next Computing Platform Billions invested $14B to $120B market by 2020 A few million units have shipped The industry is anticipating scaling to billions within five years Q: How do we reach a billion headsets? A: Not one app at a time.
  • 4. “If you haven’t heard of WebVR yet, it’s time to take notice.” -- VentureBeat, September 2016 Frictionless access Frictionless discovery Connected applications Integrate the world’s data The Next Wave: WebVR
  • 6. How it Works Render 3D scene in WebGL - rendering standard runs on all browsers 3B computers and devices! Use new browser APIs to track HMD pose Experimental API - need development version of browsers Browser API extensions for 6DOF input controllers
  • 7. Browser Devices V1.0 API Available Date Firefox (Nightly) Oculus Rift, HTC Vive, OSVR Spring 2016 Chromium (Development) Oculus Rift, HTC Vive, OSVR Spring 2016 Samsung Internet Samsung Gear VR-capable phones Spring 2016 Mobile Chromium (Beta) Daydream-capable phones Late 2016 Oculus “Carmel” Samsung Gear VR-capable phones Late 2016 Microsoft Edge Hololens? unannounced Supported Browsers and Devices
  • 8. 1. Querying for VR displays 2. Presenting content to the VR display 3. Refreshing the VR display 4. Head tracking A Tour of the WebVR API
  • 9. Querying for VR Displays myVRApp.prototype.queryVRDisplays = function() { if (navigator.getVRDisplays) { navigator.getVRDisplays().then(function (displays) { if (displays.length > 0) { vrDisplay = displays[0]; // perform initialization using vrDisplay } else { console.log( "WebVR supported, but no VRDisplays found."); } }); } else if (navigator.getVRDevices) { console.log( "WebVR supported, but not the latest version."); } else { console.log("Your browser does not support WebVR."); } } displays returned in promise callback
  • 10. Presenting Content to the VR Display myVRApp.prototype.present = function(on) { if (on) { vrDisplay.requestPresent( [{ source: canvas }] ); } else { vrDisplay.exitPresent(); } } // Set up VR button handling var enterVRButton = document.querySelector( '.enterVR' ); enterVRButton.onclick = function() { app.present(true); }; begin/end presentation mode user interaction required to start
  • 11. Refreshing the VR Display function onAnimationFrame (t) { // request another animation frame for next time through vrDisplay.requestAnimationFrame(onAnimationFrame); // do the work: this is where the application // gets the latest HMD position/orientation, // updates the scene objects and animations, // and renders using WebGL; // ... code omitted ... // finally, submit the frame vrDisplay.submitFrame(); } // start up the run loop vrDisplay.requestAnimationFrame(onAnimationFrame); copy the bits from the canvas set up callback to refresh display (90hz!)
  • 12. Head Tracking function onAnimationFrame (t) { // request another animation frame for next time through vrDisplay.requestAnimationFrame(onAnimationFrame); // do the work: this is where the application // gets the latest HMD position/orientation: var pose = vrDisplay.getPose(); // now we update scene objects and animations, // based on the pose value, time and other inputs; // and render using WebGL; // ... code omitted ... // finally, submit the frame vrDisplay.submitFrame(pose); } // start up the run loop vrDisplay.requestAnimationFrame(onAnimationFrame); get HMD position/orientation
  • 13. The WebVR Ecosystem Frameworks JavaScript libraries: Three.js, Babylon.js Markup systems: GLAM, SceneVR, A-Frame, ReactVR WebVR Polyfill <glam> <scene> <cube id="photocube”></cube> </scene> </glam> #photocube { image:url(../images/photo.png); } Formats The “JPEG of 3D” Tools Unity, Unreal export Browser-based VR creation
  • 14. Responsive WebVR WebVR Polyfill: emulate API for existing mobile browsers for Cardboard VR Big challenges in designing for desktop x mobile x 2D x 3D
  • 15. Developer builds of Chrome, Firefox (desktop and mobile) Samsung Internet browser for Gear VR Oculus “Carmel” for Gear VR Coming soon to Daydream VR Coming soon for Microsoft Edge WebVR 1.0 API - preliminary spec http://mozvr.github.io/webvr-spec/ W3C Community Group https://www.w3.org/community/webvr/ Slack Channel https://webvr.slack.com/ Examples https://webvr.info/samples/ Development Status https://webvr.info/
  • 16. WebVR: Building for the Immersive Web
 Tony Parisi Head of VR/AR, Unity Technologies