Niantic Lightship VPS Enables Centimeter-Level Persistent AR Anchors

Augmented Reality
Date:November 2, 2026
Topic:
Niantic Lightship VPS Enables Centimeter-Level Persistent AR Anchors
⏱ 3 min read

Niantic just dropped a capability that changes how developers think about augmented reality persistence. Lightship VPS (Visual Positioning System) now delivers centimeter-level accuracy for AR anchors that survive app restarts, device swaps, and months of environmental change. This isn't incremental improvement—it's the infrastructure shift that makes persistent AR commercially viable.

Why Centimeter Accuracy Matters

GPS gives you 5-10 meter precision outdoors. ARCore Geospatial and ARKit Location Anchors improve that to roughly 1-3 meters under ideal conditions. Lightship VPS narrows the gap to 1-5 centimeters by matching live camera frames against a 3D map built from millions of player-contributed scans. The result: a virtual object placed on a park bench stays on that bench—not floating beside it—when the user returns next week.

"

VPS transforms AR from a session toy into a persistent layer on the real world.

— Niantic Engineering Blog

Architecture Overview

The system operates in three phases. First, developers upload reference scans via the Lightship Maps portal or the Wayfarer app. Niantic's pipeline reconstructs a sparse 3D point cloud and computes visual descriptors for each keyframe. Second, at runtime, the SDK extracts descriptors from the device camera and matches them against the cloud map using a hierarchical vocabulary tree—returning a 6-DoF pose in under 200ms on modern phones. Third, the pose initializes an ARFoundation trackable that behaves like any local anchor but persists across sessions via a unique VPS identifier.

csharp
using Niantic.Lightship.AR.VPS;
using UnityEngine.XR.ARFoundation;

public class VPSAnchorManager : MonoBehaviour
{
    [SerializeField] private ARAnchorManager anchorManager;
    private VPSLocalizationTarget target;

    async void Start()
    {
        target = await VPSLocalizationTarget.CreateAsync(
            "YOUR_VPS_LOCATION_ID");
        var result = await target.LocalizeAsync();
        if (result.Success)
        {
            var anchor = anchorManager.AddAnchor(result.Pose);
            anchor.gameObject.AddComponent<PersistentContent>();
        }
    }
}

Coverage and Limitations

MetricLightship VPSARCore GeospatialARKit Location Anchors
Horizontal Accuracy1-5 cm1-3 m1-5 m
Vertical Accuracy2-8 cm2-5 m2-5 m
PersistenceMonths/YearsSession + Cloud AnchorsSession + Cloud Anchors
Coverage100k+ locationsGlobal (GPS + VPS)Global (GPS + VPS)
Offline SupportPartial (cached maps)NoNo
⚠️
WarningVPS requires a pre-scanned location. You cannot drop a persistent anchor on an arbitrary street corner today—coverage is dense in urban parks, landmarks, and Niantic game hotspots but sparse elsewhere.

Integration with Unity AR Foundation

Lightship ships as an AR Foundation subsystem. Add the "Niantic Lightship AR" package via UPM, enable the VPS provider in Project Settings → XR Plug-in Management, and the standard ARAnchorManager API works unchanged. The only new calls are localization target creation and the async LocalizeAsync() method. Existing ARFoundation workflows—plane detection, image tracking, occlusion—remain intact and can be layered on top of VPS anchors for hybrid experiences.

WebXR Path Forward

Niantic's WebXR SDK (currently in private beta) exposes the same VPS localization flow through JavaScript. The API mirrors the Unity surface: create a VPSLocalizationTarget, call localize(), receive an XRAnchor. This opens persistent AR to browsers on Android Chrome and iOS Safari (via WebXR polyfill) without app store friction. Expect public beta in H2 2024 with support for Three.js, Babylon.js, and A-Frame.

💡
TipPre-scan your target locations using the Wayfarer app during development. High-quality scans—360° coverage, varied lighting, multiple distances—directly improve localization success rates and reduce drift.

Actionable Next Steps

  1. Register for a Lightship developer account and claim your API key.
  2. Check the VPS Coverage Map for your target locations.
  3. Submit scans via Wayfarer if coverage is missing—approval takes 2-5 business days.
  4. Prototype with the Unity sample scene (Assets/Lightship/Samples/VPS).
  5. Implement fallback to ARCore Geospatial for uncovered areas.
  6. Load-test anchor persistence across iOS/Android device pairs.

✦

Centimeter-level persistent anchors are the missing primitive for AR that behaves like the web: stateful, shareable, and durable. Lightship VPS delivers that primitive today—if your use case fits the coverage map. Start scanning.

Share𝕏 Twitterin LinkedInin Whatsapp