Skip to main content
Version: Release 4.0.0

Niantic Spatial VPS2

Niantic Spatial’s Visual Positioning System 2 (VPS2) unifies and extends the capabilities of the original VPS and the World Positioning System (WPS). It fuses device sensors, visual data, and cloud services to provide stable global geopositioning and, when available, centimeter-level map-relative localization.

VPS2 operates in two distinct modes: Coarse and Precise.

Core Concepts

  • Geoposition: Latitude, longitude, and altitude in a global coordinate system.
  • Heading: Heading relative to geographic north.
  • Map-relative pose: A full 6DOF pose—3D position (x, y, z) and 3D orientation (roll, pitch, yaw) expressed in the coordinate frame of a VPS map.
  • Coarse localization: Global geoposition and heading without requiring a VPS map.
  • Precise localization: Map-relative pose resolved against a VPS map.

Localization Modes

VPS2 uses different localization modes, depending on available data, to estimate the device’s real-world position and heading. Each mode balances stability, accuracy, and global coverage depending on the environment.

Coarse Localization

Coarse localization provides a global geoposition (latitude/longitude/altitude) and heading.

Coarse localization:

  • Works globally
  • Does not require a VPS map
  • Provides stable global alignment suitable for large-scale AR experiences

It operates through two methods:

Local Sensor Fusion

Formerly known as WPS (World Positioning System), this method fuses GPS and magnetometer data with device AR tracking locally on the device. It improves frame-to-frame stability beyond raw GPS and compass readings and is available globally without any cloud dependency.

Cloud-based Geopositioning (Experimental feature)

When enabled, VPS2 sends camera imagery to the cloud to compute an improved geoposition and heading. This can provide greater accuracy than local sensor fusion alone. Improvements are most apparent in dense urban environments, where multipath effects and signal obstruction frequently degrade GPS accuracy. Enable this via the Universal Localization Enabled configuration option.

Network requirements: VPS2 typically requires approximately four cloud localization requests per second during initialization to establish a stable initial geoposition and heading.

Attention

Cold start

In some regions, the first cloud geopositioning response may take 60 seconds or longer. Until this initial cloud response is received, global geoposition accuracy mirrors standard device GPS. This delay applies only to cloud-based coarse geopositioning. It does not affect VPS map localization once a VPS map is available and localization is attempted.

Precise Localization

In areas mapped with Scaniverse, VPS2 can localize the device relative to a VPS map. This produces a full 6DOF map-relative pose with centimeter-level accuracy.

Precise localization enables:

  • High-precision AR content placement
  • Persistent and shared anchors
  • Stable alignment to mapped real-world environments

When localized to a VPS map, VPS2 will often also improve global geoposition and heading accuracy. However, improvements to absolute geoposition are not guaranteed, particularly for smaller maps.

note

As of NSDK 4.0 Beta, automatic precise localization is not available. To enable precise localization, explicitly attempt to localize to a site by tracking the site’s default anchor.

Anchors

An anchor represents a persistent real-world pose used to attach virtual content.

Anchor accuracy depends on localization state:

  • Limited: The device is not localized to a VPS map. The anchor pose is estimated using coarse localization and cannot be relied on for centimeter-level accuracy.
  • Tracked: The device is localized to a VPS map. The anchor pose is resolved relative to the map with centimeter-level accuracy.

An anchor may transition between Limited and Tracked as map localization is gained or lost. These two states allow developers to adapt UX behavior based on the expected precision and reliability of the anchor pose.

How VPS2 Fits Together

  1. The device runs local AR tracking.
  2. VPS2 establishes a global geoposition and heading (Coarse).
  3. If a VPS map is available, the device localizes to it (Precise).
  4. Anchors resolve relative to either:
    • The global geoposition (Limited), or
    • The VPS map (Tracked).
  5. The VPS2 transformer converts between AR space and global geoposition.

Best Practices

Camera orientation: Hold the device upright at approximately eye level, pointing toward visually distinctive features. Avoid low-texture surfaces, ground-only views, or sky.

Next Steps

  1. End to end guide: First localization with NSDK

Using VPS2 with the Niantic SDK:

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