For the complete documentation index, see llms.txt. This page is also available as Markdown.

Localization Options

Tune localization accuracy with confidence filtering, hints, and background localization

All options below are passed to XRSessionManager (or MultisetClient for client-side options) during initialization. They are also available as Inspector fields on the MultisetVPS Needle Engine component.

Confidence Filtering

Every localization response includes a confidence value from 0 to 1. By default the SDK accepts any result regardless of confidence. Enable confidence filtering to reject low-quality poses:

const session = new XRSessionManager(gl, {
  client,
  autoLocalize: true,
  confidenceCheck: true,
  confidenceThreshold: 0.6,  // only accept results >= 0.6
});

Results below the threshold trigger onLocalizationFailure rather than onLocalizationResult. Typical ranges:

Use case
Recommended threshold

General AR overlay

0.4 to 0.5

Precision BIM / sub-5 cm accuracy

0.7 to 0.8

Object anchoring

0.5 to 0.6

Hint Position

Narrow the retrieval search to a sphere around a known location. Supply the position in map-local coordinates:

const client = new MultisetClient({
  clientId: '...',
  clientSecret: '...',
  mapType: 'map',
  code: 'MAP_XXXXXXXXXX',
  hintPosition: '2.5,0,-4.0',  // "x,y,z" as a string
  hintRadius: 10,               // search radius in metres (1 to 100)
});

Use this when you know the device's approximate location from a floor plan, a QR code scan, or a previous localization result.

Hint MapCodes (MapSet Only)

Restrict the search to a subset of maps within a MapSet. Useful in large multi-floor buildings where floor is already known:

GeoHint (Geo-Fencing)

Send the device's GPS coordinates as a hint. The map must be georeferenced in the Multiset portal first.

passGeoPose prompts the browser for location permission on first localization. Combine with use2DFiltering in buildings where GPS altitude is unreliable.

Background Localization

Re-localize on an interval during an active session to reduce drift. The pose is updated silently without user interaction:

The default interval is 30 seconds for VPS and 10 seconds for object tracking when not specified.

Relocalization on Tracking Loss

Re-run localization automatically when the device recovers from AR tracking loss (for example, after the camera is covered or the device sleeps):

Geo Coordinates in Response

Request latitude, longitude, and altitude in the localization response (requires the map to be georeferenced):

Framebuffer Scale

Control rendering resolution during the AR session. A value below 1 reduces GPU load; a value above 1 supersamples.

Reference Space

The default reference space is 'local', which is supported on all ARCore devices. Use 'local-floor' on devices that support floor-relative tracking:

Combining Options

Options compose freely. A typical production setup with all quality features enabled:

Last updated

Was this helpful?