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
So you want to build an ARKit app - AppDevCon
Search
Namrata Bandekar
March 15, 2019
1
1.6k
So you want to build an ARKit app - AppDevCon
Namrata Bandekar
March 15, 2019
Tweet
Share
More Decks by Namrata Bandekar
See All by Namrata Bandekar
So you want to build an ARKit app- Swiftfest 2019
namrata
0
47
DevFest Florida - Video Processing on Android
namrata
1
100
Video Processing on Android
namrata
2
2.4k
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
68
8.6k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
The Language of Interfaces
destraynor
151
23k
How to train your dragon (web standard)
notwaldorf
73
5.2k
Teambox: Starting and Learning
jrom
128
8.4k
Designing with Data
zakiwarfel
96
4.8k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
241
1.2M
Raft: Consensus for Rubyists
vanstee
132
6.3k
Code Reviewing Like a Champion
maltzj
514
39k
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
2
3.4k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
Transcript
SO YOU WANT TO BUILD AN ARKIT APP NAMRATA BANDEKAR
ARKIT BY TUTORIALS
PORTAL ARSKETCH
AUGMENTED REALITY EXPERIENCE ▸ Detect and understand environment geometry ▸
Render virtual 3D content ▸ User guidance
ARKIT ▸ Tracking ▸ Scene Understanding ▸ Light Estimation
TRACKING ▸ World Tracking ▸ Visual Inertial Odometry CORE MOTION
AVFOUNDATION
ARKIT ▸ Tracking ▸ Scene Understanding ▸ Light Estimation
SCENE UNDERSTANDING ▸ Plane detection ▸ Hit testing
ARKIT ▸ Tracking ▸ Scene Understanding ▸ Light Estimation
LIGHT ESTIMATION ▸ Estimate scene lighting information ▸ Render graphics
that looks more realistic Video by Mark Dawson on Youtube
ARKIT ▸ Tracking ▸ Scene Understanding ▸ Light Estimation
SCENEKIT ▸ Rendering Engine ▸ 3D Content ▸ Provides basic
AR view
GETTING STARTED ▸ Device Compatibility ▸ A9 processor or later
▸ iOS 11 and up ▸ Handle unsupported devices and iOS versions AR Optional AR Required
GETTING STARTED ▸ Device permissions
GETTING STARTED ▸ Privacy and data handling
ARKIT BASICS ▸ AR session configuration ▸ AR session management
▸ Session error handling
ARKIT BASICS ▸ AR session configuration ▸ AR session management
▸ Session error handling
AR CONFIGURATION
ARKIT BASICS ▸ AR session configuration ▸ AR session management
▸ Session error handling
ARKIT BASICS ▸ AR session configuration ▸ AR session management
▸ Session error handling
RUN OPTIONS
AR SESSION MANAGEMENT
ARKIT BASICS ▸ AR session configuration ▸ AR session management
▸ Session error handling
ARKIT BASICS ▸ AR session configuration ▸ AR session management
▸ Session error handling
SESSION ERROR HANDLING
ARKIT BASICS ▸ AR session configuration ▸ AR session management
▸ Session error handling
SCENEKIT FOR AR ▸ Provides ARSCNView ▸ Owns AR session
object
SCENEKIT FOR AR ▸ Hit testing functionality
SCENEKIT FOR AR ⚠ Private Queue
BEST PRACTICES AND TIPS
USER GUIDANCE ▸ Guide the user ▸ Show feature points
▸ Display detected plane IKEA Place Portal
TRACKING ▸ ARWorldTrackingConfiguration ▸ ARAnchors fix position in real world
⚓ ▸ Don’t use feature points to place content ▸ ARAnchors adjust for drift
TRACKING QUALITY ▸ Ambient light ▸ Static environments ▸ Surface
texture ▸ Sensor data quality
TRACKING QUALITY
TRACKING FEEDBACK
CAPTURING THE ARWORLDMAP ▸ Dense feature points ▸ Multiple points
of view ▸ No motion - static environment ▸ Use WorldMappingStatus ▸ Don’t display UI until ready
MAPPING QUALITY
TESTING IN THE REAL WORLD ▸ Low lighting ▸ Smooth
surfaces ▸ Moving device fast while mapping ▸ Motion in environment
PERFORMANCE CONSIDERATIONS ▸ Initialization takes some time ▸ Battery drain
▸ Limit the number of anchors ⚓ ▸ Delegate callbacks on background threads ▸ Mapping from a distance doesn’t work ▸ Occlusion - no depth sensing
THANK YOU! @NAMRATACODES