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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
「最後に責任を取るのはチーム」— 人間のPRレビューを最小化してアップデートしたメンタルモデル
jnishime_dresscode
0
600
ゴールデンパスは敷いただけでは道にならない ─ 企画部門のエンジニアが技術標準を事業価値に変えるまで
mhrtech
0
140
AI時代の開発生産性は、個人技からチーム設計へ
moongift
PRO
2
230
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
210
オブザーバビリティ、本当に活用できてる? 〜API連携×生成AIで成熟度を自動評価〜
dmmsre
1
3.1k
穢れた技術選定について
watany
4
420
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.4k
ポストモーテム! DDoSからサイトは守れた。 でもビジネスは守れなかった。
bengo4com
0
2.9k
最近評価が難しくなった
maroon8021
0
340
DMM.com 購入改善推進チーム におけるCodeRabbitを用いた レビューフロー改善の一例
ysknsid25
2
620
AICoEでAIネイティブ組織への進化
yukiogawa
0
170
Gen3R: 3D Scene Generation Meets Feed-Forward Reconstruction
spatial_ai_network
0
120
Featured
See All Featured
Claude Code のすすめ
schroneko
67
230k
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Tell your own story through comics
letsgokoyo
1
990
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Facilitating Awesome Meetings
lara
57
7k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Become a Pro
speakerdeck
PRO
31
6k
Exploring anti-patterns in Rails
aemeredith
3
440
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Agile that works and the tools we love
rasmusluckow
331
22k
Being A Developer After 40
akosma
91
590k
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