HoloKitSDK is the Unity plugins to build AR/MR apps for HoloKit.
- Stereosopic rendering
- Calibration profile for different holokits and phones
- It's the key to have a correct Holokit experience. Wrong calibration may lead to eye discomfort.
- AR/MR Mode Switch
- You can easily switch betwen AR and MR mode.
- Screen Brightness Control.
- Make sure that the brightness of phone screen are the best for the current environment during the MR experience.
- Universal wrapper for ARCore and ARKit.
- HoloKit SDK integrates both ARCore and ARKit. It will seamlessly compile to Android and iOS devices. You don't need worry about the switch between platforms.
- [ARKit v1.5 or above] Horizontal and vertical plane detection.
- [ARKit v1.5 or above] Image marker detection.
- Feb 23, 2018. Added ARcore 1.0 support.
- Feb 23, 2018. Added ARKit 1.5 beta support.
- iOS (ARKit): iPhone 6S, 7, 8, 6S+, 7+, 8+, X.
- Android (ARCore): Google Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Asus Zenfone AR, LG V30, OnePlus 5, Samsung Galaxy S7, S7 Edge, S8, S8+, Note8. See more: the full list of supported Android devices)
- For ARKit 1.5 beta and ARCore 1.0, please checkout "master" branch.
- For Google Tango, please checkout "tango" branch.
- For Apple iOS (ARKit), please checkout "ios" branch.
- For Android (ARCore), please checkout "android" branch.
- You must be an Apple Developer.
- An iOS device that supports ARKit v1.5 and running iOS 11.3.
- XCode 9.3. You need to log in to download it with your Apple Developer account.
- Unity 2017.3.1f3 or later. Make sure you installed iOS components.
- Change the target platform to iOS and click Switch Platform.
- Open "File" -> "Build Settings" and click "Build".
Make sure that the paramaters below is correct. Player Settings -> Other Settings
- Artectecture: ARM64
- Camera Usage Description: "Blahblah...".
- Target minimum iOS version: 11.3
- An Android device that supports ARCore with Android SDK version 7.0 (API Level 24) or higher.
- Prepare your device
- Enable developer options
- Enable USB debugging
- Android Studio with Android SDK installed.
- Unity 2017.3.1f3 or later. Make sure you installed Android components.
- Change the target platform to Android and click Switch Platform.
- Click Player Settings to open the Android Player Settings. Then change the following settings:
- Other Settings > Multithreaded Rendering: Off
- Other Settings > Package Name: a unique app ID that looks like a Java package name, such as com.example.helloAR
- Other Settings > Minimum API Level: Android 7.0 or higher
- Other Settings > Target API Level: Android 7.0 or 7.1
- XR Settings > ARCore Supported: On
- Import "HoloKitSDK" folder under "Assets" folder into a new Unity project.
- Open the example scene "HoloKitSDK/Examples/HoloKitSample_Universal".
- Build your scene and run! This scene can run on both iOS and Android.
- After the app runs, you should see a cube floating in the air somewhere. You may gaze at the sphere.
- The app detects planes, and you may click on the screen to place the cube on the plane.
- You may touch the small "AR/MR" button to switch to HoloKit mode.
- Import "HoloKitSDK" folder under "Assets" folder into a new Unity project.
- Open the example scene "HoloKitSDK/Scenes/HoloKitSample_ARKit1.5".
- You can detect the vertical plane.
- You can detect the image marker under "Assets/UnityARKitPlugin/Examples/ARKit1.5/UnityARImageAnchor/ReferenceImages/unitylogowhiteonblack.png".
- Create a new scene in Unity.
- Drag and drop everything in "HoloKitSDK/Prefabs/Universal" to the scene.
- Put anything you like under "HoloKitPlacementRoot", and your model should have a comparable size as "DebugCube". Then feel free to turn off or delete "DebugCube".
- Build your scene and run!
- If you don't like the ambient light, please disable HoloKitAmbientLight in your scene.
- The most basic component to have your game responds to ARKit tracking.
- It has a child VideoSeeThroughCamera that renders video seethrough VR experience. There are two extra cameras "Left Eye", "Right Eye" as its children, to render stereo for HoloKit. In "HoloKitCameraRig" object, you can set default see through mode and the key for toggling modes.
- To generate collidable planes when ARKit detects a plane. Optionally, you can set a Plane Prefab as its property to visualize the generated planes.
- To visualize point clouds that ARKit detects, for debugging purpose.
- A directional light, which intensity is controlled by ARKit. The intensity will adjust automatically based on the current environment's lighting in reality.
- A convenient prefab to help you place your objects on the ground. See "How to place your object on the ground" for details.
- A convenient prefab for you to emit gaze events. See "How to respond to gaze events" for details.
- Drag "HoloKitPlaneGenerator" and "HoloKitPlacementRoot" to your scene.
- Put your object under "HoloKitPlacementRoot", and your object should have a comparable size as "DebugCube". Then feel free to turn off or delete "DebugCube".
- Set the input key for placement.
- Backup your device. See "Prepare your device before you update to beta software" section in About iOS beta software
- Follow iOS beta Software Installation Guide to install iOS 11.3 Beta.
You need one.
Make sure "Automatically manage signing" is checked, and you've logged in with your developer account in "XCode" -> "Preferences" -> "Accounts".
You shall read the How to Attribute section.
App developer shall mark with the words, "Works with HoloKit", or display either of the following two Holokit Logos in your app.
orFor academic work, please cite Monocular Visual-Inertial State Estimation for Mobile Augmented Reality, P.Li et al (ISMAR 2017, accepted)