SlideShare a Scribd company logo
1
Augment your reality with ARCore
Wajdi Ben Rabah
wajdibr.com/
@WajdiBenRabah
#MIXIT18
Augmented Reality
⬡A way of fusing the real and the virtual world by
overlaying digital data on to real-world analogue
views.
⬡Anyone with a mobile phone or laptop with built-in
video capability can augment and extend their reality
with easy-to-use applications.
1/39
Application areas
2/39
Games Marketing Fashion
Social media Health Tourism
Industry (cars, boats …) Press Ads
Virtual Reality
⬡Artificial environment,
presented as reality
alternative.
⬡Experienced senses:
⬡Hearing.
⬡Sight.
3/39
Headsets
4/39
VR vs AR
⬡AR:
⬡Combine the real world and virtual data in real time.
⬡Be interactive in real world.
⬡Using a 3D environment.
⬡VR:
⬡Alternative to the real world.
⬡Creation of content.
5/39
VR vs AR
6/39
Augmented Reality
7/39
ARCore
⬡Release : Dec’17
⬡ARCore is a platform for building augmented reality apps on Android.
⬡In simple words, ARCore is meant to enable us to interact with digital
content in a physical way.
8/39
ARCore
9/39
ARCore
⬡ The fruit of the tango project (beginning from 2014)
⬡ Portable (unlike tango)
10/39
ARCore
⬡ Motion tracking allows the phone to understand and track its position
relative to the world.
⬡ Environmental understanding allows the phone to detect the size and
location of flat horizontal surfaces like the ground or a coffee table.
⬡ Light estimation allows the phone to estimate the environment's
current lighting conditions.
11/39
ARCore released
⬡ A reference design for hardware to all OEMs.
⬡ Bigger cost for the OEMs.
12/39
ARKit
13/39
ARKit
⬡ VIO system with simple 2D plane detection.
⬡ Tracking position in real world in real time:
⬡ Visual tracking (camera): a pixel is mapped to a point in RW (30fp/s).
=>based on distance
⬡ IMU : Gyroscope+Accelerometer (reading 1k/s) =>based on acceleration.
⬡ Result in the Kalman filter: which one is providing the best estimation (ground
truth) and publish to ARkit SDK.
14/39
ARKit
⬡ Dead Reckoning : measure user motion/device
movement between IMU readings (a guess) : source of
error if it continues without a reset.
⬡ Simple plane detection: “sparse” point cloud
15/39
ARKit
⬡ How ?
⬡ One lens.
⬡ Normally 2 camera: 2 frames, calculate the distance with
the imu Dead reckoning.
⬡ 1 camera : capture one frame then move and capture the
second.
⬡ ++Error removal
16/39
ARKit
⬡ Couple VIO algorithms to sensors.
⬡ Calibrating to eliminate errors.
⬡ Full control of the production chain.
17/39
Optical calibration
⬡ Geometric calibration : FOV for example
⬡ Photometric calibration : color mapping, matching pixel
with real world point ...
18/39
ARCore vs ARKit
19/39
ARCore vs ARKit
⬡ ARKit has some advantages when it comes to tracking,
referring to a person’s phone understanding where it is in
3D space,
⬡ ARCore is better equipped for mapping a person’s
surrounding as well as more reliable tracking recovery.
20/39
Alternatives
21/39
Tango
⬡ Tango started out mostly focussed on tracking the motion of the phone in
3D space. Many of the original ideas were aimed at indoor mapping. It was
only later that AR & VR became the most popular use-cases.
⬡ Hardware reference design (like hololens) : hardware reference design
⬡ Source code based on what FlyBy done.
22/39
Sparse mapping
Depth perception
...Fish eyes
Depth camera
Tango
23/39
Hololens
Same software stack for VIO + HPU
HPU
Holographic Processing
Units
Software Stack
VIO
Hololens
24/39
Vuforia
⬡ Hardware independent
⬡ Cross platform
⬡ Generally you need a marker
25/39
Wikitude
⬡ Supported Platforms: Android, iOS, Smart Glasses.
26/39
OpenCV and other open source projects
⬡ Visual tracker only
⬡ some use of sparse maps
27/39
WEBXR
WebXR makes it easier for developers to target all devices, just like when
the web browser debuted decades ago for the first time, making it easy to
target millions of devices with a single codebase.
28/39
WEBXR
29/39
Develop ARCore App
Android
if (session == null) {
Exception exception = null;
String message = null;
try {
switch (ArCoreApk.getInstance().requestInstall(this, !installRequested)) {
case INSTALL_REQUESTED:
installRequested = true;
return;
case INSTALLED:
break;
}
// ARCore requires camera permissions to operate. If we did not yet obtain
runtime
// permission on Android M and above, now is a good time to ask the user for it.
if (!CameraPermissionHelper.hasCameraPermission(this)) {
CameraPermissionHelper.requestCameraPermission(this);
return;
}
30/39
Android
// Create the session.
session = new Session(/* context= */ this);
} catch (UnavailableArcoreNotInstalledException
| UnavailableUserDeclinedInstallationException e) {
message = "Please install ARCore";
exception = e;
} catch (UnavailableApkTooOldException e) {
message = "Please update ARCore";
exception = e;
} catch (UnavailableSdkTooOldException e) {
message = "Please update this app";
exception = e;
} catch (UnavailableDeviceNotCompatibleException e) {
message = "This device does not support AR";
exception = e;
} catch (Exception e) {
message = "Failed to create AR session";
exception = e;
}
31/39
Android
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
GLES20.glClearColor(0.1f, 0.1f, 0.1f, 1.0f);
// Prepare the rendering objects. This involves reading shaders, so may throw an IOException.
try {
// Create the texture and pass it to ARCore session to be filled during update().
backgroundRenderer.createOnGlThread(/*context=*/ this);
planeRenderer.createOnGlThread(/*context=*/ this, "models/trigrid.png");
pointCloudRenderer.createOnGlThread(/*context=*/ this);
virtualObject.createOnGlThread(/*context=*/ this, "models/andy.obj", "models/andy.png");
virtualObject.setMaterialProperties(0.0f, 2.0f, 0.5f, 6.0f);
virtualObjectShadow.createOnGlThread(
/*context=*/ this, "models/andy_shadow.obj", "models/andy_shadow.png");
virtualObjectShadow.setBlendMode(BlendMode.Shadow);
virtualObjectShadow.setMaterialProperties(1.0f, 0.0f, 0.0f, 1.0f);
} catch (IOException e) {
Log.e(TAG, "Failed to read an asset file", e);
}
}
32/39
Unity3D
⬡Unity is a platform for
creating experiences in 2D
and 3D.
⬡SDK : a software
development kit for
ARCore.
33/39
ARCore Unity
⬡ Point cloud : Contains a set of observed 3D points and
confidence values.
⬡ Arcore device : contains the session and tracking type
⬡ Change to android : build settings
⬡ minimum api 7.0
⬡ multithread rendering : disabled (cpu)
⬡ xr settings : arcore support
⬡ Download arcore services and proceed to install (via adb
for example)
34/39
Blocks
35/39
Demo
36/39
Download the project
37/39
https://github.com/wajdibr/arcore_programmez
Future of AR
⬡ Depth camera : power consumption, sunlight
⬡ Deep learning : outdoor relocalization
⬡ Large area mapping
⬡ Inputs
⬡ 3D reconstruction : shape of objects in real world :
collision/occlusion
38/39
Future of AR
⬡Limitations: low light/excessive motion/flat surfaces with
no textures/lose sensors (camera/gyro/accelerometer)/
plane detection takes some time.
⬡Unite Austin 2017: Cross platform AR apps
⬡Multiplayer ar: tanks network demo
39/39
References
⬡https://developer.vuforia.com
⬡https://developers.google.com/ar/
⬡http://www.augment.com/
⬡https://medium.com/inborn-experience/google-arcore-a-detailed-sketch-up-5af431472d07
⬡https://medium.com/super-ventures-blog/why-is-arkit-better-than-the-alternatives-af8871889d6a
⬡https://www.youtube.com/watch?v=rFbcOGuDMPk
⬡https://www.youtube.com/watch?v=qBdx7ADMOq8
⬡https://www.youtube.com/watch?v=vRmTn25xm7Q
⬡https://www.youtube.com/watch?v=oNekBgognFE
45
Thank you !
@WajdiBenRabah

