Slide 1

Slide 1 text

SO YOU WANT TO BUILD AN ARKIT APP NAMRATA BANDEKAR

Slide 2

Slide 2 text

ARKIT BY TUTORIALS

Slide 3

Slide 3 text

PORTAL ARSKETCH

Slide 4

Slide 4 text

AUGMENTED REALITY EXPERIENCE ▸ Detect and understand environment geometry ▸ Render virtual 3D content ▸ User guidance

Slide 5

Slide 5 text

ARKIT ▸ Tracking ▸ Scene Understanding ▸ Light Estimation

Slide 6

Slide 6 text

TRACKING ▸ World Tracking ▸ Visual Inertial Odometry CORE MOTION AVFOUNDATION

Slide 7

Slide 7 text

ARKIT ▸ Tracking ▸ Scene Understanding ▸ Light Estimation

Slide 8

Slide 8 text

SCENE UNDERSTANDING ▸ Plane detection ▸ Hit testing

Slide 9

Slide 9 text

ARKIT ▸ Tracking ▸ Scene Understanding ▸ Light Estimation

Slide 10

Slide 10 text

LIGHT ESTIMATION ▸ Estimate scene lighting information ▸ Render graphics that looks more realistic Video by Mark Dawson on Youtube

Slide 11

Slide 11 text

ARKIT ▸ Tracking ▸ Scene Understanding ▸ Light Estimation

Slide 12

Slide 12 text

SCENEKIT ▸ Rendering Engine ▸ 3D Content ▸ Provides basic AR view

Slide 13

Slide 13 text

GETTING STARTED ▸ Device Compatibility ▸ A9 processor or later ▸ iOS 11 and up ▸ Handle unsupported devices and iOS versions AR Optional AR Required

Slide 14

Slide 14 text

GETTING STARTED ▸ Device permissions

Slide 15

Slide 15 text

GETTING STARTED ▸ Privacy and data handling

Slide 16

Slide 16 text

ARKIT BASICS ▸ AR session configuration ▸ AR session management ▸ Session error handling

Slide 17

Slide 17 text

ARKIT BASICS ▸ AR session configuration ▸ AR session management ▸ Session error handling

Slide 18

Slide 18 text

AR CONFIGURATION

Slide 19

Slide 19 text

ARKIT BASICS ▸ AR session configuration ▸ AR session management ▸ Session error handling

Slide 20

Slide 20 text

ARKIT BASICS ▸ AR session configuration ▸ AR session management ▸ Session error handling

Slide 21

Slide 21 text

RUN OPTIONS

Slide 22

Slide 22 text

AR SESSION MANAGEMENT

Slide 23

Slide 23 text

ARKIT BASICS ▸ AR session configuration ▸ AR session management ▸ Session error handling

Slide 24

Slide 24 text

ARKIT BASICS ▸ AR session configuration ▸ AR session management ▸ Session error handling

Slide 25

Slide 25 text

SESSION ERROR HANDLING

Slide 26

Slide 26 text

ARKIT BASICS ▸ AR session configuration ▸ AR session management ▸ Session error handling

Slide 27

Slide 27 text

SCENEKIT FOR AR ▸ Provides ARSCNView ▸ Owns AR session object

Slide 28

Slide 28 text

SCENEKIT FOR AR ▸ Hit testing functionality

Slide 29

Slide 29 text

SCENEKIT FOR AR ⚠ Private Queue

Slide 30

Slide 30 text

BEST PRACTICES AND TIPS

Slide 31

Slide 31 text

USER GUIDANCE ▸ Guide the user ▸ Show feature points ▸ Display detected plane IKEA Place Portal

Slide 32

Slide 32 text

TRACKING ▸ ARWorldTrackingConfiguration ▸ ARAnchors fix position in real world ⚓ ▸ Don’t use feature points to place content ▸ ARAnchors adjust for drift

Slide 33

Slide 33 text

TRACKING QUALITY ▸ Ambient light ▸ Static environments ▸ Surface texture ▸ Sensor data quality

Slide 34

Slide 34 text

TRACKING QUALITY

Slide 35

Slide 35 text

TRACKING FEEDBACK

Slide 36

Slide 36 text

CAPTURING THE ARWORLDMAP ▸ Dense feature points ▸ Multiple points of view ▸ No motion - static environment ▸ Use WorldMappingStatus ▸ Don’t display UI until ready

Slide 37

Slide 37 text

MAPPING QUALITY

Slide 38

Slide 38 text

TESTING IN THE REAL WORLD ▸ Low lighting ▸ Smooth surfaces ▸ Moving device fast while mapping ▸ Motion in environment

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

THANK YOU! @NAMRATACODES