Ground Plane User Guide

Vuforia Image

Vuforia Ground Plane as part of Smart Terrain enables digital content to be placed on horizontal surfaces in your environment, such as floors and tabletops. It supports the detection and tracking of horizontal surfaces, and also enables you to place content in mid-air using  Anchor Points.

Ground Plane provides an ideal solution for developers to create AR experiences ranging from in-home furniture shopping apps to games and design visualizations.

 

Capabilities:

  • Detection and tracking of horizontal surfaces
  • Anchor creation and tracking
  • Scale Approximation
  • 6 Degree of Freedom (6 DoF) Positional Tracking
  • Surface hit-testing to precisely place content on surfaces
  • Integration of all other Vuforia Trackers and Trackable types

 

Supported Devices and Core Enablers

Ground Plane leverages Vuforia Fusion to utilize the best core technologies available on each device, and supports both native and Unity app development for Android and iOS. See: Ground Plane Supported Devices for a list of officially supported devices.

Use Cases:

Product Visualizations  

Place 3D product models in everday settings, such as the home or office, rendering them at their correct size. You can even adjust the virtual lighting to reflect ambient conditions using the Light Estimation API. AR is an especially effective solution for presenting home furnishings and appliances, enabling a try before you buy experience for consumers.

Design Review

Enable users to walk around your models and look inside.  AR design reviews enable stakeholders to get a more realistic impression of the final design and are a great way to present design iterations. They've become a popular tool in the automotive industry where changes to physical models are costly and time consuming.

Games

Create AR games that realistically interact with real-world objects and environments. Ground Plane makes it easy to design AR games that are easy and fun for users to experience. 

 

Supported Environments

Ground Plane utilizes images from the device camera to understand the basic geometry of your environment. Therefore it is necessary to stage Ground Plane experiences in settings that enable the camera to accurately capture the details of the surroundings. 

Recommendations:

  • Stable lighting conditions
  • Moderate lighting - not too bright or too dark
  • Avoid glare and dark shadows
  • Surface details help to reveal geometry and improve accuracy and performance

Ground Plane will work both indoors and outdoors, in a variety of conditions, if these recommendations are followed.

Tip: The Ground Plane hit-test result will tell you when an area is viable for content placement. If you see that the user is unable to find a good area, advise them on how to identify a suitable setting. Advice the user to find a horizontal empty space in front to place an augmentation.

API Overview

Ground Plane utilizes the Vuforia Smart Terrain API in conjunction with Device Tracking.

The primary classes involved in a Ground Plane experience are:

Trackers

SmartTerrain - responsible for finding and tracking Surfaces and executing hit tests in the World Coordinate Space.

PositionalDeviceTracker - maintains position and orientation in world space for the device and Anchors.

Trackables

Anchor - a 6 DoF point in space that is tracked by the PositionalDeviceTracker. Anchor points are persistent locations in the world space that are continually tracked as the world space grows and changes in a Ground Plane session. Use an Anchor when you want your content to be positioned as accurately as possible at a specific location in the world.

Vuforia Image

Control Flow of a Ground Plane App

The high-level control flow of a Ground Plane App consists of the following steps:

  • Initialize Vuforia AR
  • Start the AR Session
  • Initialze and Configure the Trackers required for Ground Plane (PositionalDeviceTracker and SmartTerrain)
  • Create an Anchor in real-world space (either based on hit test or relative to camera)
  • Place your content in the anchor
  • For Every Frame:
    • Adjust the rendering camera postion based on the DeviceTrackable Pose
    • Adjust the transform of the content based on an updated Anchor position
  • Deinitialize the Trackers (PositionalDeviceTracker and SmartTerrain)
  • Deinitialize Vuforia AR

For more details on the control flow of a Ground Plane app, please refer to the Ground Plane Native Sample User Guide

UX Concepts and their application

Surface Indicators

Ground Plane relies on visual details in the environment to detect and track planes, as well as the user's position in the world. A Surface Indicator is a valuable UI tool to inform users of where and when they can place content in their setting. The Vuforia Ground Plane samples demonstrate the use of a Surface Indicator and show how to change its presentation to reflect surface conditions.

Surface Indicators can support multiple modes of content placement - whether content should be placed automatically in response to a user event, or interactively where a user selects to place that content. 

Hit Testing

The Smart Terrain Tracker performs 'hit tests' to find Surfaces in the world. Hit testing is accomplished by projecting (casting) a virtual ray into the world, at a specific location, to identify whether it intersects with a surface. The result (test) indicates whether a surface has been found and where it is. Hit testing informs the Surface Indicator by providing results indicating the presence and location of surfaces.

On devices where supported hit tests take detected horizontal surfaces into account. On all other devices a plane is defined using an expected device height provided via API and the device's sensors.

UX Modes

  • Automatic hit testing - hit tests are performed repeatedly at short intervals against the area in the center of the camera view. This occurs automatically so that users don't have to select surfaces manually. The Automatic UX Mode provides the easiest UX for users to understand.
  • Interactive hit testing - hit tests are performed against the area that a user selects on their device screen. This provides more flexibility for content placement but requires that users understand which surfaces can be supported. 
  • Mid-air content positioning - content can be placed at a defined position relative to the device. This is done programmatically and requires that the world space has been initialized beforehand, to understand where that relative position exists in the setting. The Ground Plane samples provide a UI for mid-air placement that uses a cross-hairs metaphor. The design of your mid-air placement UI can be customized to suit a variety of use cases.