More Related Content

PPTX
virtual reality Barkha manral seminar on augmented reality.ppt
PPTX
virtual reality | latest |best presentation
PPTX
Virtual reality (vr) presentation
PPT
Virtual Reality
PPTX
Virtual reality
PPTX
Virtual Reality vs Augmented Reality - Knowing the Difference
PPTX
Virtual reality
DOCX
AUGMENTED REALITY Documentation
virtual reality Barkha manral seminar on augmented reality.ppt
virtual reality | latest |best presentation
Virtual reality (vr) presentation
Virtual Reality
Virtual reality
Virtual Reality vs Augmented Reality - Knowing the Difference
Virtual reality
AUGMENTED REALITY Documentation

What's hot (20)

PPTX
METAVERSE final ppt.pptx
PDF
Screenless displays seminar report
PPTX
Augmented And Virtual Reality
PPT
Virtual Reality
PPTX
Mixed Reality Technology ppt
PPTX
Virtual Reality
PPTX
Mixed reality
PDF
Virtual reality ppt
PPTX
Virtual reality
PPTX
Virtual reality VS Augmented Reality
PPTX
Virtual Reality-Seminar presentation
PPTX
Augmented reality
PPTX
Augmented reality ppt
PPTX
What Is Augmented Reality or AR?
PPTX
Virtual Reality
PPTX
Augmented reality ppt
PPTX
Augmented Reality - 8th Mass Media
PPT
Silverlight
PPT
Eye gaze communication
PDF
Lecture 9 AR Technology
METAVERSE final ppt.pptx
Screenless displays seminar report
Augmented And Virtual Reality
Virtual Reality
Mixed Reality Technology ppt
Virtual Reality
Mixed reality
Virtual reality ppt
Virtual reality
Virtual reality VS Augmented Reality
Virtual Reality-Seminar presentation
Augmented reality
Augmented reality ppt
What Is Augmented Reality or AR?
Virtual Reality
Augmented reality ppt
Augmented Reality - 8th Mass Media
Silverlight
Eye gaze communication
Lecture 9 AR Technology
Ad

