Skip to main content

Niantic Spatial VPS2

Niantic Spatial's Visual Positioning System 2 (VPS2) is the successor of both the original VPS and World Positioning System (WPS), combining and expanding upon the functionalities of those features. VPS2 localizes users by querying and fusing multiple location signals to provide accurate, stable geo-positioning and orientation, even without any dedicated scanning or pre-mapping.

Coarse Localization

VPS2 leverages device AR tracking data and visual information to provide greater frame-to-frame stability than relying on GPS and compass alone, making it more suitable for AR applications. As the user moves around, VPS2 continuously maintains the device's position and orientation, improving stability and accuracy over long periods of time and long distances.

Course localization can be achieved anywhere in the world, without any dedicated scanning or pre-mapping.

Precise Localization

In mapped areas, VPS2 provides a higher level of localization. You can easily place, persist and share AR content with centimeter-level accuracy on a Niantic Spatial map.

Localizing to a Niantic Spatial map will also usually contribute to more accurate geo-positioning and orientation, although that will not always be the case, particularly for smaller maps.

note

As of version NSDK 4.0 beta 1, automatic precise localization is not yet available. To access precise localization, you should explicitly attempt localize to a site by tracking the site's default anchor.

Anchors

As with the original VPS, an anchor represents a stable position and orientation in the real world that can be used to persist virtual content.

Anchors can be created, tracked, and removed using VPS2 in a similar manner to VPS. VPS2 also supports coarse anchor tracking, which allows the system to estimate an anchor's pose even when the device is not localized to a map. The accuracy of coarse anchor tracking is on the same scale as VPS2's other coarse estimates.

When the device is localized to a map, anchors are tracked with high precision and can be expected to line up with the world with centimeter-level accuracy.

These two modes allow developers to choose appropriate UX treatments based on the expected accuracy of the anchor pose estimate.

note

While an anchor with a Refined update type will have centimer-level accuracy relative to your device, the geolocation of that anchor is heavily affected by:

  1. Whether the map the anchor is located on has been manually aligned.
  2. If the map was not manually aligned, the current quality of VPS2's georeference estimate for your device.

Hence, when tracking anchors on maps that have not been manually aligned, you may see the geolocation of an anchor jump to your device's estimated geolocation when the anchor update type goes from Coarse to Refined.

Best Practices

  • Strong network connection: By our best estimate, VPS2 requires 4 cloud localizations a second in order to accurately estimate the device's geographic position and heading.
Attention

When localization is attempted from a cold start in certain areas of the globe, the first response from the cloud will currently take in the range of 60+ seconds. We are working to reduce this time, but for now please write your application to accomodate for this delay.

  • Heads up camera: By the inherent nature of being a "visual" positioning system, VPS2 works best when the device camera is near eye-level and pointed at distinct features in the environment. Precise localization is only available when the device is localized on a map, which requires the mapped area to be in view. However, VPS2 will still provide coarse estimates when the device camera does not have features in view, as long as AR tracking is not lost.

Next Steps

  1. End to end guide: Setup to Localization

Using VPS2 with the Niantic SDK:

  1. Getting Started with VPS2
  2. Getting Geolocation with VPS2
  3. Placing Virtual Content with VPS2