Model Targets enable apps built using Vuforia Engine to recognize and
track particular objects in the real world based on the shape of the object.
A wide variety of objects can be used as Model Targets, from home appliances and toys, to vehicles, to large-scale industrial equipment and even architectural landmarks.
To make a Model Target for a particular object you need to have access to 3D model data for the object, such as a 3D CAD model or a 3D scan of the object that you created or obtained from a 3rd party source or application.
The object must:
- Be geometrically rigid (i.e. it cannot be deformable or malleable).
- Present stable surface features (shiny surfaces are not supported).
For more information, see Model Targets Supported Objects & CAD Model Best Practices.
Model Targets are supported at runtime on the majority of Vuforia Engine platforms. See the Recommended Devices List for a list of devices that surely works with Model Targets.
For developers working with Unity, using Play mode with Model Targets require on Windows a GPU with Direct X 11 feature level 10 support, or macOS El Capitan or newer and a GPU with Metal support.
The Model Target Generator is supported on Windows and macOS. Please consult the Supported Versions table for more details.
Creating Model Targets
To get started, generate a Model Target using the Model Target Generator (MTG) application.
The Model Target Generator takes as input a 3D model representing the object you want to track, checks it for suitability and lets you configure it for optimal tracking with Guide Views and Advanced Views. The MTG generates a Vuforia Database which you can use with Vuforia Engine's Unity integration, or in your own native application, in order to track the object. See Creating Model Targets for a step-by-step guide to configuring Model Targets.
An Offline version of the MTG is available for special use cases. A Premium plan is required to utilize this tool. See Offline Model Target Generator for details.
To improve the Model Target tracking experience, Vuforia provides a motion hint and model type that is ideal for customizing the Model Target for unique use cases. For more information, refer to the Optimizing Model Target Tracking article.
The MTG allows users to simplify their models through a cloud-based process. Simplifying will result in optimized complex models for high performance and robust AR object tracking experiences. See How to Create Model Targets and Model Target Generator Data Processing for details.
Advanced Model Targets
Additionally, the MTG allows you to train your databases via a cloud-based deep learning training process, producing an Advanced Model Target Database. Such a database contains one or more Model Targets where each contains one or more Guide Views with a recognition range up to 360 degrees.
Advanced Model Targets support recognition and tracking of an object from anywhere in the defined recognition range without requiring the user to manually align the view with the physical object.
For more information, see the Advanced Model Target databases article.
A Model Target Web API is available automating the generation process or integrating it into your own workflow. With the web API, you can use the HTTP requests to generate a Model Target or Advanced Model Targets with the same configuration options as the MTG desktop tool.
See Model Target Web API for more information.
A Model Target requires that the user hold their device at a particular angle relative to the object, and at a particular distance to initialize tracking of a Model Target. To aid with this process, your app will typically draw an image showing an approximation of the object from this distance and viewing angle, so that the user just needs to move their device until the object matches the image. When they do this, tracking can begin.
In Vuforia Engine, both the image and the particular angle/distance relative to the object that image represents is called a Guide View.
Guide Views in Advanced Model Target Databases
By using Advanced Model Targets in your application, you are able to detect and track one out of several different objects (one active at a time), or you may want to have multiple Advanced Guide Views for a single object with a certain recognition range (for example, if you have a very large object and you want to provide a different user experience depending on which side the user approaches the object from).
Therefore, the Model Target Generator allows you to define multiple Guide Views per Model Target, and/or merge multiple Model Target databases together through a cloud-based training process that outputs a single Advanced Model Target Database.
NOTE: For applications using the Advanced Model Target feature, we recommend displaying a search-frame or similar UX to indicate visually that the application is actively searching for one or more objects as Advanced Guide Views are by default not shown on the screen during runtime.
Testing Model Targets
The Model Targets feature has certain requirements for the object being tracked in order to ensure good recognition and high-quality tracking. Even after following our Best Practices guide, you may find that a 3D model has to be adjusted to ensure good tracking of the object, or even that the object itself is simply not suitable for tracking in the first place.
To assist with this process, the Vuforia Engine SDK ships with a Model Target Test App. Use it to try out tracking for a given object without any additional development.
For more information, see the Model Target Test App User Guide.
Using Model Targets
In a Unity app, Model Target databases are tracked using the ModelTarget GameObject. The GameObjects are provided through the Vuforia Engine Unity extension and can be found under the GameObject -> Vuforia Engine menu in Unity.
See the Introduction to Model Targets in Unity for more information.
In a native app, all Model Target are created from the Model Target Observer and loaded via instances from a database.
See the Model Targets API Overview for more information,
Model Targets in Native
Model Targets in Unity