When I was first needed to start using ARCore, I started with making little research on the web to find out what is it exactly and what it can do,
I found out that there are three things that ARCore focuses on:
Motion tracking: The ability of the device to determine the position and orientation of the phone as it moves.
Environmental understanding: Detecting of horizontal surfaces like a table or floor in order to place the AR object on.
Light estimation: Estimate and detection the light conditions in the environment to apply AR objects.
I downloaded a demo from Google Play store to my S8, (which is one of the devices that ARCore can run on, the other one is Pixel) to get a real experience of the ARCore platform and not just watching videos of it on YouTube.
The demo let you place the Android robot on horizontal surfaces (bullet 2 above), I could also see the different sizes of the objects when I place them close or far from me (bullet 1 above).
Google let you choose what platform you want to develop the ARCore (https://developers.google.com/ar/),
I preferred using Unity because Unity has its assets store which you can download 3D objects instead of creating them with OpenGL if I would choose the other option which is Android Studio.
Then I wanted to switch the Android robot with a different object, I found a quick guide that uses the ARCore SDK of Unity and explains exactly how to do this.
The guide was really good, explains how to make the detection of the surface (Point Cloud), plenty of small yellow dots that let you see that the device is searching for flat surfaces.
Just before the end of the guide, the author explains how to insert the 3D asset from Unity assets store to the project,
It was a small kitty with animations.
After I installed the APK of the ARCore project to my device and played with this awhile (including in the train on the way home), in the next day I tried to pick other assets from the store and switch the kitty, I downloaded a soccer ball, then a small car, both of them had no animations at all.
Finally I downloaded a soccer player with few animations, when I added the asset and tested it on the device, I didn’t see any animation unlike the model of the kitty which had a few, finally I figured out that I should make a Prefab (which is like a GameObject but quite different) and add an Animation Controller to it.
The animation controller is pretty cool, I could choose the order of the animation to be started, for example, that the player will first jump, then run and finally slide, and a repeat of these 3 actions over and over.
I did pretty much the same with ARKit (which is Apple’s augmented reality platform).
I had a really nice and fun experience with augmented reality and I truly think that in the next few years augmented reality will make our life much easier in many ways.