If 2017 was the year of Virtual Reality, 2018 may become the year of Augmented Reality. With Apple's ARKit for iOS and Google's ARCore for Android, we should not forget that actually the open web and Augmented Reality are the perfect couple.
But how do we create AR apps with web technology? In my talk you will learn how to write your own AR app that runs in the browser. You will see how Augmented Reality works, what markers are for, and how to create them. And you'll get an overview about the devices you can use to test your AR projects.
We are just at the beginning of the rise of Augmented Reality. This is why lots of UX design questions are still unanswered. But there are patterns and best practises, and you will learn how to use them to get a great user experience in your AR application.
16. ❝ Augmented Reality (AR) is a variation of
Virtual Environments (VE), or Virtual Reality as
it is more commonly called. ❞
Ronald Azura, 1997
17. ❝ VE technologies completely immerse
a user inside a synthetic environment. While
immersed, the user cannot see the
real world around him. ❞
Ronald Azura, 1997
18. ❝ In contrast, AR allows the user to see the
real world, with virtual objects superimposed
upon or composited with the real world.
Therefore, AR supplements reality, rather than
completely replacing it. ❞
Ronald Azura, 1997
58. ARKit ARCore
by Apple by Google
World/Motion Tracking Scene Analyzation Light Estimation
59. ARKit ARCore
by Apple by Google
WebAROnARKit WebAROnARCore
Two Experimental Browser Apps
https://github.com/google-ar/WebARonARKit https://github.com/google-ar/WebARonARCore
71. 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);
function render() {
requestAnimationFrame(render);
renderer.render(scene, camera);
}
render();
80. let scene = document.querySelector('a-scene');
let raycaster = document.querySelector('[ar-raycaster]');
let mark = document.querySelector('#intersection');
raycaster.addEventListener('raycaster-intersection', function(e) {
mark.setAttribute('position', e.detail.intersections[0].point);
mark.setAttribute('visible', true);
});
raycaster.addEventListener('raycaster-intersection-cleared', function(e) {
mark.setAttribute('visible', false);
});
81. window.addEventListener('click', function () {
let furniture = document.querySelector('[io3d-furniture]');
let position = mark.getAttribute('position');
furniture.setAttribute('position', position);
furniture.setAttribute('visible', true);
});
104. User Input and Interaction
User Interface and Information
Interpretability
Context
Comfort
Safety
Illusion
Usefulness
Delight
https://medium.com/@beaucronin/the-hierarchy-of-needs-in-virtual-reality-development-4333a4833acc