Gear VR

Gear VR
Aside from the Gear VR headset, the Innovator Edition package includes a 16GB MicroSD card and adapter, a screen cleaning cloth, and a soft-shell travel case.



The Mobile SDK from Oculus can be found here:

Virtual Reality

Unlike augmented reality, virtual reality (VR) is a simulated environment based on fictitious or real world locations. Virtual reality can also allow users to have a virtual presence in simulated environments. VR requires specialized hardware at a high cost for its head-mounted display and head tracking.

In 2012, the Oculus Rift released the Development Kit 1 as one of the first VR headsets of its kind. The Oculus Rift HMD is powered by a computer via USB and includes sensors such as an accelerometer, magnetometer and gyroscope. With an SDK and support for Mac, Windows, and Linux, the DK1 placed inexpensive VR in the hands of developers and gamers. Two years later, Oculus released Development Kit 2 while other HMDs aim to compete.

Google later launched Cardboard, a more accessible and inexpensive HMD. Cardboard allows any Android mobile device running the appropriate software (Jelly Bean and above) to simulate a VR experience similar to the Oculus Rift. However, most Android devices still have insufficient performance and displays that are not equipped to handle low latency VR.

When it comes to latency, I am referring to the display’s response time for head tracking. To make a VR experience as immersive as possible, every millisecond counts. 20ms or less is the ideal level of latency for reduced motion blur induced from head movement, enabling more realistic scenes with richer colors and contrast. Anything higher will have a noticeable lag. High latency can lead to a detached experience and contribute to a user’s motion sickness or dizziness.

Gear VR is the collaborative effort by Samsung and Oculus, and a cross between the Oculus Rift and Google Cardboard. The display is the Samsung Galaxy Note 4, a compatible android mobile device equipped with a ‘Quad HD’ display at 2560×1440 pixels per inch. This is the highest resolution screen seen on anything approaching a consumer VR headset. The OLED display also enables two key elements: a near-instant pixel switching time and the ability to produce truly black pixels. The mobile device is connected to the Gear VR via micro usb. While the display is powered by the mobile device, the Gear VR headset itself has built in Oculus Rift head-tracking module enabling more accurate and lower-latency tracking than Cardboard or other headsets that solely rely on standard mobile sensors.

vr comparison chart

Metaio Tutorial

Creating a New AR Project with Metaio and Unity

1. Create a new Unity project.
Right click in the Project panel and select Import Package→Custom Package to import metaioSDK Unity package.

2. Add a user layer
Click on Layers drop down at top-right corner of the Editor and select Edit Layers. Add a new layer in next available User Layer, e.g. call it “metaioLayer”.

3. Set Application Signature
After creating a signature, you could start creating your own application. Delete Main Camera object created by default and instantiate a metaioSDK prefab by dragging and dropping it into hierarchy view of your project. Click on metaioSDK to edit the signature in the inspector window.

4. Add Tracking Config
Create folder within StreamingAssets folder and include tracking configuration with respective patterns.
Select metaioSDK in the Hierarchy panel and then in the Inspector view select StreamingAssets in a drop down menu Select Configuration. Then you could simply drag and drop your tracking configuration file to the Inspector view.

5. Binding Unity game objects with tracking data
Instantiate a metaioTracker prefab by dragging and dropping it into hierarchy view of your project. Metaio Tracker instance is a reference in your Unity project to a corresponding COS in your tracking configuration file. Note that you have to set Coordinate System ID that corresponds to a valid COS in the currently set tracking data. Once it has been done, you could attach new game objects to metaioTracker instance.

6. Build and Run for Platform
Check Player settings and set application signature before building and running.

Manually add the following libraries and frameworks in Xcode:
…/Project Folder/Libraries/metaioSDK

If using Metaio SDK below 6.0, you must modify the sensors.h, sensors.m, and .plist for GPS support.

Screen Shot 2015-03-23 at 4.53.10 PM

Screen Shot 2015-03-23 at 4.52.56 PM

Screen Shot 2015-03-23 at 4.56.37 PM

If Android device was plugged into the computer via usb, Build and Run in Unity will place the android package file on your device for you. Otherwise, build a development build of the Unity app for Android Studio.

Metaio Example

For my thesis, I have begun developing a cross-platform augmented reality app with the Metaio SDK and Unity3D.

Metaio SDK

Metaio stands out from the other SDKs as it offers a variety of AR solutions. The free watermarked version of Metaio SDK is currently supported on Android, iOS and Windows with an additional plugin for development in Unity3D for Android, iOS, Windows and OS X platforms. There is also support for Google Glass and Epson Moverio BT-200 glasses. To remove the watermark on applications, you must purchase a Metaio license.

An alternative to the SDK is Metaio Creator, an augmented reality software that allows users to create a complete AR scenario without specialized programming knowledge through a drag and drop interface. Additionally, Metaio is the creator of Junaio, a free mobile AR browser available for Android and iOS devices. Junaio allows users to experience mobile augmented reality through multiple channels on their mobile devices. Another solution for creating interactive Augmented Reality is AREL (Augmented Reality Experience Language). The scripting is based on HTML5, XML and JavaScript. Arel can also be used for creating Junaio channel content.

Unity is a development platform for creating 2D/3D games and interactive experiences across multiple devices, such as iOS, Android, Desktop, or Game consoles. Below are some steps for setting up the Metaio Example project in Unity.

Getting Started

Sign up for a Metaio account to download the SDK. Download the latest version of Unity. You can also sign up as a unity developer here.

Application Identifier and Signature

Each application needs a unique signature. The Application Signature refers to a string that matches to the Application Identifier. If the Application Identifier is changed, the corresponding Application Signature has to be changed as well.

If registered as a Metaio developer, login to create an app signature under my apps tab.
Screen Shot 2015-03-25 at 12.10.14 AM
Metaio SDK signature

Example App in Unity

1. Start Unity and go to File->Open Project…, select the following directory: \_Unity\Example

2. Open Unity Example Project, go to File->Build Settings and select desired platform. Unity will automatically re-import required assets according to the platform.

Screen Shot 2015-03-25 at 12.11.10 AM

3. Set Application Identifier and Signature
Select Player settings to edit the Bundle Identifier.
Select MetaioSDK from the hierarchy and edit the SDK signature appropriately.

Screen Shot 2015-03-19 at 6.23.19 PM

Screen Shot 2015-03-18 at 1.10.32 PM

4. Click Build and Run
For IOS, open the XCode project exported from Unity. The SDK and some of its dependencies have to be added manually to the Xcode build settings. Go to Build Phases and add the following frameworks and libraries:


For Android, there are two options: Export a development build of the Unity app for Android Studio or plugin your Android device via usb and Build and Run to install the android package file directly to the device.

Note that you don’t necessarily have to test on a mobile platform – you can also just hit the Play button to run the examples directly in Unity Editor. Choose the platform in the Build Settings menu.

Augmented Reality

Augmented Reality (AR) allows for interaction with the physical world. Any element in the real world can be augmented by sound, video, image, or 3d object based on GPS data and image or marker recognition. These augmented elements are typically overlaid on a live camera feed via webcam or mobile device and now wearables such as “smart goggles/glasses”. There are many Software Development Kits (SDKs) available that provide tools and libraries to easily develop AR applications on multiple platforms, such as iOS, Android, Windows Mobile, BlackBerry, or Desktop (OSX, Windows, Linux). With that said, each SDK has its own features and limitations for its intended platforms.

Below is a list of features provided by the leading AR SDKs.