SlideShare a Scribd company logo
1 of 82
Download to read offline
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Google XR ARCore/Daydream
EOL
ARCore
Copyright @Hirokazu Egashira. All right reserved.
Web
Advances in Web Technology
<video>
<canvas>
WebRTC’s getUserMedia();
WebGL three.jsvideo tag, canvas tag OpenCV + emscripten
WebVR
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Advances in XR Technology [VR]
Copyright @Hirokazu Egashira. All right reserved.
Advances in XR Technology [AR]
ARKit
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Usage
<script src='webxr-polyfill.js'></script>
<!-- or use a link to a CDN -->
<script src='https://cdn.jsdelivr.net/npm/webxr-polyfill@latest/build/webxrpolyfill.js'>

</script>
using a build tool (like browserify or webpack)
npm install --save webxr-polyfill
var polyfill = new WebXRPolyfill();
include it as a script tag, or use a CDN
Using
using script tags
import WebXRPolyfill from 'webxr-polyfill';
const polyfill = new WebXRPolyfill();
In a modular ES6 world
Copyright @Hirokazu Egashira. All right reserved.
<!--The polyfill is not needed for browser that have native API support,
but is linked by these samples for wider compatibility.-->
<script src=‘https://cdn.jsdelivr.net/npm/webxr-polyfill@latest/build/webxr-polyfill.js'></
script>
<body>
<header>
<details open>
<summary>Viewport Scaling</summary>
<p>
<a class="back" href="./">Back</a>
</p>
</details>
</header>
</body>
Copyright @Hirokazu Egashira. All right reserved.
(function () {
'use strict';
// If requested, initialize the WebXR polyfill
if (QueryArgs.getBool('allowPolyfill', false)) {
var polyfill = new WebXRPolyfill();
}
// XR globals.
let xrButton = null;
let xrExclusiveFrameOfRef = null;
let xrNonExclusiveFrameOfRef = null;
// WebGL scene globals.
let gl = null;
let renderer = null;
let scene = new Scene();
scene.addNode(new Gltf2Node({url: 'media/gltf/camp/
camp.gltf'}));
scene.addNode(new SkyboxNode({url: 'media/textures/
eilenriede-park-2k.png'}));
scene.standingStats(true);
//
function initXR() {
xrButton = new XRDeviceButton({
onRequestSession: onRequestSession,
onEndSession: onEndSession
});
document.querySelector('header').appendChild(xrButton.domElement);
if (navigator.xr) {
navigator.xr.requestDevice().then((device) => {
device.supportsSession({exclusive: true}).then(() => {
xrButton.setDevice(device);
});
let outputCanvas = document.createElement('canvas');
let ctx = outputCanvas.getContext('xrpresent');
device.requestSession({ outputContext: ctx })
.then((session) => {
document.body.appendChild(outputCanvas);
onSessionStarted(session);
});
}).catch(() => {
initFallback();
});
} else {
initFallback();
}
}
Copyright @Hirokazu Egashira. All right reserved.
// initXR()
function initFallback() {
initGL();
document.body.appendChild(gl.canvas);
let fallbackHelper = new FallbackHelper(scene, gl);
fallbackHelper.emulateStage = true;
}
// initXR()
function onRequestSession(device) {
// Set up a mirror canvas
let mirrorCanvas = document.createElement('canvas');
let ctx = mirrorCanvas.getContext('xrpresent');
mirrorCanvas.setAttribute('id', 'mirror-canvas');
document.body.appendChild(mirrorCanvas);
device.requestSession({ exclusive: true, outputContext:
ctx }).then((session) => {
xrButton.setSession(session);
onSessionStarted(session);
});
}
// initFallback()
function initGL(compatibleDevice) {
if (gl)
return;
gl = createWebGLContext({
compatibleXRDevice: compatibleDevice
});
renderer = new Renderer(gl);
scene.setRenderer(renderer);
}
Copyright @Hirokazu Egashira. All right reserved.
// fire ar initXR() and onRequestSession()
function onSessionStarted(session) {
session.addEventListener('end', onSessionEnded);
initGL(session.device);
session.baseLayer = new XRWebGLLayer(session, gl);
// Get a stage frame of reference, which will align the user's physical
// floor with Y=0 and can provide boundaries that indicate where the
// user can safely walk. If the system can't natively provide stage
// coordinates (for example, with a 3DoF device) then it will return an
// emulated stage, where the view is translated up by a static height
so
// that the scene still renders in approximately the right place.
session.requestFrameOfReference('stage').then((frameOfRef) => {
if (session.exclusive) {
xrExclusiveFrameOfRef = frameOfRef;
let boundsRenderer = new BoundsRenderer();
boundsRenderer.stageBounds = frameOfRef.bounds;
scene.addNode(boundsRenderer);
} else {
xrNonExclusiveFrameOfRef = frameOfRef;
}
session.requestAnimationFrame(onXRFrame);
});
}
// fire at initXR()
function onEndSession(session) {
session.end();
}
// fire at onSessionStarted()
function onSessionEnded(event) {
if (event.session.exclusive) {
document.body.removeChild(document.querySelector('#mirror-
canvas'));
xrButton.setSession(null);
}
}
// fire at onSessionStarted()
function onXRFrame(t, frame) {
let session = frame.session;
let frameOfRef = session.exclusive ?
xrExclusiveFrameOfRef :
xrNonExclusiveFrameOfRef;
let pose = frame.getDevicePose(frameOfRef);
scene.startFrame();
session.requestAnimationFrame(onXRFrame);
// Every XR frame uses basically the same render loop, so for the
sake
// of keeping the sample code focused on the interesting bits most
// samples after this one will start using this helper function to
hide
// away the majority of the rendering logic.
scene.drawXRFrame(frame, pose);
scene.endFrame();
}
Copyright @Hirokazu Egashira. All right reserved.
// Start the XR application.
initXR();
})();
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
https://immersive-web.github.io/webxr-samples/
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
https://github.com/google-ar/WebARonARCore
https://github.com/google-ar/WebARonARKit
Copyright @Hirokazu Egashira. All right reserved.
https://github.com/google-ar/three.ar.js
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.
CD MD
CUI GUI
☓ ☓ ☓ ☓


☓
☓
☓
☓


☓


☓


☓
Copyright @Hirokazu Egashira. All right reserved.
DTM
Copyright @Hirokazu Egashira. All right reserved.
Copyright @Hirokazu Egashira. All right reserved.


Install
Build
Copyright @Hirokazu Egashira. All right reserved.


Copyright @Hirokazu Egashira. All right reserved.




Copyright @Hirokazu Egashira. All right reserved.
References
Copyright @Hirokazu Egashira. All right reserved.
Immersive Web
• https://www.w3.org/community/immersive-web/
• https://github.com/immersive-web
• https://immersive-web.github.io/webxr/
• https://github.com/immersive-web/webxr-samples/
• https://immersive-web.github.io/webxr-reference/
• https://immersive-web.github.io/webvr/
• https://immersive-web.github.io/webxr-samples/
• https://github.com/immersive-web/webxr-polyfill
• https://github.com/immersive-web/webvr-polyfill
• https://immersive-web.github.io/webvr/spec/1.1/
• https://immersive-web.github.io/webxr/charter/
• https://webvr.info/
• https://blog.mozvr.com/progressive-webxr-ar-store/
• https://blog.mozvr.com/experimenting-with-computer-vision-in-webxr/
• https://blog.mozvr.com/experimenting-with-ar-and-the-web-on-ios/
• https://itunes.apple.com/us/app/webxr-viewer/id1295998056?mt=8
• https://github.com/mozilla-mobile/webxr-ios
• https://github.com/mozilla/webxr-polyfill
• https://github.com/mozilla/aframe-xr
• https://mozilla.github.io/aframe-xr/
• https://aframe.io/
Copyright @Hirokazu Egashira. All right reserved.
Mozilla Web XR
References
Copyright @Hirokazu Egashira. All right reserved.
• https://developers.google.com/ar/develop/web/quickstart
• https://github.com/google-ar/WebARonARCore
• https://github.com/google-ar/WebARonARKit
• https://github.com/google-ar/three.ar.js
• https://github.com/google-ar/WebAR-Article
• https://github.com/google-ar/three.ar.js/issues/82
• https://youtu.be/1t1gBVykneA
• https://www.chromestatus.com/feature/5680169905815552
• https://developers.google.com/ar/
• https://poly.google.com
Google WebXR
References
Copyright @Hirokazu Egashira. All right reserved.
• https://designguidelines.withgoogle.com/ar-design/augmented-reality-design-guidelines/introduction-to-ar-arcore.html
• https://blog.google/products/google-vr/best-practices-mobile-ar-design/
• https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/augmented-reality/
UI Guideline
Others
• https://www.khronos.org/openxr
• https://developer.apple.com/safari/whats-new/
• https://github.com/dontcallmedom/html5-augmented-reality
• https://github.com/google/draco
References
• https://github.com/jcmellado/js-aruco
• https://github.com/artoolkit/jsartoolkit5
• https://github.com/jeromeetienne/AR.js
• https://github.com/awe-media/awe.js/
• https://www.argonjs.io/
Copyright @Hirokazu Egashira. All right reserved.
• https://facebook.github.io/react-360/
• https://github.com/facebook/react-360
• https://www.nativescript.org/blog/preview-of-augmented-reality-in-nativescript
• https://www.nativescript.org/blog/getting-started-with-augmented-reality-in-nativescript
• https://github.com/EddyVerbruggen/nativescript-ar
JavaScript Library for XR
JavaScript Framework for XR
References

More Related Content

What's hot

Simulator customizing & testing for Xcode 9
Simulator customizing & testing for Xcode 9Simulator customizing & testing for Xcode 9
Simulator customizing & testing for Xcode 9Bongwon Lee
 
Bluetooth Beacon Tracking on a Budget
Bluetooth Beacon Tracking on a BudgetBluetooth Beacon Tracking on a Budget
Bluetooth Beacon Tracking on a BudgetBlaine Carter
 
스위프트를 여행하는 히치하이커를 위한 스타일 안내
스위프트를 여행하는 히치하이커를 위한 스타일 안내스위프트를 여행하는 히치하이커를 위한 스타일 안내
스위프트를 여행하는 히치하이커를 위한 스타일 안내Jung Kim
 
When Bad Things Come In Good Packages
When Bad Things Come In Good PackagesWhen Bad Things Come In Good Packages
When Bad Things Come In Good PackagesSaumil Shah
 

What's hot (6)

Shootting Game
Shootting GameShootting Game
Shootting Game
 
Simulator customizing & testing for Xcode 9
Simulator customizing & testing for Xcode 9Simulator customizing & testing for Xcode 9
Simulator customizing & testing for Xcode 9
 
Groovy
GroovyGroovy
Groovy
 
Bluetooth Beacon Tracking on a Budget
Bluetooth Beacon Tracking on a BudgetBluetooth Beacon Tracking on a Budget
Bluetooth Beacon Tracking on a Budget
 
스위프트를 여행하는 히치하이커를 위한 스타일 안내
스위프트를 여행하는 히치하이커를 위한 스타일 안내스위프트를 여행하는 히치하이커를 위한 스타일 안내
스위프트를 여행하는 히치하이커를 위한 스타일 안내
 
When Bad Things Come In Good Packages
When Bad Things Come In Good PackagesWhen Bad Things Come In Good Packages
When Bad Things Come In Good Packages
 

Similar to Introduction to Immersive Web

Google ARが提供する WebAR 101
Google ARが提供する WebAR 101Google ARが提供する WebAR 101
Google ARが提供する WebAR 101Hirokazu Egashira
 
Immersive Web on your website
Immersive Web on your websiteImmersive Web on your website
Immersive Web on your websiteHirokazu Egashira
 
WebXR: A New Dimension For The Web Writing Virtual and Augmented Reality Apps...
WebXR: A New Dimension For The Web Writing Virtual and Augmented Reality Apps...WebXR: A New Dimension For The Web Writing Virtual and Augmented Reality Apps...
WebXR: A New Dimension For The Web Writing Virtual and Augmented Reality Apps...GeilDanke
 
Writing Virtual And Augmented Reality Apps With Web Technology
Writing Virtual And Augmented Reality Apps With Web TechnologyWriting Virtual And Augmented Reality Apps With Web Technology
Writing Virtual And Augmented Reality Apps With Web TechnologyMichaela Lehr
 
Writing Virtual And Augmented Reality Apps With Web Technology
Writing Virtual And Augmented Reality Apps With Web TechnologyWriting Virtual And Augmented Reality Apps With Web Technology
Writing Virtual And Augmented Reality Apps With Web TechnologyGeilDanke
 
ARCoreと モバイルARエクスペリエンス
ARCoreと モバイルARエクスペリエンスARCoreと モバイルARエクスペリエンス
ARCoreと モバイルARエクスペリエンスHirokazu Egashira
 
I/O Extended 2019 WebTech - New capabilities for the web
I/O Extended 2019 WebTech - New capabilities for the webI/O Extended 2019 WebTech - New capabilities for the web
I/O Extended 2019 WebTech - New capabilities for the webHanboramRobinJang
 
HTML5 - Daha Flash bir web?
HTML5 - Daha Flash bir web?HTML5 - Daha Flash bir web?
HTML5 - Daha Flash bir web?Ankara JUG
 
Greach - The Groovy Ecosystem
Greach - The Groovy EcosystemGreach - The Groovy Ecosystem
Greach - The Groovy EcosystemAndres Almiray
 
Android Best Practices
Android Best PracticesAndroid Best Practices
Android Best PracticesYekmer Simsek
 
Hacking Reality: Browser-Based VR with HTML5
Hacking Reality: Browser-Based VR with HTML5Hacking Reality: Browser-Based VR with HTML5
Hacking Reality: Browser-Based VR with HTML5Tony Parisi
 
Great Developers Steal
Great Developers StealGreat Developers Steal
Great Developers StealBen Scofield
 
How to Make Your Users Sick in 60 Seconds – About UX Design, WebVR and React VR
How to Make Your Users Sick in 60 Seconds – About UX Design, WebVR and React VRHow to Make Your Users Sick in 60 Seconds – About UX Design, WebVR and React VR
How to Make Your Users Sick in 60 Seconds – About UX Design, WebVR and React VRGeilDanke
 
Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)Remy Sharp
 
Is html5-ready-workshop-110727181512-phpapp02
Is html5-ready-workshop-110727181512-phpapp02Is html5-ready-workshop-110727181512-phpapp02
Is html5-ready-workshop-110727181512-phpapp02PL dream
 
HDTR images with Photoshop Javascript Scripting
HDTR images with Photoshop Javascript ScriptingHDTR images with Photoshop Javascript Scripting
HDTR images with Photoshop Javascript ScriptingDavid Gómez García
 

Similar to Introduction to Immersive Web (20)

Google ARが提供する WebAR 101
Google ARが提供する WebAR 101Google ARが提供する WebAR 101
Google ARが提供する WebAR 101
 
Immersive Web on your website
Immersive Web on your websiteImmersive Web on your website
Immersive Web on your website
 
ARCore Update
ARCore UpdateARCore Update
ARCore Update
 
WebXR: A New Dimension For The Web Writing Virtual and Augmented Reality Apps...
WebXR: A New Dimension For The Web Writing Virtual and Augmented Reality Apps...WebXR: A New Dimension For The Web Writing Virtual and Augmented Reality Apps...
WebXR: A New Dimension For The Web Writing Virtual and Augmented Reality Apps...
 
Writing Virtual And Augmented Reality Apps With Web Technology
Writing Virtual And Augmented Reality Apps With Web TechnologyWriting Virtual And Augmented Reality Apps With Web Technology
Writing Virtual And Augmented Reality Apps With Web Technology
 
Writing Virtual And Augmented Reality Apps With Web Technology
Writing Virtual And Augmented Reality Apps With Web TechnologyWriting Virtual And Augmented Reality Apps With Web Technology
Writing Virtual And Augmented Reality Apps With Web Technology
 
A More Flash Like Web?
A More Flash Like Web?A More Flash Like Web?
A More Flash Like Web?
 
ARCoreと モバイルARエクスペリエンス
ARCoreと モバイルARエクスペリエンスARCoreと モバイルARエクスペリエンス
ARCoreと モバイルARエクスペリエンス
 
I/O Extended 2019 WebTech - New capabilities for the web
I/O Extended 2019 WebTech - New capabilities for the webI/O Extended 2019 WebTech - New capabilities for the web
I/O Extended 2019 WebTech - New capabilities for the web
 
HTML5 - Daha Flash bir web?
HTML5 - Daha Flash bir web?HTML5 - Daha Flash bir web?
HTML5 - Daha Flash bir web?
 
Greach - The Groovy Ecosystem
Greach - The Groovy EcosystemGreach - The Groovy Ecosystem
Greach - The Groovy Ecosystem
 
Coding Ajax
Coding AjaxCoding Ajax
Coding Ajax
 
Android Best Practices
Android Best PracticesAndroid Best Practices
Android Best Practices
 
Hacking Reality: Browser-Based VR with HTML5
Hacking Reality: Browser-Based VR with HTML5Hacking Reality: Browser-Based VR with HTML5
Hacking Reality: Browser-Based VR with HTML5
 
Great Developers Steal
Great Developers StealGreat Developers Steal
Great Developers Steal
 
How to Make Your Users Sick in 60 Seconds – About UX Design, WebVR and React VR
How to Make Your Users Sick in 60 Seconds – About UX Design, WebVR and React VRHow to Make Your Users Sick in 60 Seconds – About UX Design, WebVR and React VR
How to Make Your Users Sick in 60 Seconds – About UX Design, WebVR and React VR
 
Coding Ajax
Coding AjaxCoding Ajax
Coding Ajax
 
Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)
 
Is html5-ready-workshop-110727181512-phpapp02
Is html5-ready-workshop-110727181512-phpapp02Is html5-ready-workshop-110727181512-phpapp02
Is html5-ready-workshop-110727181512-phpapp02
 
HDTR images with Photoshop Javascript Scripting
HDTR images with Photoshop Javascript ScriptingHDTR images with Photoshop Javascript Scripting
HDTR images with Photoshop Javascript Scripting
 

More from Hirokazu Egashira

Build your AR app by using AR Foundation samples
Build your AR app by using AR Foundation samplesBuild your AR app by using AR Foundation samples
Build your AR app by using AR Foundation samplesHirokazu Egashira
 
Introduction to AR Foundation
Introduction to AR FoundationIntroduction to AR Foundation
Introduction to AR FoundationHirokazu Egashira
 
PWAの機能の選択と設計について
PWAの機能の選択と設計についてPWAの機能の選択と設計について
PWAの機能の選択と設計についてHirokazu Egashira
 
PWAってどう有効なのかしら 考えてみた
PWAってどう有効なのかしら 考えてみたPWAってどう有効なのかしら 考えてみた
PWAってどう有効なのかしら 考えてみたHirokazu Egashira
 
デザイナー/エンジニア RWDで
ステップアップLOVE
デザイナー/エンジニア RWDで
ステップアップLOVEデザイナー/エンジニア RWDで
ステップアップLOVE
デザイナー/エンジニア RWDで
ステップアップLOVEHirokazu Egashira
 
Intel EdisonでAndroid Things Lチカ?その後は?
Intel EdisonでAndroid Things Lチカ?その後は?Intel EdisonでAndroid Things Lチカ?その後は?
Intel EdisonでAndroid Things Lチカ?その後は?Hirokazu Egashira
 
Tangoが切り開く MRの世界と日本における最新開発事例
Tangoが切り開く MRの世界と日本における最新開発事例Tangoが切り開く MRの世界と日本における最新開発事例
Tangoが切り開く MRの世界と日本における最新開発事例Hirokazu Egashira
 
Intel Joule Module ユーザーガイド(2)初期設定編【非公式】
Intel Joule Module ユーザーガイド(2)初期設定編【非公式】Intel Joule Module ユーザーガイド(2)初期設定編【非公式】
Intel Joule Module ユーザーガイド(2)初期設定編【非公式】Hirokazu Egashira
 
Web Speech API で2時間で作れる?ブラウザロボット
Web Speech API で2時間で作れる?ブラウザロボットWeb Speech API で2時間で作れる?ブラウザロボット
Web Speech API で2時間で作れる?ブラウザロボットHirokazu Egashira
 
Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -Hirokazu Egashira
 
AITCオープンラボ 第4回 IoT勉強会 〜 Pepper x IoT x Web 〜
AITCオープンラボ 第4回 IoT勉強会 〜 Pepper x IoT x Web 〜AITCオープンラボ 第4回 IoT勉強会 〜 Pepper x IoT x Web 〜
AITCオープンラボ 第4回 IoT勉強会 〜 Pepper x IoT x Web 〜Hirokazu Egashira
 

More from Hirokazu Egashira (18)

ARCore Update (Jan 2020)
ARCore Update (Jan 2020)ARCore Update (Jan 2020)
ARCore Update (Jan 2020)
 
Build your AR app by using AR Foundation samples
Build your AR app by using AR Foundation samplesBuild your AR app by using AR Foundation samples
Build your AR app by using AR Foundation samples
 
Introduction to AR Foundation
Introduction to AR FoundationIntroduction to AR Foundation
Introduction to AR Foundation
 
PWAの機能の選択と設計について
PWAの機能の選択と設計についてPWAの機能の選択と設計について
PWAの機能の選択と設計について
 
PWAってどう有効なのかしら 考えてみた
PWAってどう有効なのかしら 考えてみたPWAってどう有効なのかしら 考えてみた
PWAってどう有効なのかしら 考えてみた
 
デザイナー/エンジニア RWDで
ステップアップLOVE
デザイナー/エンジニア RWDで
ステップアップLOVEデザイナー/エンジニア RWDで
ステップアップLOVE
デザイナー/エンジニア RWDで
ステップアップLOVE
 
ARCore 101
ARCore 101ARCore 101
ARCore 101
 
Example using LattePanda
Example using LattePandaExample using LattePanda
Example using LattePanda
 
LattePandaの紹介
LattePandaの紹介LattePandaの紹介
LattePandaの紹介
 
DFRobot
DFRobotDFRobot
DFRobot
 
Example using LattePanda
Example  using LattePandaExample  using LattePanda
Example using LattePanda
 
Intel EdisonでAndroid Things Lチカ?その後は?
Intel EdisonでAndroid Things Lチカ?その後は?Intel EdisonでAndroid Things Lチカ?その後は?
Intel EdisonでAndroid Things Lチカ?その後は?
 
Dive into Origami Studio
Dive into Origami StudioDive into Origami Studio
Dive into Origami Studio
 
Tangoが切り開く MRの世界と日本における最新開発事例
Tangoが切り開く MRの世界と日本における最新開発事例Tangoが切り開く MRの世界と日本における最新開発事例
Tangoが切り開く MRの世界と日本における最新開発事例
 
Intel Joule Module ユーザーガイド(2)初期設定編【非公式】
Intel Joule Module ユーザーガイド(2)初期設定編【非公式】Intel Joule Module ユーザーガイド(2)初期設定編【非公式】
Intel Joule Module ユーザーガイド(2)初期設定編【非公式】
 
Web Speech API で2時間で作れる?ブラウザロボット
Web Speech API で2時間で作れる?ブラウザロボットWeb Speech API で2時間で作れる?ブラウザロボット
Web Speech API で2時間で作れる?ブラウザロボット
 
Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -
 
AITCオープンラボ 第4回 IoT勉強会 〜 Pepper x IoT x Web 〜
AITCオープンラボ 第4回 IoT勉強会 〜 Pepper x IoT x Web 〜AITCオープンラボ 第4回 IoT勉強会 〜 Pepper x IoT x Web 〜
AITCオープンラボ 第4回 IoT勉強会 〜 Pepper x IoT x Web 〜
 

Recently uploaded

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
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.pdfsudhanshuwaghmare1
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
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 TerraformAndrey Devyatkin
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 

Recently uploaded (20)

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
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
 
+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...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
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
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

Introduction to Immersive Web

  • 1.
  • 2. Copyright @Hirokazu Egashira. All right reserved.
  • 3. Copyright @Hirokazu Egashira. All right reserved.
  • 4. Copyright @Hirokazu Egashira. All right reserved. Google XR ARCore/Daydream EOL ARCore
  • 5. Copyright @Hirokazu Egashira. All right reserved.
  • 6.
  • 7. Web
  • 8. Advances in Web Technology <video> <canvas> WebRTC’s getUserMedia(); WebGL three.jsvideo tag, canvas tag OpenCV + emscripten WebVR Copyright @Hirokazu Egashira. All right reserved.
  • 9. Copyright @Hirokazu Egashira. All right reserved. Advances in XR Technology [VR]
  • 10. Copyright @Hirokazu Egashira. All right reserved. Advances in XR Technology [AR] ARKit
  • 11.
  • 12. Copyright @Hirokazu Egashira. All right reserved.
  • 13. Copyright @Hirokazu Egashira. All right reserved.
  • 14. Copyright @Hirokazu Egashira. All right reserved.
  • 15. Copyright @Hirokazu Egashira. All right reserved.
  • 16. Copyright @Hirokazu Egashira. All right reserved.
  • 17. Copyright @Hirokazu Egashira. All right reserved.
  • 18. Copyright @Hirokazu Egashira. All right reserved.
  • 19. Copyright @Hirokazu Egashira. All right reserved.
  • 20. Copyright @Hirokazu Egashira. All right reserved.
  • 21. Copyright @Hirokazu Egashira. All right reserved.
  • 22. Copyright @Hirokazu Egashira. All right reserved.
  • 23. Copyright @Hirokazu Egashira. All right reserved.
  • 24.
  • 25. Copyright @Hirokazu Egashira. All right reserved.
  • 26. Copyright @Hirokazu Egashira. All right reserved.
  • 27. Copyright @Hirokazu Egashira. All right reserved.
  • 28. Usage <script src='webxr-polyfill.js'></script> <!-- or use a link to a CDN --> <script src='https://cdn.jsdelivr.net/npm/webxr-polyfill@latest/build/webxrpolyfill.js'>
 </script> using a build tool (like browserify or webpack) npm install --save webxr-polyfill var polyfill = new WebXRPolyfill(); include it as a script tag, or use a CDN Using using script tags import WebXRPolyfill from 'webxr-polyfill'; const polyfill = new WebXRPolyfill(); In a modular ES6 world
  • 29.
  • 30. Copyright @Hirokazu Egashira. All right reserved. <!--The polyfill is not needed for browser that have native API support, but is linked by these samples for wider compatibility.--> <script src=‘https://cdn.jsdelivr.net/npm/webxr-polyfill@latest/build/webxr-polyfill.js'></ script> <body> <header> <details open> <summary>Viewport Scaling</summary> <p> <a class="back" href="./">Back</a> </p> </details> </header> </body>
  • 31. Copyright @Hirokazu Egashira. All right reserved. (function () { 'use strict'; // If requested, initialize the WebXR polyfill if (QueryArgs.getBool('allowPolyfill', false)) { var polyfill = new WebXRPolyfill(); } // XR globals. let xrButton = null; let xrExclusiveFrameOfRef = null; let xrNonExclusiveFrameOfRef = null; // WebGL scene globals. let gl = null; let renderer = null; let scene = new Scene(); scene.addNode(new Gltf2Node({url: 'media/gltf/camp/ camp.gltf'})); scene.addNode(new SkyboxNode({url: 'media/textures/ eilenriede-park-2k.png'})); scene.standingStats(true); // function initXR() { xrButton = new XRDeviceButton({ onRequestSession: onRequestSession, onEndSession: onEndSession }); document.querySelector('header').appendChild(xrButton.domElement); if (navigator.xr) { navigator.xr.requestDevice().then((device) => { device.supportsSession({exclusive: true}).then(() => { xrButton.setDevice(device); }); let outputCanvas = document.createElement('canvas'); let ctx = outputCanvas.getContext('xrpresent'); device.requestSession({ outputContext: ctx }) .then((session) => { document.body.appendChild(outputCanvas); onSessionStarted(session); }); }).catch(() => { initFallback(); }); } else { initFallback(); } }
  • 32. Copyright @Hirokazu Egashira. All right reserved. // initXR() function initFallback() { initGL(); document.body.appendChild(gl.canvas); let fallbackHelper = new FallbackHelper(scene, gl); fallbackHelper.emulateStage = true; } // initXR() function onRequestSession(device) { // Set up a mirror canvas let mirrorCanvas = document.createElement('canvas'); let ctx = mirrorCanvas.getContext('xrpresent'); mirrorCanvas.setAttribute('id', 'mirror-canvas'); document.body.appendChild(mirrorCanvas); device.requestSession({ exclusive: true, outputContext: ctx }).then((session) => { xrButton.setSession(session); onSessionStarted(session); }); } // initFallback() function initGL(compatibleDevice) { if (gl) return; gl = createWebGLContext({ compatibleXRDevice: compatibleDevice }); renderer = new Renderer(gl); scene.setRenderer(renderer); }
  • 33. Copyright @Hirokazu Egashira. All right reserved. // fire ar initXR() and onRequestSession() function onSessionStarted(session) { session.addEventListener('end', onSessionEnded); initGL(session.device); session.baseLayer = new XRWebGLLayer(session, gl); // Get a stage frame of reference, which will align the user's physical // floor with Y=0 and can provide boundaries that indicate where the // user can safely walk. If the system can't natively provide stage // coordinates (for example, with a 3DoF device) then it will return an // emulated stage, where the view is translated up by a static height so // that the scene still renders in approximately the right place. session.requestFrameOfReference('stage').then((frameOfRef) => { if (session.exclusive) { xrExclusiveFrameOfRef = frameOfRef; let boundsRenderer = new BoundsRenderer(); boundsRenderer.stageBounds = frameOfRef.bounds; scene.addNode(boundsRenderer); } else { xrNonExclusiveFrameOfRef = frameOfRef; } session.requestAnimationFrame(onXRFrame); }); } // fire at initXR() function onEndSession(session) { session.end(); } // fire at onSessionStarted() function onSessionEnded(event) { if (event.session.exclusive) { document.body.removeChild(document.querySelector('#mirror- canvas')); xrButton.setSession(null); } } // fire at onSessionStarted() function onXRFrame(t, frame) { let session = frame.session; let frameOfRef = session.exclusive ? xrExclusiveFrameOfRef : xrNonExclusiveFrameOfRef; let pose = frame.getDevicePose(frameOfRef); scene.startFrame(); session.requestAnimationFrame(onXRFrame); // Every XR frame uses basically the same render loop, so for the sake // of keeping the sample code focused on the interesting bits most // samples after this one will start using this helper function to hide // away the majority of the rendering logic. scene.drawXRFrame(frame, pose); scene.endFrame(); }
  • 34. Copyright @Hirokazu Egashira. All right reserved. // Start the XR application. initXR(); })();
  • 35.
  • 36. Copyright @Hirokazu Egashira. All right reserved.
  • 37. Copyright @Hirokazu Egashira. All right reserved.
  • 38. Copyright @Hirokazu Egashira. All right reserved.
  • 39. Copyright @Hirokazu Egashira. All right reserved. https://immersive-web.github.io/webxr-samples/
  • 40. Copyright @Hirokazu Egashira. All right reserved.
  • 41. Copyright @Hirokazu Egashira. All right reserved.
  • 42. Copyright @Hirokazu Egashira. All right reserved.
  • 43. Copyright @Hirokazu Egashira. All right reserved.
  • 44. Copyright @Hirokazu Egashira. All right reserved.
  • 45. Copyright @Hirokazu Egashira. All right reserved.
  • 46. Copyright @Hirokazu Egashira. All right reserved.
  • 47.
  • 48. Copyright @Hirokazu Egashira. All right reserved.
  • 49. Copyright @Hirokazu Egashira. All right reserved.
  • 50. Copyright @Hirokazu Egashira. All right reserved.
  • 51.
  • 52.
  • 53. Copyright @Hirokazu Egashira. All right reserved. https://github.com/google-ar/WebARonARCore https://github.com/google-ar/WebARonARKit
  • 54. Copyright @Hirokazu Egashira. All right reserved. https://github.com/google-ar/three.ar.js
  • 55. Copyright @Hirokazu Egashira. All right reserved.
  • 56.
  • 57. Copyright @Hirokazu Egashira. All right reserved.
  • 58. Copyright @Hirokazu Egashira. All right reserved.
  • 59. Copyright @Hirokazu Egashira. All right reserved.
  • 60. Copyright @Hirokazu Egashira. All right reserved.
  • 61. Copyright @Hirokazu Egashira. All right reserved.
  • 62.
  • 63.
  • 64. Copyright @Hirokazu Egashira. All right reserved.
  • 65. Copyright @Hirokazu Egashira. All right reserved.
  • 66.
  • 67. Copyright @Hirokazu Egashira. All right reserved.
  • 68. Copyright @Hirokazu Egashira. All right reserved. CD MD CUI GUI ☓ ☓ ☓ ☓ 
 ☓ ☓ ☓ ☓ 
 ☓ 
 ☓ 
 ☓
  • 69. Copyright @Hirokazu Egashira. All right reserved. DTM
  • 70. Copyright @Hirokazu Egashira. All right reserved.
  • 71. Copyright @Hirokazu Egashira. All right reserved. 
 Install Build
  • 72. Copyright @Hirokazu Egashira. All right reserved. 

  • 73. Copyright @Hirokazu Egashira. All right reserved.
  • 74.
  • 76.
  • 77.
  • 78. References Copyright @Hirokazu Egashira. All right reserved. Immersive Web • https://www.w3.org/community/immersive-web/ • https://github.com/immersive-web • https://immersive-web.github.io/webxr/ • https://github.com/immersive-web/webxr-samples/ • https://immersive-web.github.io/webxr-reference/ • https://immersive-web.github.io/webvr/ • https://immersive-web.github.io/webxr-samples/ • https://github.com/immersive-web/webxr-polyfill • https://github.com/immersive-web/webvr-polyfill • https://immersive-web.github.io/webvr/spec/1.1/ • https://immersive-web.github.io/webxr/charter/ • https://webvr.info/
  • 79. • https://blog.mozvr.com/progressive-webxr-ar-store/ • https://blog.mozvr.com/experimenting-with-computer-vision-in-webxr/ • https://blog.mozvr.com/experimenting-with-ar-and-the-web-on-ios/ • https://itunes.apple.com/us/app/webxr-viewer/id1295998056?mt=8 • https://github.com/mozilla-mobile/webxr-ios • https://github.com/mozilla/webxr-polyfill • https://github.com/mozilla/aframe-xr • https://mozilla.github.io/aframe-xr/ • https://aframe.io/ Copyright @Hirokazu Egashira. All right reserved. Mozilla Web XR References
  • 80. Copyright @Hirokazu Egashira. All right reserved. • https://developers.google.com/ar/develop/web/quickstart • https://github.com/google-ar/WebARonARCore • https://github.com/google-ar/WebARonARKit • https://github.com/google-ar/three.ar.js • https://github.com/google-ar/WebAR-Article • https://github.com/google-ar/three.ar.js/issues/82 • https://youtu.be/1t1gBVykneA • https://www.chromestatus.com/feature/5680169905815552 • https://developers.google.com/ar/ • https://poly.google.com Google WebXR References
  • 81. Copyright @Hirokazu Egashira. All right reserved. • https://designguidelines.withgoogle.com/ar-design/augmented-reality-design-guidelines/introduction-to-ar-arcore.html • https://blog.google/products/google-vr/best-practices-mobile-ar-design/ • https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/augmented-reality/ UI Guideline Others • https://www.khronos.org/openxr • https://developer.apple.com/safari/whats-new/ • https://github.com/dontcallmedom/html5-augmented-reality • https://github.com/google/draco References
  • 82. • https://github.com/jcmellado/js-aruco • https://github.com/artoolkit/jsartoolkit5 • https://github.com/jeromeetienne/AR.js • https://github.com/awe-media/awe.js/ • https://www.argonjs.io/ Copyright @Hirokazu Egashira. All right reserved. • https://facebook.github.io/react-360/ • https://github.com/facebook/react-360 • https://www.nativescript.org/blog/preview-of-augmented-reality-in-nativescript • https://www.nativescript.org/blog/getting-started-with-augmented-reality-in-nativescript • https://github.com/EddyVerbruggen/nativescript-ar JavaScript Library for XR JavaScript Framework for XR References