Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ARKitの話
Search
Takaaki Tanaka
June 22, 2017
Technology
1.8k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ARKitの話
WWDC After Party 2017 @Ebisu での発表資料です。
https://pre-wwdc.connpass.com/event/56731/
Takaaki Tanaka
June 22, 2017
More Decks by Takaaki Tanaka
See All by Takaaki Tanaka
現場に降りてきたAI フィジカルAIの技術スタックと実案件デモ #devio2026
kongmingstrap
0
280
[デモです] NotebookLM で作ったスライドの例
kongmingstrap
0
690
Zenn のウラガワ ~エンジニアのアウトプットを支える環境で Google Cloud が採用されているワケ~ #burikaigi #burikaigi_h
kongmingstrap
22
8.6k
AWS re:Invent 2024 ふりかえり
kongmingstrap
0
520
製造の課題に立ち向かう Manufacturing Data Engine と Manufacturing Connect の ご紹介
kongmingstrap
0
1.4k
Tellus の衛星データを見てみよう #mf_fukuoka
kongmingstrap
0
1k
JAWS-UG 福岡 #16 re:Invent 現地に行った人のお話 #jawsugfuk #jawsug
kongmingstrap
0
810
AppMod の開発のイマを知るために現地に潜入した私が見たものは・・・? #GoogleCloudNext
kongmingstrap
0
900
Kong Gateway から読みとく、 API統合・API連携サービスの最新情報 #devio2023
kongmingstrap
0
2.3k
Other Decks in Technology
See All in Technology
現場を動かすAIエージェント#2_製造業現場でのAI活用から見た、ハマる罠と実践知
kintotechdev
2
210
AI時代の組織作り:チーム開発から「個人×AI」への移行と、持続可能な「開発資本」の築き方
ham0215
2
420
AI時代における医療情報システムのセキュリティ / Security of Healthcare IT Systems in the AI Era
henryofficial
0
130
Shared Signals Framework 仕様解説
oidfj
0
300
Microsoft Entra Kerberos で実現するクラウド デバイス管理
tamaiyutaro
2
660
セキュリティ専任チームなしで攻撃を先回りするSREが実践したSIEM on Amazon OpenSearch Service
cscengineer
PRO
1
710
AWS基盤改善を支える 私たちの理念と行動指針
kentosuzuki
0
140
AWS構成から考えるWebセキュリティ ― WordPressの構築経験から考える公開範囲と更新運用【JAWS FESTA 2026 in AKITA】
cscengineer
PRO
2
380
内製アプリとClaudeスキルのセキュリティチェック、 Backlogの課題で回しています。
ayaka_egaaa
0
160
「いつか使う」の「いつか」は来ない 〜AI駆動開発における「作らない」判断について〜
ikki0006
0
170
In-Context Learning再入門。ICLの勾配降下的解釈の研究動向を追ってみる。
dai08srhg
1
760
eBPF 簡介 2026 版
shunghsiyu
0
190
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Designing for Performance
lara
612
70k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.2k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.7k
GraphQLとの向き合い方2022年版
quramy
50
15k
Everyday Curiosity
cassininazir
0
400
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
520
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
380
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Transcript
2017/06/21 ARKitʹ৮ͬͯݟͨ݁Ռ ໘ന͍ൃද͕Ͱ͖Δ͔ͱࢥͬͨͷ͕ͩ ͦΜͳ͜ͱແ͔ͬͨ… ͰؤுͬͯLT͢Δ WWDC After Party 2017 @Ebisu
About Me
• ాத ໌ (Takaaki Tanaka) • Ϋϥεϝιουגࣜձࣾ • @kongmingtrap •
Swift / Objective-C / Scala / JavaScript … • GyazSquare / GitHub
WWDC
WWDC • ॳWWDC • ॳւ֎ • ӳޠ…?
WWDC • ฐࣾͷฏਅޗ͞Μ͕WWDC 2015ʹࢀՃ • ಉ͘͡ࢀՃ͍ͯͨ͠ࢣঊ͕ฏਅޗ͞Μͱ ᬍ • Ϋϥεϝιου͕ΤϯδχΞΛืू͍ͯ͠ Δ͜ͱΛΔ
• Ϋϥεϝιουస৬Λܾҙ
ؓٳ
WWDC17
Main topic • ARKit • eGPUKit • Core ML •
Home Kit • HomePod
Main topic • ARKit • eGPUKit • Core ML •
Home Kit • HomePod
AR
AR
WWDC
Demo IUUQTXXXZPVUVCFDPNXBUDI WN$P6YH0P. IUUQTJUVOFTBQQMFDPNKQBQQVGPDBNFSBE JE NU
AR • AVFoundation • Core Location • Heading • Core
Motion • Gyro scope • Accelerometer
AR • AVFoundation • Core Location • Core Motion •
Gyro scope • Accelerometer
AR $FMFTUJBM0CTFSWBUJPO7JFXFS
None
None
ARKit • ARKit • SceneKit
ARKit • ARKit • SceneKit
ARSession • ΧϝϥػೳɺϞʔγϣϯݕͳͲแׅͯ͠ ߦ͏manager object (shared) • ैདྷͷํ๏ͩͱɺόοςϦʔফඅ͕ܹ͔ͬ͠ ͕ͨɺframeworkϨϕϧͰ࠷దԽ͍ͯ͠Δ ʢΒ͍͠ʣ
ARSession
ARSession
Plane Detection
Plane Detection // configure session if let worldSessionConfig = sessionConfig
as? ARWorldTrackingSessionConfiguration { worldSessionConfig.planeDetection = .horizontal session.run(worldSessionConfig, options: [.resetTracking, .removeExistingAnchors]) }
ARAnchor • ARPlaneAnchor • ARAnchorͷαϒΫϥε • ݕग़͞Εͨฏ໘ • ݕग़͞ΕͨΒARSCNViewDelegateͷϝιου ʹ௨͞ΕΔ
• renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor)
ARSCNViewDelegate func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor:
ARAnchor) { DispatchQueue.main.async { if let planeAnchor = anchor as? ARPlaneAnchor { self.addPlane(node: node, anchor: planeAnchor) self.checkIfObjectShouldMoveOntoPlane(anchor: planeAnchor) } } }
ARPlaneAnchor + SCNNode func addPlane(node: SCNNode, anchor: ARPlaneAnchor) { let
pos = SCNVector3.positionFromTransform(anchor.transform) textManager.showDebugMessage("NEW SURFACE DETECTED AT \ (pos.friendlyString())") let plane = Plane(anchor, showDebugVisuals) planes[anchor] = plane node.addChildNode(plane) textManager.cancelScheduledMessage(forType: .planeEstimation) textManager.showMessage("SURFACE DETECTED") if virtualObject == nil { textManager.scheduleMessage("TAP + TO PLACE AN OBJECT", inSeconds: 7.5, messageType: .contentPlacement) } }
ARPlaneAnchor + SCNNode func updatePlane(anchor: ARPlaneAnchor) { if let plane
= planes[anchor] { plane.update(anchor) } }
ARPlaneAnchor + SCNNode private func updateOcclusionNode() { guard let occlusionNode
= occlusionNode, let occlusionPlane = occlusionNode.geometry as? SCNPlane else { return } occlusionPlane.width = CGFloat(anchor.extent.x - 0.05) occlusionPlane.height = CGFloat(anchor.extent.z - 0.05) occlusionNode.position = SCNVector3Make(anchor.center.x, occlusionPlaneVerticalOffset, anchor.center.z) }
Recap • ฏ໘ݕग़ʢਫฏํʣͷΈ • ARΑΓฏ໘ݕग़ػೳͷํ͕ϝΠϯ • Ϟʔγϣϯͷैࠓޙʹظ • όοςϦʔফඅʹؔͯ͠ܭଌͯ͠Έ͍ͨ
WWDC17 IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZ XXED *OUSPEVDJOH"3,JU"VHNFOUFE3FBMJUZGPSJ04
Thank you!