Similar to Augment your reality with ARCore ! (20)

PDF
Giovanni Laquidara - Hello ARCore - Codemotion Milan 2017
PPTX
State of Mobile AR - Mobile Week 2022 by Suyash Joshi.pptx
PDF
Augmented reality
PPTX
AR VR Meetup in Göteborg 2017-12-06
PDF
Mobile Augmented Reality Development tools
PPTX
Philipp Nagele (Wikitude): Context Is for Kings: Putting Context in the Hands...
PPTX
Oleg Novosad - "Ar kit vs arcore" - Lviv GameDev Mixer (November)
PPTX
Developing Immersive Experiences with ARCore
PPTX
Building AR and VR Experiences for Web Apps with JavaScript
PDF
Mobile Augmented Reality Development Tools
PPTX
Mixing reality with mobile AR, Дмитрий Щербина
PPTX
AR and VR development tools and platforms
PDF
Augmented Reality - state of the art
PPTX
Augmented World Expo 2013 Mobile AR SDK Comparison and Tutorial
PPTX
ARCore Shared 3d Worlds
PDF
ARCore Update
PDF
Google ARが提供する WebAR 101
PDF
Expand Reality Around You
PDF
Comp4010 Lecture7 Designing AR Systems
PDF
Writing Virtual And Augmented Reality Apps With Web Technology
Giovanni Laquidara - Hello ARCore - Codemotion Milan 2017
State of Mobile AR - Mobile Week 2022 by Suyash Joshi.pptx
Augmented reality
AR VR Meetup in Göteborg 2017-12-06
Mobile Augmented Reality Development tools
Philipp Nagele (Wikitude): Context Is for Kings: Putting Context in the Hands...
Oleg Novosad - "Ar kit vs arcore" - Lviv GameDev Mixer (November)
Developing Immersive Experiences with ARCore
Building AR and VR Experiences for Web Apps with JavaScript
Mobile Augmented Reality Development Tools
Mixing reality with mobile AR, Дмитрий Щербина
AR and VR development tools and platforms
Augmented Reality - state of the art
Augmented World Expo 2013 Mobile AR SDK Comparison and Tutorial
ARCore Shared 3d Worlds
ARCore Update
Google ARが提供する WebAR 101
Expand Reality Around You
Comp4010 Lecture7 Designing AR Systems
Writing Virtual And Augmented Reality Apps With Web Technology
Ad

Recently uploaded (20)

PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Electronic commerce courselecture one. Pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Cloud computing and distributed systems.
PPTX
A Presentation on Artificial Intelligence
PDF
cuic standard and advanced reporting.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Encapsulation theory and applications.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Mobile App Security Testing_ A Comprehensive Guide.pdf
Spectral efficient network and resource selection model in 5G networks
Electronic commerce courselecture one. Pdf
Review of recent advances in non-invasive hemoglobin estimation
Cloud computing and distributed systems.
A Presentation on Artificial Intelligence
cuic standard and advanced reporting.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Per capita expenditure prediction using model stacking based on satellite ima...
Dropbox Q2 2025 Financial Results & Investor Presentation
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Machine learning based COVID-19 study performance prediction
The Rise and Fall of 3GPP – Time for a Sabbatical?
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Encapsulation theory and applications.pdf
Understanding_Digital_Forensics_Presentation.pptx
Encapsulation_ Review paper, used for researhc scholars

Augment your reality with ARCore !