Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Augmented Reality.js
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Eduardo Lundgren
November 20, 2013
Technology
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Augmented Reality.js
Eduardo Lundgren
November 20, 2013
More Decks by Eduardo Lundgren
See All by Eduardo Lundgren
WeDeploy
eduardolundgren
0
76
Introducing Liferay Standalone Applications
eduardolundgren
3
550
Single Page Applications in Liferay
eduardolundgren
5
2.6k
Single Page Applications done right
eduardolundgren
10
810
tracking.js with Maira Bello
eduardolundgren
0
140
Single Page Application
eduardolundgren
0
450
Getting Started with YUI3 and AlloyUI
eduardolundgren
0
100
Getting started with AlloyUI
eduardolundgren
0
110
Liferay UI revolution
eduardolundgren
0
200
Other Decks in Technology
See All in Technology
凡エンジニアがこの先生きのこるためには。〜TypeScript完全に理解したい〜
alchemy1115
2
180
AI時代の開発生産性は、個人技からチーム設計へ
moongift
PRO
2
230
Road to SRE NEXTの今までとこれから
hiroyaonoe
0
310
AI時代のエンジニアキャリアについて今一度考える
sakamoto_582
2
1.5k
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
13
2k
“それは自分の仕事じゃない"を越えて行け
yuukiyo
0
150
Gen3R: 3D Scene Generation Meets Feed-Forward Reconstruction
spatial_ai_network
0
120
オブザーバビリティ、本当に活用できてる? 〜API連携×生成AIで成熟度を自動評価〜
dmmsre
1
3.1k
ZOZOTOWNの進化と信頼性を両立する負荷試験
zozotech
PRO
2
160
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
0
110
生成AIの活用/high_school2026
okana2ki
0
130
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
210
Featured
See All Featured
The Mindset for Success: Future Career Progression
greggifford
PRO
0
410
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.7k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
180
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
Six Lessons from altMBA
skipperchong
29
4.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
220
Transcript
augmented reality.js JS.everywhere, 2013 Friday, October 25, 13
@eduardolundgren Friday, October 25, 13
I’m from brazil Friday, October 25, 13
Friday, October 25, 13
I — JavaScript Friday, October 25, 13
jQuery jQueryUI YUI3 Liferay tracking.js AlloyUI jQuery Simulate nodegh Friday,
October 25, 13
jQuery jQueryUI YUI3 Liferay tracking.js AlloyUI jQuery Simulate nodegh Friday,
October 25, 13
jQuery jQueryUI YUI3 Liferay tracking.js AlloyUI jQuery Simulate nodegh Friday,
October 25, 13
jQuery jQueryUI YUI3 Liferay tracking.js AlloyUI jQuery Simulate nodegh Friday,
October 25, 13
jQuery jQueryUI YUI3 Liferay tracking.js AlloyUI jQuery Simulate nodegh Friday,
October 25, 13
jQuery jQueryUI YUI3 Liferay tracking.js AlloyUI jQuery Simulate nodegh Friday,
October 25, 13
jQuery jQueryUI YUI3 Liferay tracking.js AlloyUI jQuery Simulate nodegh Friday,
October 25, 13
jQuery jQueryUI YUI3 Liferay tracking.js AlloyUI jQuery Simulate nodegh Friday,
October 25, 13
jQuery jQueryUI YUI3 Liferay tracking.js AlloyUI jQuery Simulate nodegh Friday,
October 25, 13
today we’re going to talk about augmented reality... Friday, October
25, 13
Friday, October 25, 13
...and how to integrate different HTML5 APIs Friday, October 25,
13
augmented reality is everywhere Friday, October 25, 13
first head-mounted display Friday, October 25, 13
google glass Friday, October 25, 13
what is augmented reality? Friday, October 25, 13
terminator Friday, October 25, 13
terminator Friday, October 25, 13
what is visual tracking? Friday, October 25, 13
visual tracking Friday, October 25, 13
how can you do it using JavaScript? Friday, October 25,
13
1. capture webcam Friday, October 25, 13
Friday, October 25, 13
dev.w3.org/2011/webrtc/editor/webrtc.html Friday, October 25, 13
Friday, October 25, 13
navigator.getUserMedia({ video: true, audio: true }, onSuccess, onFail); STEP 1
Access user's camera Friday, October 25, 13
2. play the captured video Friday, October 25, 13
Friday, October 25, 13
STEP 2 Play webcam's content into a video element function
onSuccess(stream) { var video = document.querySelector('video'); video.src = window.URL.createObjectURL(stream); video.onloadedmetadata = function(e) { // Ready }; } Friday, October 25, 13
3. track a pattern of pixels Friday, October 25, 13
Friday, October 25, 13
Friday, October 25, 13
Friday, October 25, 13
javascript typed arrays Friday, October 25, 13
“Study the past if you would define the future” -
Confucius Friday, October 25, 13
fiducial markers Friday, October 25, 13
hitl.washington.edu/artoolkit Friday, October 25, 13
github.com/kig/JSARToolKit Friday, October 25, 13
soundstep.com/blog/experiments/jstracking/ Friday, October 25, 13
soundstep.com/blog/experiments/jstracking/ Friday, October 25, 13
bit.ly/XR0aGH Friday, October 25, 13
bit.ly/XR0aGH Friday, October 25, 13
what was the problem? Friday, October 25, 13
trackingjs.com Friday, October 25, 13
eduardo.io/3F0d360z2q1P Friday, October 25, 13
tracking.js features Friday, October 25, 13
Friday, October 25, 13
Friday, October 25, 13
eduardo.io/23033L0Q1i3z Friday, October 25, 13
eduardo.io/23033L0Q1i3z Friday, October 25, 13
STEP 1 COLOR TRACKING Import tracking.js core <script src="tracking.js"></script> Import
tracking.js color module <script src="tracker/color.js"></script> Friday, October 25, 13
STEP 2 COLOR TRACKING Gets user's camera and renders it
var videoCamera = new tracking .VideoCamera() .render(); Friday, October 25, 13
STEP 3 COLOR TRACKING Register tracking for yellow color videoCamera.track({
type: 'color', color: 'yellow', onFound: function() {}, onNotFound: function() {} }); Friday, October 25, 13
STEP 4 COLOR TRACKING Paint all detected pixels onFound: function(track)
{ var pixels = track.pixels, ctx = videoCamera.canvas.context; for (var i = 0, len = pixels.length; i < len; i += 2) { ctx.fillStyle = "rgb(255,0,255)"; ctx.fillRect(pixels[i], pixels[i+1], 2, 2); } ctx.fillStyle = "rgb(0,0,0)"; ctx.fillRect(track.x, track.y, 5, 5); } Friday, October 25, 13
Friday, October 25, 13
eduardo.io/233C2J0Q3z0U Friday, October 25, 13
eduardo.io/233C2J0Q3z0U Friday, October 25, 13
STEP 1 FACE DETECTION Register human tracking for frontal face
videoCamera.track({ type: 'human', data: 'frontal_face', onFound: function() {}, onNotFound: function() {} }); Friday, October 25, 13
STEP 2 FACE DETECTION Paint all detected faces rectangles onFound:
function(track) { for (var i = 0, len = track.length; i < len; i++) { var rect = track[i]; ctx.strokeStyle = "rgb(0,255,0)"; ctx.strokeRect( rect.x, rect.y, rect.size, rect.size); } } Friday, October 25, 13
real world examples Friday, October 25, 13
github.com/auduno/headtrackr Friday, October 25, 13
webdesign.maratz.com/lab/responsivetypography Friday, October 25, 13
webdesign.maratz.com/lab/responsivetypography Friday, October 25, 13
auduno.github.io/headtrackr/examples/targets.html Friday, October 25, 13
auduno.github.io/headtrackr/examples/targets.html Friday, October 25, 13
alexhancock.github.io/street-facing Friday, October 25, 13
alexhancock.github.io/street-facing Friday, October 25, 13
markerless tracking Friday, October 25, 13
unifeye viewer Friday, October 25, 13
github.com/eduardolundgren/tracking.js Friday, October 25, 13
let’s see in action? Friday, October 25, 13
popularity Friday, October 25, 13
638 cities Friday, October 25, 13
445 tweets Friday, October 25, 13
thank you :) @eduardolundgren Friday, October 25, 13