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
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
75
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
130
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
AIAU_UMEMOGU_ninomiya_slide
ninomiya_ii
0
240
When Platform Engineering Meets GenAI
sucitw
0
130
2026年6月23日 Syncable Tech + Start Python Club にて
hamukazu
0
140
日本 Fintech 未来予測レポート 2027〜2028年(手動編集版)
8maki
1
2.5k
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
1.3k
アジャイルな経理と Claude Code と経営の未来
kawaguti
PRO
3
160
Chainlitで作るお手軽チャットUI
ynt0485
0
280
2026 TECHFRESH 畢業分享會 - AI-Native 重塑軟體工程與虛擬講師
line_developers_tw
PRO
0
1.3k
攻撃者視点で考えるDetection Engineering
cryptopeg
3
2k
AIネイティブな開発のサプライチェーンリスク対策 〜激動の開発現場でリスクに立ち向かう〜【ZennFes】
cscengineer
PRO
2
140
SONiC Scale-Up Working Group から探る Scale-UpやUltraEthernet機能の実装方法
ebiken
PRO
2
410
PostgreSQL 19 新機能概要 OSC Hokkaido 2026
nori_shinoda
0
140
Featured
See All Featured
Writing Fast Ruby
sferik
630
63k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
580
Become a Pro
speakerdeck
PRO
31
6k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
480
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
180
Six Lessons from altMBA
skipperchong
29
4.3k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
410
AI: The stuff that nobody shows you
jnunemaker
PRO
8
720
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
180
It's Worth the Effort
3n
188
29k
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