Vuforia Ground Plane 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 Use Cases
Ground Plane is an ideal solution for developers to create AR experiences ranging from in-home furniture shopping apps to games and design visualizations.
Place 3D product models in everday settings, such as the home or office, while 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 a try before you buy experience for consumers.
AR design reviews enable stakeholders to get a more realistic impression of the final design at real scale and are a great way to present design iterations. It can be a successful tool in the automotive industry where changes to physical models are costly and time consuming.
Create AR games that realistically interact with real-world objects and environments. Ground Plane makes it easy to design ad-hoc AR games that are immersive and fun for users.
Supported Devices and Core Enablers
Ground Plane leverages Vuforia Fusion to utilize the best core technologies available on each device, and is supported in both native and Unity app development for Android, iOS, and UWP. Ground Plane is only compatible with devices supported by Platform Enablers (ARKit/ARCore) or devices that have been specifically calibrated by Vuforia. See Recommended Devices for a list of officially supported devices.
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.
For a well performing Ground Plane user experience consider having:
- 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, when these recommendations are followed.
TIP: The Ground Plane hitTest 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 i.e. a horizontal clear space in front of them with room for an augmentation.
Using a Ground Plane
Ground Plane uses only the surrounding environment to detect, augment, and track content. All that is needed is a supported environment and a supported device to enable the Anchor Observer and Device Pose Observer capabilities.
- Anchor Observer - responsible for finding and tracking surfaces and executing hitTests in the World Coordinate Space.
- Device Pose Observer - maintains position and orientation in world space for the device and Anchors.
Once a surface is detected, you can place Anchors and mid-air Anchors with attached content for users to experience and interact with.
The Introduction to Ground Plane in Unity with the Vuforia Core Samples is a great places to start.
Since Ground Planes are not centered around and activated by a Vuforia Target, we present here a few UX concepts to aid in developing a markerless AR experience.
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 UI tool to inform users of where and when they can place content in their setting. The Vuforia Ground Plane sample demonstrate the use of a Surface Indicator and shows 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 and suitable detected surface size, or interactively where a user marks where to place content.
- The indicator shall be aligned with the surface, to indicate placement. We recommend using indicators that represent a known scale to the end-user, e.g. a square of 1m² when placing larger objects. Also, the indicator ideally reflects an orientation, avoid full circular indicators or use a notch or arrow to point-out a specific placement direction. A good practice is also to use a ‘ghost’ of the object to be placed, to indicate size, orientation, and shape of the placement. A placement (“dropping the object”) can help to manifest the action of placement.
The Anchor Observer (AnchorBehaviour) performs hitTests to find surfaces in the world.
- HitTesting 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.
HitTesting informs the Plane Finder Behaviour by providing results indicating the presence and location of surfaces on devices where supported hitTests take detected horizontal surfaces into account. On all other devices a plane is defined using an expected device height position that is provided via the API and the device's sensors.
- 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 do not 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.
Control Flow of a Ground Plane App
Developing a seamless AR experience for Ground Plane, which does not have a Vuforia target to realign to if the app is paused or interrupted, require to consider and employ Best Practices for Continued AR Experiences that allows your app to ‘remember’ prior sessions and the placement of content when resuming from a paused or interrupted experience.
Ground Plane API Overview
Learn more in the Ground Plane API Overview article about the available API for Ground Plane and app workflow for using the Anchor Observer, Device Pose Observer, and creating anchors from poses or hitTests.
The Ground Plane feature is dependent on tracking the device and its position. The Device Pose Observer tracks via Vuforia Fusion which automatically detects and utilizes the platform enablers.