{"version":1,"pages":[{"id":"kzTlst3tKo255yz4YpDi","title":"MultiSet Developer Docs","pathname":"/","siteSpaceId":"sitesp_47oZZ","icon":"hand-wave","description":"Start here: what the MultiSet VPS platform does, how the pieces fit together, and where to go for the portal, APIs and SDKs."},{"id":"Ng8BZdFLznjefISyMjCJ","title":"Getting Started","pathname":"/quick-access/getting-started","siteSpaceId":"sitesp_47oZZ","icon":"rocket","description":"The end-to-end path through MultiSet, from your first scan to a running app with global pose and object tracking.","breadcrumbs":[{"label":"Quick Access"}]},{"id":"9akWRGUFA2e25LrB03m4","title":"How It Works","pathname":"/quick-access/getting-started/how-it-works","siteSpaceId":"sitesp_47oZZ","icon":"compass","description":"The spatial model behind every MultiSet SDK and API: pose, tracking drift, the three coordinate spaces, localization and anchoring.","breadcrumbs":[{"label":"Quick Access"},{"label":"Getting Started","icon":"rocket"}]},{"id":"DjPn6G3RdjYUnIdubTbj","title":"FAQ","pathname":"/quick-access/faq","siteSpaceId":"sitesp_47oZZ","icon":"message-question","description":"FAQ's around MultiSet Developer platform","breadcrumbs":[{"label":"Quick Access"}]},{"id":"6ljkp7Ybk58TkDZTOqYQ","title":"Docs for LLMs","pathname":"/quick-access/docs-for-llms","siteSpaceId":"sitesp_47oZZ","icon":"robot","description":"Feed the MultiSet documentation to ChatGPT, Claude, Cursor, or any other AI tool, without pasting pages in by hand.","breadcrumbs":[{"label":"Quick Access"}]},{"id":"m7UexbzJPszAgMsSkdbE","title":"Changelog","pathname":"/quick-access/changelog","siteSpaceId":"sitesp_47oZZ","icon":"rotate","description":"Release notes for every version of the MultiSet platform, grouped by series.","breadcrumbs":[{"label":"Quick Access"}]},{"id":"oxYBochxgN8QOY68Fl8R","title":"Version 2.x","pathname":"/quick-access/changelog/v2","siteSpaceId":"sitesp_47oZZ","icon":"clock-rotate-left","description":"Release notes for the 2.x series","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"}]},{"id":"ym6yC0xCiGKvld2gmyTH","title":"Version 2.3.2","pathname":"/quick-access/changelog/v2/version-2.3.2","siteSpaceId":"sitesp_47oZZ","description":"Webhooks for map, map set and object lifecycle events, right-handed Y up Gaussian Splat uploads, person masks in 360 tours.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 2.x","icon":"clock-rotate-left"}]},{"id":"UvrlIHhra8HT4OC0Q6Q6","title":"Version 2.3.0","pathname":"/quick-access/changelog/v2/version-2.3.0","siteSpaceId":"sitesp_47oZZ","description":"Drone mapping, equirect 360 panorama query, virtual tours from E57 and MatterPak, PCD point cloud output, optional tracking poses, false positive detection.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 2.x","icon":"clock-rotate-left"}]},{"id":"ngALcMATmcIRccemyq3M","title":"Version 2.2.0","pathname":"/quick-access/changelog/v2/version-2.2.0","siteSpaceId":"sitesp_47oZZ","description":"360 Virtual Tour APIs, Camera Intrinsics API, Map Scale API, zipped object upload, resumable large map uploads, faster multi frame query.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 2.x","icon":"clock-rotate-left"}]},{"id":"mtyCfF1lkgKosesc0XLz","title":"Version 2.1.0","pathname":"/quick-access/changelog/v2/version-2.1.0","siteSpaceId":"sitesp_47oZZ","description":"Team members and RBAC, vps-2 Deep Search query mode, georeference API, MapSet add without picking an overlap, partial map updates.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 2.x","icon":"clock-rotate-left"}]},{"id":"LTBi6oNdEX3QaJFqMU5c","title":"Version 2.0.0","pathname":"/quick-access/changelog/v2/version-2.0.0","siteSpaceId":"sitesp_47oZZ","description":"MultiSet VPS Gen2 for higher recall in repetitive spaces, indoor and outdoor modes for 360 to VPS, geometric and high fidelity splat outputs.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 2.x","icon":"clock-rotate-left"}]},{"id":"vCq2bfDHDzxKrATExFIn","title":"Version 1.x","pathname":"/quick-access/changelog/v1","siteSpaceId":"sitesp_47oZZ","icon":"clock-rotate-left","description":"Release notes for the 1.x series","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"}]},{"id":"4PgKPKd8fWeJaHcrLMkB","title":"Version 1.14.0","pathname":"/quick-access/changelog/v1/version-1.14.0","siteSpaceId":"sitesp_47oZZ","description":"Map Versioning, VPS powered MapSet overlap merging, beta Insta360 360 scan support, on-device localization on Android, on-device object tracking.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"LZU0oOR25GWHKToPajdt","title":"Version 1.12.0","pathname":"/quick-access/changelog/v1/version-1.12.0","siteSpaceId":"sitesp_47oZZ","description":"Gaussian Splat to VPS conversion from Xgrids, hintFloorHeight parameter, multiplayer sample scene, fewer single frame false positives.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"G757bKAMs4Ovwcbwj43V","title":"Version 1.11.1","pathname":"/quick-access/changelog/v1/version-1.11.1","siteSpaceId":"sitesp_47oZZ","description":"hintRadius and use2DFiltering query parameters, localization success heatmaps, manual MapSet creation, background object tracking.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"5AHxPvnDyyXkC4sIKSQC","title":"Version 1.11.0","pathname":"/quick-access/changelog/v1/version-1.11.0","siteSpaceId":"sitesp_47oZZ","description":"Android and iOS native SDKs with all VPS parameters, CORS control in the portal, WebXR npm package, larger GLB objects for tracking.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"GYYDqO5iNnBHQNtF4gYu","title":"Version 1.10.0","pathname":"/quick-access/changelog/v1/version-1.10.0","siteSpaceId":"sitesp_47oZZ","description":"On-device localization for iOS, multi object tracking in one session, MapSet alignment in Unity, Faro scanner support, query analytics.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"T6pa7ljoEDAWChuMv3hI","title":"Version 1.9.3","pathname":"/quick-access/changelog/v1/version-1.9.3","siteSpaceId":"sitesp_47oZZ","description":"Xgrids scanner support through E57 export, mapped area analytics, better mesh generation for E57 imports.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"m9HvqtvwVV3TyHjkD7eq","title":"Version 1.9.2","pathname":"/quick-access/changelog/v1/version-1.9.2","siteSpaceId":"sitesp_47oZZ","description":"Cloud processing for Matterport MatterPak, MatterPak upload API, object tracking and multi frame localization in the Quest SDK.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"P4d3sA2ZwvjjZGQdxCKj","title":"Version 1.9.1","pathname":"/quick-access/changelog/v1/version-1.9.1","siteSpaceId":"sitesp_47oZZ","description":"Localization simulation in the Unity Editor, NavVis equirectangular panorama support, E57 upload REST endpoint.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"2LzhNDd3DuMt6vLmPzdh","title":"Version 1.9.0","pathname":"/quick-access/changelog/v1/version-1.9.0","siteSpaceId":"sitesp_47oZZ","description":"Unity mapping scene for LiDAR phones, continuous first localization, app UI overhaul with GLB object upload, Quest navigation scene.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"JkUT61Jk7reUpCJ6c4Un","title":"Version 1.8.1","pathname":"/quick-access/changelog/v1/version-1.8.1","siteSpaceId":"sitesp_47oZZ","description":"Quest SDK install through Unity Package Manager, confidence filtering in object tracking, URP support in both Unity SDKs.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"p5IDGfTOMrbTc5xr7Hc9","title":"Version 1.8.0","pathname":"/quick-access/changelog/v1/version-1.8.0","siteSpaceId":"sitesp_47oZZ","description":"ModelSet object anchoring with textured meshes, Unity ModelSet tracking sample scene, ModelSet support in WebXR.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"eeBWd9nMuVl4y3yFXUpo","title":"Version 1.7.0","pathname":"/quick-access/changelog/v1/version-1.7.0","siteSpaceId":"sitesp_47oZZ","description":"Content Space in the MultiSet app, GeoHint in the localization APIs, and WGS 84 geo coordinates in localization responses.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"wk1lIyQYrPUd2jhEc9t8","title":"Version 1.6.5","pathname":"/quick-access/changelog/v1/version-1.6.5","siteSpaceId":"sitesp_47oZZ","description":"Native SDKs for iOS and Android with App Clips and instant apps, AR training sample scene, better E57 mesh normals and faces.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"flTKD5xAqUrwTrgVe69O","title":"Version 1.6.0","pathname":"/quick-access/changelog/v1/version-1.6.0","siteSpaceId":"sitesp_47oZZ","description":"MapFoundry desktop app for textured mesh scenes, background localization, hintMapCodes and hintPosition, Unity 6 support.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"6wP2WEo78AZdYipntKlL","title":"Version 1.5.2","pathname":"/quick-access/changelog/v1/version-1.5.2","siteSpaceId":"sitesp_47oZZ","description":"Email notification when a map goes active, plus localization and mapping fixes for large mobile scans.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"HykECH6hYGkB5d5xsWK8","title":"Version 1.5.0","pathname":"/quick-access/changelog/v1/version-1.5.0","siteSpaceId":"sitesp_47oZZ","description":"Zipped E57 upload, a multi frame localization scene in Unity, and better localization accuracy in changing environments.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"pgLzwzq1RFmpg3Ypq7uZ","title":"Version 1.4.0","pathname":"/quick-access/changelog/v1/version-1.4.0","siteSpaceId":"sitesp_47oZZ","description":"Third-party scan support in the portal for E57 files with overlapping panoramas, and a Unity navigation sample scene.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"EWqkF1VXL95ox4gzblGc","title":"Version 1.3.0","pathname":"/quick-access/changelog/v1/version-1.3.0","siteSpaceId":"sitesp_47oZZ","description":"Unity Editor simulation mode, in-editor mesh download, relocalization on tracking loss, runtime occlusion, MapSet with overlap.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"VjYhu9D3r197pQjJOdkF","title":"Version 1.2.0","pathname":"/quick-access/changelog/v1/version-1.2.0","siteSpaceId":"sitesp_47oZZ","description":"Configurable localization triggers, customizable localization animation, and map transform adjustment after MapSet creation.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"f7Niswyv1HdNXkqHUl31","title":"Version 1.1.0","pathname":"/quick-access/changelog/v1/version-1.1.0","siteSpaceId":"sitesp_47oZZ","description":"Map Code and MapSet Code for SDK connections, raw mesh download as GLB, better accuracy in difficult viewpoints.","breadcrumbs":[{"label":"Quick Access"},{"label":"Changelog","icon":"rotate"},{"label":"Version 1.x","icon":"clock-rotate-left"}]},{"id":"cEHgDv7NGBquDGHeLyQ4","title":"Maps","pathname":"/fundamentals/maps","siteSpaceId":"sitesp_47oZZ","icon":"map","description":"Browse the maps in your account, read their status and details, and download the output assets such as the mesh GLB.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"4e4KbzgzCSfYHhh4WEGr","title":"Mapping Instruction","pathname":"/fundamentals/maps/mapping-instruction","siteSpaceId":"sitesp_47oZZ","icon":"wrench","description":"Capture technique for the MultiSet Mapping App: distance to surfaces, viewpoint variety, speed, corridors, session overlap and surfaces to avoid.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Maps","icon":"map"}]},{"id":"Nqrc8QVNSE40SgrPyJ0K","title":"Mapping Planning","pathname":"/fundamentals/maps/mapping-planning","siteSpaceId":"sitesp_47oZZ","icon":"arrow-progress","description":"Plan a scan path that gives VPS enough visual features, with recommended distance to surfaces and a fronto-parallel approach.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Maps","icon":"map"}]},{"id":"V63XUPZ5AisscUPv4MMK","title":"Mapping Equipment","pathname":"/fundamentals/maps/mapping-equipment","siteSpaceId":"sitesp_47oZZ","icon":"shovel","description":"Pick the right scanning device for your space, from phone LiDAR in small rooms to professional scanners in large venues.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Maps","icon":"map"}]},{"id":"Z2REbfRpLwHdQ1YRDMy0","title":"Output Asset","pathname":"/fundamentals/maps/output-asset","siteSpaceId":"sitesp_47oZZ","icon":"layer-group","description":"Every processed map produces viewable, downloadable assets: panoramas, meshes, and Gaussian Splats. Which ones you get depends on what you uploaded.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Maps","icon":"map"}]},{"id":"EH0M7R5V2YZ1QqopjoEP","title":"Mesh","pathname":"/fundamentals/maps/output-asset/mesh","siteSpaceId":"sitesp_47oZZ","icon":"cube","description":"Every map produces a raw (untextured) and a textured GLB mesh of the scanned space.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Maps","icon":"map"},{"label":"Output Asset","icon":"layer-group"}]},{"id":"TvB5jdyPj8q6fuTyMWte","title":"Gaussian Splat","pathname":"/fundamentals/maps/output-asset/gaussian-splat","siteSpaceId":"sitesp_47oZZ","icon":"sparkles","description":"Photoreal Gaussian Splat output, as a raw .ply and a compressed .spz, aligned to the map's coordinate frame.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Maps","icon":"map"},{"label":"Output Asset","icon":"layer-group"}]},{"id":"mMVUl9DXPykSEA8fVFdE","title":"Panoramas","pathname":"/fundamentals/maps/output-asset/360-virtual-tour","siteSpaceId":"sitesp_47oZZ","icon":"panorama","description":"Walk through a mapped space as a navigable 360° panoramic tour.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Maps","icon":"map"},{"label":"Output Asset","icon":"layer-group"}]},{"id":"KDfaxRRKH27y5PzaGa2Z","title":"Map Versioning","pathname":"/fundamentals/map-versioning","siteSpaceId":"sitesp_47oZZ","icon":"code-branch","description":"Merge scans of the same space captured at different times, without breaking the content layer.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"yaCx16kB0e4wdRzuqESP","title":"MapSet : Multiple Maps","pathname":"/fundamentals/mapset-multiple-maps","siteSpaceId":"sitesp_47oZZ","icon":"table-cells-large","description":"Combine several maps into one MapSet so a large venue behaves as a single coordinate space for localization.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"iGoJS0K3rlt2pYFUcblC","title":"Merging Maps without Overlap","pathname":"/fundamentals/mapset-multiple-maps/merging-maps-without-overlap","siteSpaceId":"sitesp_47oZZ","icon":"object-group","description":"A MapSet is created when merging multiple maps together, this is especially required to capture large venues to enable VPS in large areas.","breadcrumbs":[{"label":"Fundamentals"},{"label":"MapSet : Multiple Maps","icon":"table-cells-large"}]},{"id":"crIPXsbOciEPAslDGJJD","title":"Extend a MapSet","pathname":"/fundamentals/mapset-multiple-maps/merging-maps-without-overlap/extend-a-mapset","siteSpaceId":"sitesp_47oZZ","icon":"arrow-up-right-and-arrow-down-left-from-center","description":"Docs on how to merge more maps into an existing MapSet","breadcrumbs":[{"label":"Fundamentals"},{"label":"MapSet : Multiple Maps","icon":"table-cells-large"},{"label":"Merging Maps without Overlap","icon":"object-group"}]},{"id":"2kaBBkZPhFF1WlO6xFsz","title":"Merging Maps with Overlap","pathname":"/fundamentals/mapset-multiple-maps/merging-maps-with-overlap","siteSpaceId":"sitesp_47oZZ","icon":"circles-overlap","description":"Create or extend a MapSet by merging maps that share an overlap area, aligned by the MultiSet VPS rather than geometric matching.","breadcrumbs":[{"label":"Fundamentals"},{"label":"MapSet : Multiple Maps","icon":"table-cells-large"}]},{"id":"CQRRVpkvWebQUzxUHKEp","title":"Adjust Map Transformation","pathname":"/fundamentals/mapset-multiple-maps/adjust-map-transformation","siteSpaceId":"sitesp_47oZZ","icon":"square-sliders","description":"Fine tune the position and rotation of an individual map inside a MapSet to fix misalignment left over from merging.","breadcrumbs":[{"label":"Fundamentals"},{"label":"MapSet : Multiple Maps","icon":"table-cells-large"}]},{"id":"3U06mwAGj1Qmmuo1IEUn","title":"Merging Maps Manually","pathname":"/fundamentals/mapset-multiple-maps/merging-maps-manually","siteSpaceId":"sitesp_47oZZ","icon":"puzzle","description":"Align two maps by hand using visual geometry hints, for scans that lack the overlap needed for automatic alignment.","breadcrumbs":[{"label":"Fundamentals"},{"label":"MapSet : Multiple Maps","icon":"table-cells-large"}]},{"id":"iHqvsxOv3V9jy9WQKZiB","title":"Object Tracking","pathname":"/fundamentals/object-tracking","siteSpaceId":"sitesp_47oZZ","icon":"atom","description":"Anchor AR content to a physical object by uploading its 3D model, with model requirements and tracking best practices.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"cIJwt2AgB9EhiD3rxAn9","title":"How to Setup Object Tracking","pathname":"/fundamentals/object-tracking/how-to-setup-a-object-tracking","siteSpaceId":"sitesp_47oZZ","icon":"hand-point-up","description":"Step by step setup for an object tracking target: prepare the 3D model, choose 360 view or side view, then upload and process.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Object Tracking","icon":"atom"}]},{"id":"ZXxfwYY21Yz9PCv9X7ja","title":"Credentials","pathname":"/fundamentals/credentials","siteSpaceId":"sitesp_47oZZ","icon":"markdown","description":"Create and manage the client ID and secret used to authenticate MultiSet REST API calls and SDK sessions, including scopes and token handling.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"wYaFDRWXO9x250kZ584x","title":"Configuring Allowed Domains (CORS)","pathname":"/fundamentals/credentials/configuring-allowed-domains-cors","siteSpaceId":"sitesp_47oZZ","icon":"gears","description":"Whitelist your web app domain so browser based calls to the MultiSet Public API are not blocked by CORS.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Credentials","icon":"markdown"}]},{"id":"7LPJTtraRrpWnvYc8P19","title":"Webhooks","pathname":"/fundamentals/credentials/webhooks","siteSpaceId":"sitesp_47oZZ","icon":"bell","description":"Receive a signed HTTP callback when a map, map set, or tracked object changes state, instead of polling the API for status.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Credentials","icon":"markdown"}]},{"id":"qWC3Ma7A1VEU71kfioCA","title":"Team Members","pathname":"/fundamentals/team-members","siteSpaceId":"sitesp_47oZZ","icon":"user-group","description":"Invite teammates to your MultiSet account, assign roles, and control what each person can access.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"QwHFLVleY7QejI9V4gc3","title":"Analytics and Usage","pathname":"/fundamentals/images-and-media","siteSpaceId":"sitesp_47oZZ","icon":"chart-mixed","description":"Track localization performance per map and per object from the MultiSet Developer Portal","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"oa0XskrCEgbVlYaOnehE","title":"Downloads","pathname":"/fundamentals/downloads","siteSpaceId":"sitesp_47oZZ","icon":"hand-pointer","description":"Download the MultiSet App and the Unity SDK packages.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"WfWqAlNfpnwce5nZDZck","title":"Localization","pathname":"/fundamentals/localization","siteSpaceId":"sitesp_47oZZ","icon":"location-dot","description":"How VPS localization works, the difference between single frame and multi frame queries, the pose coordinate system, and every localization parameter.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"w44jUAKNarEWhdp0GjkF","title":"Robustness","pathname":"/fundamentals/localization/robustness","siteSpaceId":"sitesp_47oZZ","icon":"shield-check","description":"How MultiSet holds up against changing light, moving people, repetitive corridors, and bare surfaces, and the levers you have when it does not.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Localization","icon":"location-dot"}]},{"id":"TYDwoN2y7kIUgtaoxX5o","title":"Query Mode","pathname":"/fundamentals/localization/query-mode","siteSpaceId":"sitesp_47oZZ","icon":"gauge","description":"Choose between the fast default engine (VPS-1) and the slower, more accurate deep-search engine (VPS-2) for Single Frame Query.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Localization","icon":"location-dot"}]},{"id":"vNRpIW5pwBwmdmiQ3y5D","title":"Equirect Query","pathname":"/fundamentals/localization/equirect-query","siteSpaceId":"sitesp_47oZZ","icon":"panorama","description":"Localize from a single 360° equirectangular panorama, with no camera intrinsics to supply.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Localization","icon":"location-dot"}]},{"id":"ti4cZ1oBzTIM0pmXpImz","title":"HintFloorHeight","pathname":"/fundamentals/localization/hint-floor-height","siteSpaceId":"sitesp_47oZZ","icon":"building","description":"Restrict localization search to a specific floor using a vertical Y-axis band","breadcrumbs":[{"label":"Fundamentals"},{"label":"Localization","icon":"location-dot"}]},{"id":"AitQOuo6sTVB0RMB9RQA","title":"HintPosition","pathname":"/fundamentals/localization/pose-prior-hintposition","siteSpaceId":"sitesp_47oZZ","icon":"square-plus","description":"HintPosition helps to reduce the localization search scope in large maps","breadcrumbs":[{"label":"Fundamentals"},{"label":"Localization","icon":"location-dot"}]},{"id":"kv7kod2kJGlPCgQJ8voL","title":"HintRadius","pathname":"/fundamentals/localization/hint-radius","siteSpaceId":"sitesp_47oZZ","icon":"bullseye","description":"Control the search radius around hintPosition or geoHint to tune the localization search scope","breadcrumbs":[{"label":"Fundamentals"},{"label":"Localization","icon":"location-dot"}]},{"id":"PmTjwikL9oJxOEY95XEQ","title":"Hint MapCodes","pathname":"/fundamentals/localization/hint-mapcodes","siteSpaceId":"sitesp_47oZZ","icon":"layer-minus","description":"Pass Hint MapCodes in your MapSet query to reduce the localization search scope","breadcrumbs":[{"label":"Fundamentals"},{"label":"Localization","icon":"location-dot"}]},{"id":"wfZzO1eFCnbPkb3Bef8U","title":"GeoHint in Localization","pathname":"/fundamentals/localization/geohint-in-localization","siteSpaceId":"sitesp_47oZZ","icon":"cloud-question","description":"Pass approximate GPS coordinates with a localization query to narrow the search, and read the returned geo coordinates. Works for Maps and MapSets.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Localization","icon":"location-dot"}]},{"id":"l5zO6R7gHq3jMQuS6NJF","title":"GeoPose Support","pathname":"/fundamentals/localization/geopose-support","siteSpaceId":"sitesp_47oZZ","icon":"globe","description":"The GeoPose object in the localization response, how it relates to local map coordinates, and when to use each.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Localization","icon":"location-dot"}]},{"id":"rFKkm54KUYYmYkSLsATI","title":"Coordinate Systems","pathname":"/fundamentals/localization/coordinate-systems","siteSpaceId":"sitesp_47oZZ","icon":"cube","description":"MultiSet VPS returns poses in left-handed Y-up (Unity, the default) or right-handed Y-up (ARKit, ARCore, WebXR) coordinates via the isRightHanded flag.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Localization","icon":"location-dot"}]},{"id":"v5DHgyqT8FdifPb6bNSd","title":"Simulation","pathname":"/fundamentals/localization/simulation","siteSpaceId":"sitesp_47oZZ","icon":"flask","description":"Test and compare VPS localization against a map or MapSet in the Developer Portal using previously captured simulation data.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Localization","icon":"location-dot"}]},{"id":"e9ZWX0DNQ22wJTCZjyW7","title":"REST API Docs","pathname":"/fundamentals/rest-api-docs","siteSpaceId":"sitesp_47oZZ","icon":"network-wired","description":"Index of the MultiSet REST API: endpoints for Maps, MapSets, object tracking and localization queries.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"rpCKRLe4FYHmdzrxBCs6","title":"Authentication","pathname":"/fundamentals/rest-api-docs/authentication","siteSpaceId":"sitesp_47oZZ","icon":"key","description":"Exchange your client ID and secret for a bearer token, valid 30 minutes, with browser and Node.js examples.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"}]},{"id":"IsuDF1hPbYyOSrzXcjnp","title":"Map Query","pathname":"/fundamentals/rest-api-docs/map-query","siteSpaceId":"sitesp_47oZZ","icon":"map-location","description":"The three VPS query endpoints that return a 6-DoF pose, JSON body, form data and multi image, plus every optional query parameter.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"}]},{"id":"gVa2HzzI9iXOMbDV58qI","title":"Map Operations","pathname":"/fundamentals/rest-api-docs/map-operations","siteSpaceId":"sitesp_47oZZ","icon":"brackets-curly","description":"File link and mesh replacement endpoints, including how to swap a map's textured or raw mesh.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"}]},{"id":"iWALpdNrseejWHw5PBSn","title":"MapSet","pathname":"/fundamentals/rest-api-docs/mapset","siteSpaceId":"sitesp_47oZZ","icon":"layer-group","description":"Create, read, update and delete MapSets, add maps with or without overlap, and set the pose of a map inside a set.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"}]},{"id":"6bdxcWFdf52epcKZkTPN","title":"Map Upload","pathname":"/fundamentals/rest-api-docs/map-upload","siteSpaceId":"sitesp_47oZZ","icon":"folder-arrow-up","description":"Upload a scan in parts to S3, with a standard flow and a resumable flow that survives an interrupted connection.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"}]},{"id":"hW4BmgHlmZmSvUo6H1wI","title":"MatterPak Upload","pathname":"/fundamentals/rest-api-docs/map-upload/matterpak-upload","siteSpaceId":"sitesp_47oZZ","icon":"arrow-up","description":"Create a map from a Matterport MatterPak by posting map metadata and Matterport credentials, with no file upload.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"},{"label":"Map Upload","icon":"folder-arrow-up"}]},{"id":"cIl6h5enbO2S934vKHpm","title":"Gaussian Splat Upload","pathname":"/fundamentals/rest-api-docs/map-upload/gaussian-splat-upload","siteSpaceId":"sitesp_47oZZ","icon":"sparkles","description":"Upload a Gaussian Splat (.ply + poses.json) as a Multiset VPS map via the REST API.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"},{"label":"Map Upload","icon":"folder-arrow-up"}]},{"id":"v9jOiEVPkP42iUqJZfuo","title":"Object Upload","pathname":"/fundamentals/rest-api-docs/modelset-upload","siteSpaceId":"sitesp_47oZZ","icon":"square-arrow-up","description":"Create an object tracking target by posting object metadata and uploading the 3D model to the returned presigned URL.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"}]},{"id":"MbZhTOJYvH06agTR8dbd","title":"Map details","pathname":"/fundamentals/rest-api-docs/map-details","siteSpaceId":"sitesp_47oZZ","icon":"map-location","description":"Fetch a single map by map code, or list every VPS map on the account, with status, location and spatial metadata.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"}]},{"id":"71R9g1Hezwod9f1kkXPE","title":"Georeference Map","pathname":"/fundamentals/rest-api-docs/georeference","siteSpaceId":"sitesp_47oZZ","icon":"earth-americas","description":"Tie a map's local coordinate frame to WGS 84 by submitting control points that pair map-local positions with known latitude, longitude and altitude.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"}]},{"id":"gwfnFC3Tw1HBv5hNjVNj","title":"Map Scale","pathname":"/fundamentals/rest-api-docs/map-scale","siteSpaceId":"sitesp_47oZZ","icon":"maximize","description":"Set or correct the real world scale of a map after processing by entering a known length in metres, for marker-less 360 captures.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"}]},{"id":"WDSBydGc3UD7WfZ3s5L3","title":"Camera Intrinsics","pathname":"/fundamentals/rest-api-docs/camera-intrinsics","siteSpaceId":"sitesp_47oZZ","icon":"camera","description":"Estimate focal length, principal point and optional distortion from one to five images of a scene, for cameras with no factory calibration.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"}]},{"id":"7NYExApK8E7mEA1tuUcl","title":"360° Virtual Tour (Pano)","pathname":"/fundamentals/rest-api-docs/pano-360-virtual-tour","siteSpaceId":"sitesp_47oZZ","icon":"panorama","description":"Read APIs that serve a navigable 360 panoramic tour as a graph of nodes, including manifests, pagination and tours across map versions and MapSets.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"}]},{"id":"GspWMX2SOb5SsVdFSE0k","title":"Object Tracking Query","pathname":"/fundamentals/rest-api-docs/object-query","siteSpaceId":"sitesp_47oZZ","icon":"ufo-beam","description":"Send one frame to get a 6-DoF pose for a tracked object, with up to 10 object codes per query, and list the objects on your account.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"}]},{"id":"neQg97Q7XmLWAN3MrTyM","title":"Map Version","pathname":"/fundamentals/rest-api-docs/map-version","siteSpaceId":"sitesp_47oZZ","icon":"code-branch","description":"Create, inspect, and manage Map Versions over the REST API.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"}]},{"id":"XFhSpzNIUfLeo6PtE5ur","title":"Simulation Data","pathname":"/fundamentals/rest-api-docs/simulation-data","siteSpaceId":"sitesp_47oZZ","icon":"vial","description":"Manage simulation data used to test localization.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"}]},{"id":"rhFLjlzmduaJS81lAcYT","title":"Analytics","pathname":"/fundamentals/rest-api-docs/analytics","siteSpaceId":"sitesp_47oZZ","icon":"chart-mixed","description":"Read localization query logs and spatial heatmaps over the REST API.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"}]},{"id":"wUVucvvd0AMwuZPOBnXz","title":"Webhooks","pathname":"/fundamentals/rest-api-docs/webhooks","siteSpaceId":"sitesp_47oZZ","icon":"code","description":"Register and manage the endpoint MultiSet delivers lifecycle events to, send test events, rotate the signing secret, and read the delivery log.","breadcrumbs":[{"label":"Fundamentals"},{"label":"REST API Docs","icon":"network-wired"}]},{"id":"AVN7gLkIZkJnUkeCBQiB","title":"Third Party Scans","pathname":"/fundamentals/third-party-scans","siteSpaceId":"sitesp_47oZZ","icon":"square-sliders","description":"Every input MultiSet accepts for building a map, covering structured E57 point clouds, Gaussian Splats and 360 video, with the requirements for each.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"2HgZcFyZDtmx8zKhhHq3","title":"Matterport E57","pathname":"/fundamentals/third-party-scans/matterport-e57","siteSpaceId":"sitesp_47oZZ","icon":"image-polaroid","description":"Support for Matterport scans","breadcrumbs":[{"label":"Fundamentals"},{"label":"Third Party Scans","icon":"square-sliders"}]},{"id":"HibzTTtnndUvib3Wp7o8","title":"MatterPak Files","pathname":"/fundamentals/third-party-scans/matterport-e57/matterpak-files","siteSpaceId":"sitesp_47oZZ","icon":"cabinet-filing","description":"Connect your Matterport account with a developer token and process MatterPak bundles in the cloud, with no manual file upload.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Third Party Scans","icon":"square-sliders"},{"label":"Matterport E57","icon":"image-polaroid"}]},{"id":"FS5rWhYF2jZWzUUThUU1","title":"Leica Scans","pathname":"/fundamentals/third-party-scans/leica-scans","siteSpaceId":"sitesp_47oZZ","icon":"nfc","description":"Capture with Leica RTC360, BLK360 G2, BLK2GO or BLK2FLY and export a structured E57 with panoramas from Cyclone REGISTER 360 PLUS.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Third Party Scans","icon":"square-sliders"}]},{"id":"88HyBE3gHu3HJOc5vA0F","title":"NavVis Scans","pathname":"/fundamentals/third-party-scans/navvis-scans","siteSpaceId":"sitesp_47oZZ","icon":"nfc","description":"Capture with NavVis VLX or M6 and export an E57 with equirectangular panoramas from NavVis IVION.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Third Party Scans","icon":"square-sliders"}]},{"id":"R10KI60COZbysRWUwoaP","title":"Xgrids Scans","pathname":"/fundamentals/third-party-scans/xgrids-scans","siteSpaceId":"sitesp_47oZZ","icon":"grid","description":"Convert Xgrids SLAM scan data into an E57 with panorama poses using Lixel Studio, then upload it to the portal.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Third Party Scans","icon":"square-sliders"}]},{"id":"gYvbAOdCrjHdkgLvxNZK","title":"Faro Scans","pathname":"/fundamentals/third-party-scans/faro-scans","siteSpaceId":"sitesp_47oZZ","icon":"tire-rugged","description":"Capture, register and export Faro scans for MultiSet, including the altimeter setting and the Color Panorama Image option in Faro SCENE.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Third Party Scans","icon":"square-sliders"}]},{"id":"Qro8cTgxoAfy51ueWbll","title":"360 Videos","pathname":"/fundamentals/third-party-scans/360-videos","siteSpaceId":"sitesp_47oZZ","icon":"video","description":"Build a VPS map from 360° video: raw .insv from an Insta360 camera or the Antigravity A1 drone, or a stitched equirectangular .mp4 from any other camera.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Third Party Scans","icon":"square-sliders"}]},{"id":"iTxFSoCzYHS4kqRPuyAa","title":"Insta360 Scans","pathname":"/fundamentals/third-party-scans/360-videos/insta360-scans","siteSpaceId":"sitesp_47oZZ","icon":"camera","description":"Capture 360° video with an Insta360 camera and turn it into a MultiSet VPS map.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Third Party Scans","icon":"square-sliders"},{"label":"360 Videos","icon":"video"}]},{"id":"HRn8Gl9QF4GwiVUHVq8C","title":"Antigravity A1 (Drone)","pathname":"/fundamentals/third-party-scans/360-videos/antigravity-a1-drone","siteSpaceId":"sitesp_47oZZ","icon":"helicopter","description":"Capture a site from the air with the Antigravity A1 360 drone and build a MultiSet VPS map from the raw .insv.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Third Party Scans","icon":"square-sliders"},{"label":"360 Videos","icon":"video"}]},{"id":"zPwNPReJN58UBbOHuEYr","title":"Equirectangular MP4","pathname":"/fundamentals/third-party-scans/360-videos/equirectangular-mp4","siteSpaceId":"sitesp_47oZZ","icon":"film","description":"Upload an already-stitched equirectangular 360 video, from any camera, as input for a MultiSet VPS map.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Third Party Scans","icon":"square-sliders"},{"label":"360 Videos","icon":"video"}]},{"id":"n1ysViPDoGH0fe56k1UR","title":"Gaussian Splat","pathname":"/fundamentals/third-party-scans/gaussian-splat","siteSpaceId":"sitesp_47oZZ","icon":"sparkles","description":"Use Gaussian Splat reconstructions as input for Multiset VPS.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Third Party Scans","icon":"square-sliders"}]},{"id":"wtYXE4V7U3aAfm87eTws","title":"Xgrids Gaussian Splat Export","pathname":"/fundamentals/third-party-scans/gaussian-splat/xgrids-gaussian-splat","siteSpaceId":"sitesp_47oZZ","icon":"grid","description":"Export a Gaussian Splat from Xgrids Lixel CyberColor for use with Multiset VPS.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Third Party Scans","icon":"square-sliders"},{"label":"Gaussian Splat","icon":"sparkles"}]},{"id":"C3tmvufEKovGAvQnPCGZ","title":"Splats from Other Tools","pathname":"/fundamentals/third-party-scans/gaussian-splat/splats-from-other-tools","siteSpaceId":"sitesp_47oZZ","icon":"rotate","description":"Upload a Gaussian Splat trained outside Xgrids: declare its right-handed Y up frame through the REST API, or convert it to Z up yourself, and add a poses.json when you can.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Third Party Scans","icon":"square-sliders"},{"label":"Gaussian Splat","icon":"sparkles"}]},{"id":"AmF2aGTbdk8Zc7BEV6d8","title":"Georeferencing Maps","pathname":"/fundamentals/georeferencing-maps","siteSpaceId":"sitesp_47oZZ","icon":"earth-asia","description":"Give a map real world WGS 84 coordinates so device GPS can be used as a prior for faster, more reliable localization.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"RvNkQvQBjd35uhWUlCYR","title":"Auto Geo-reference a Map","pathname":"/fundamentals/georeferencing-maps/auto-georeference-map","siteSpaceId":"sitesp_47oZZ","icon":"location-crosshairs","description":"Geo-reference an outdoor map directly from the MultiSet App by localizing at well-spread points and submitting them for an automatic solve.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Georeferencing Maps","icon":"earth-asia"}]},{"id":"H2tl3yuJZib0P2037DHL","title":"How to Manually Align Scans","pathname":"/fundamentals/georeferencing-maps/how-to-align-scans","siteSpaceId":"sitesp_47oZZ","icon":"objects-align-bottom","description":"Correct a map's heading and placement on satellite view in the portal, since latitude, longitude and altitude are captured automatically but heading is not.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Georeferencing Maps","icon":"earth-asia"}]},{"id":"ykF2bM45xfYHTp84U0aA","title":"Outdoor-Indoor Transitions with Multiset","pathname":"/fundamentals/georeferencing-maps/outdoor-indoor-transitions-with-multiset","siteSpaceId":"sitesp_47oZZ","icon":"bench-tree","description":"Hand off from GPS outdoors to VPS indoors in a single WGS 84 coordinate system, so AR content stays continuous across the doorway.","breadcrumbs":[{"label":"Fundamentals"},{"label":"Georeferencing Maps","icon":"earth-asia"}]},{"id":"W54suqWwaiFVoGnEx4wR","title":"Support","pathname":"/fundamentals/support","siteSpaceId":"sitesp_47oZZ","icon":"message-question","description":"Raise a support ticket, join the Discord community, or reach the team by email.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"0Lr9hU4ezJh7Mt6EB1tc","title":"AR Foundation SDK","pathname":"/unity-sdk/ar-foundation","siteSpaceId":"sitesp_47oZZ","icon":"unity","description":"MultiSet VPS for Unity projects built on AR Foundation (iOS and Android)","breadcrumbs":[{"label":"Unity SDK"}]},{"id":"Ie2qpwcnZAD3wzVfxVtn","title":"Getting Started","pathname":"/unity-sdk/ar-foundation/getting-started","siteSpaceId":"sitesp_47oZZ","icon":"unity","description":"Learn how to build and integrate MultiSet VPS SDK in Unity Project","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"}]},{"id":"0XyVFJdZS98bKdWm4fCi","title":"Universal 3D (Core) support","pathname":"/unity-sdk/ar-foundation/getting-started/universal-3d-core-support","siteSpaceId":"sitesp_47oZZ","description":"In order to support Universal 3D (Core) SRP template, we just need to enable these Render pipeline settings","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"Getting Started","icon":"unity"}]},{"id":"ElBJno6odW0zuyWittdi","title":"Authentication","pathname":"/unity-sdk/ar-foundation/authentication","siteSpaceId":"sitesp_47oZZ","icon":"lock","description":"Authenticate the Unity SDK with credentials set in the Editor, or supply them at runtime.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"}]},{"id":"2ubFHMvXQlee0WMjYuGQ","title":"Sample Scenes","pathname":"/unity-sdk/ar-foundation/sample-scenes","siteSpaceId":"sitesp_47oZZ","icon":"code-simple","description":"The sample scenes shipped with the Unity SDK and what each one demonstrates.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"}]},{"id":"vhLS53gkHNoQNP2tKmYw","title":"Localization","pathname":"/unity-sdk/ar-foundation/sample-scenes/localization","siteSpaceId":"sitesp_47oZZ","icon":"location-dot","description":"The multi frame localization sample scene, which trades a few seconds of query time for higher accuracy and robustness.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"Sample Scenes","icon":"code-simple"}]},{"id":"MvhdXokIRP1ncZk32OER","title":"Mapping","pathname":"/unity-sdk/ar-foundation/sample-scenes/mapping","siteSpaceId":"sitesp_47oZZ","icon":"mobile","description":"The in-app scanning sample scene for LiDAR iPhones and iPads, from capture through upload, with the mapping state machine.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"Sample Scenes","icon":"code-simple"}]},{"id":"XE13n7K1Os3wJNNS75fj","title":"Single Frame Localization","pathname":"/unity-sdk/ar-foundation/sample-scenes/single-frame-localization","siteSpaceId":"sitesp_47oZZ","icon":"image-landscape","description":"The single frame localization sample scene, for a fast response of roughly 3 seconds when maximum accuracy is not required.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"Sample Scenes","icon":"code-simple"}]},{"id":"6rNxyVGvCURVYXyPsPPC","title":"Object Tracking","pathname":"/unity-sdk/ar-foundation/sample-scenes/modelset-tracking","siteSpaceId":"sitesp_47oZZ","icon":"earth-africa","description":"The object tracking sample scene, where AR content is authored as a child of the object mesh and anchored to the physical object.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"Sample Scenes","icon":"code-simple"}]},{"id":"Y1WatpXnPkeYkyLyDbU6","title":"Navigation","pathname":"/unity-sdk/ar-foundation/sample-scenes/navigation","siteSpaceId":"sitesp_47oZZ","icon":"location-arrow","description":"The AR navigation sample scene, with points of interest and path finding through Unity NavMesh on the map mesh.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"Sample Scenes","icon":"code-simple"}]},{"id":"T9R2SSrOMo4kffsflE6D","title":"Training","pathname":"/unity-sdk/ar-foundation/sample-scenes/training","siteSpaceId":"sitesp_47oZZ","icon":"display-chart-up","description":"The location guided training sample scene, with step by step instructions anchored to places in the physical space.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"Sample Scenes","icon":"code-simple"}]},{"id":"p9iMltBepD3shW3wx6Hj","title":"MapSet Alignment","pathname":"/unity-sdk/ar-foundation/sample-scenes/mapset-alignment","siteSpaceId":"sitesp_47oZZ","icon":"objects-align-center-vertical","description":"The Unity utility scene for fixing MapSet alignment: load the geometry, adjust map transforms visually and push the corrected poses back to the server.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"Sample Scenes","icon":"code-simple"}]},{"id":"LUpRzZUiqgumVraoRn5y","title":"Multiplayer Sample","pathname":"/unity-sdk/ar-foundation/sample-scenes/multiplayer-sample","siteSpaceId":"sitesp_47oZZ","icon":"users","description":"A turnkey shared AR sample where several participants localize into the same map, including the Meta Ray-Ban wearable client flow.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"Sample Scenes","icon":"code-simple"}]},{"id":"xqiTOEEvFj9JgfYKoZNN","title":"On-Cloud Localization","pathname":"/unity-sdk/ar-foundation/on-cloud-localization","siteSpaceId":"sitesp_47oZZ","icon":"location-crosshairs","description":"Details on on-cloud localization","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"}]},{"id":"29tclaZoxDhvD81Sc6HY","title":"Individual Map","pathname":"/unity-sdk/ar-foundation/on-cloud-localization/individual-map","siteSpaceId":"sitesp_47oZZ","icon":"square-small","description":"Localization explanation in individual Map","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"On-Cloud Localization","icon":"location-crosshairs"}]},{"id":"u8sSbdDO31v4XrfqN8cT","title":"MapSet (Multiple maps)","pathname":"/unity-sdk/ar-foundation/on-cloud-localization/mapset-multiple-maps","siteSpaceId":"sitesp_47oZZ","icon":"table-cells","description":"Localization explanation in MapSet","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"On-Cloud Localization","icon":"location-crosshairs"}]},{"id":"FzgxgTR6ptvxG7bAQsPp","title":"On-Device Localization","pathname":"/unity-sdk/ar-foundation/on-device-localization","siteSpaceId":"sitesp_47oZZ","icon":"mobile-screen","description":"Localize entirely on the device with a cached offline bundle, no per query network request, including setup and performance tuning.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"}]},{"id":"ahWwvpQUcAA4kYGuE3YG","title":"Importing the On-Device Package","pathname":"/unity-sdk/ar-foundation/on-device-localization/importing-the-on-device-package","siteSpaceId":"sitesp_47oZZ","icon":"box-open","description":"Import the MultiSet-OnDevice Unity package on top of the standard SDK, register your bundle ID and verify the native plugins.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"On-Device Localization","icon":"mobile-screen"}]},{"id":"JIlEEG75kXp2oAsFzaqG","title":"On-Device Object Tracking","pathname":"/unity-sdk/ar-foundation/on-device-localization/on-device-object-tracking","siteSpaceId":"sitesp_47oZZ","icon":"cube","description":"Track a registered object on the device from a cached offline bundle, with no per frame network request.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"On-Device Localization","icon":"mobile-screen"}]},{"id":"1R79BzLzd01STlieTpLh","title":"Features","pathname":"/unity-sdk/ar-foundation/features","siteSpaceId":"sitesp_47oZZ","icon":"puzzle-piece","description":"Capabilities you can layer on top of a localized Unity scene","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"}]},{"id":"5RaU4lZ3pJGnYi82k1kv","title":"Occlusion","pathname":"/unity-sdk/ar-foundation/features/occlusion","siteSpaceId":"sitesp_47oZZ","icon":"head-side-goggles","description":"Enable occlusion in your AR apps using the MultiSet Map mesh","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"Features","icon":"puzzle-piece"}]},{"id":"3CFLxvPcuxD88jvrUWD3","title":"NavMesh Navigation","pathname":"/unity-sdk/ar-foundation/features/navmesh-navigation","siteSpaceId":"sitesp_47oZZ","icon":"compass","description":"Details on how to add NavMesh Navigation in MultiSet Unity SDK","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"Features","icon":"puzzle-piece"}]},{"id":"8H8dhSJSOAunDQu4AV6A","title":"Multiplayer AR","pathname":"/unity-sdk/ar-foundation/features/multiplayer-ar","siteSpaceId":"sitesp_47oZZ","icon":"send-back","description":"Share one coordinate system between players by localizing into the same map, with the coordinate conversion every client needs.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"Features","icon":"puzzle-piece"}]},{"id":"3herDN3scVkvc7FDTUPl","title":"Drift Control","pathname":"/unity-sdk/ar-foundation/features/drift-control","siteSpaceId":"sitesp_47oZZ","icon":"draft2digital","description":"Why AR content drifts away from its anchored position, and the relocalization events MultiSet uses to correct it.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"Features","icon":"puzzle-piece"}]},{"id":"TJHm3PHjSQO6R54tTGYH","title":"Localization Simulation","pathname":"/unity-sdk/ar-foundation/features/localization-simulation","siteSpaceId":"sitesp_47oZZ","icon":"photo-film","description":"Replay recorded localization data in the Unity Editor with SimulationDataManager, so you can test without walking the space.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"Features","icon":"puzzle-piece"}]},{"id":"M234j2bQGMDB2PF6AT95","title":"Building Steps","pathname":"/unity-sdk/ar-foundation/building-steps","siteSpaceId":"sitesp_47oZZ","icon":"android","description":"Player settings and platform steps for building a MultiSet AR Foundation project to iOS and Android.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"}]},{"id":"TJYcwZfIT14ejyI3uVma","title":"API Reference","pathname":"/unity-sdk/ar-foundation/api-reference","siteSpaceId":"sitesp_47oZZ","icon":"webhook","description":"API reference index for the MultiSet Unity SDK, listing the namespaces and manager components.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"}]},{"id":"kRq1VlDk89JI6jrVRMR0","title":"MultisetSdkManager","pathname":"/unity-sdk/ar-foundation/api-reference/multisetsdkmanager","siteSpaceId":"sitesp_47oZZ","description":"The Unity singleton that holds SDK configuration, authenticates against the backend and controls the watermark.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"API Reference","icon":"webhook"}]},{"id":"Pa68IeL1i5MsmjmjeGsJ","title":"MapLocalizationManager","pathname":"/unity-sdk/ar-foundation/api-reference/maplocalizationmanager","siteSpaceId":"sitesp_47oZZ","description":"The core Unity component for VPS localization: captures frames, queries the backend and aligns map space, with auto, background and re-localization.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"API Reference","icon":"webhook"}]},{"id":"7R6tJ2JnXm99QpvzybN5","title":"SingleFrameLocalizationManager","pathname":"/unity-sdk/ar-foundation/api-reference/singleframelocalizationmanager","siteSpaceId":"sitesp_47oZZ","description":"The Unity component for single frame localization, sending one sharp frame per query for faster individual attempts.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"API Reference","icon":"webhook"}]},{"id":"TcIhGNefRElaZZv8Tiwd","title":"ObjectTrackingManager","pathname":"/unity-sdk/ar-foundation/api-reference/modelsettrackingmanager","siteSpaceId":"sitesp_47oZZ","description":"The Unity component for object tracking: queries a frame against a registered object and aligns content to the physical object.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"API Reference","icon":"webhook"}]},{"id":"NIOotlJsG5ahEPq2VG2f","title":"MappingManager","pathname":"/unity-sdk/ar-foundation/api-reference/mappingmanager","siteSpaceId":"sitesp_47oZZ","description":"The Unity component that drives in-app area scanning, from capture through compression to upload.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"API Reference","icon":"webhook"}]},{"id":"ow6msCnQ7N9lLdsO1Y1c","title":"MapMeshHandler","pathname":"/unity-sdk/ar-foundation/api-reference/mapmeshhandler","siteSpaceId":"sitesp_47oZZ","description":"Download, cache and render a map mesh in the Unity scene, with visualization and occlusion options.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"API Reference","icon":"webhook"}]},{"id":"61X7cc12vWT7EpaK3no1","title":"ToastManager","pathname":"/unity-sdk/ar-foundation/api-reference/toastmanager","siteSpaceId":"sitesp_47oZZ","description":"The Unity singleton that shows short on-screen toast messages such as localization success or failure.","breadcrumbs":[{"label":"Unity SDK"},{"label":"AR Foundation SDK","icon":"unity"},{"label":"API Reference","icon":"webhook"}]},{"id":"yxCWZmsE1twPiytm35jK","title":"Meta Quest SDK","pathname":"/unity-sdk/meta-quest","siteSpaceId":"sitesp_47oZZ","icon":"vr-cardboard","description":"MultiSet VPS for Unity projects targeting Meta Quest headsets","breadcrumbs":[{"label":"Unity SDK"}]},{"id":"ODqVKwPeonPMeVVsfOvu","title":"Installation Guide","pathname":"/unity-sdk/meta-quest/installation-guide","siteSpaceId":"sitesp_47oZZ","icon":"vr-cardboard","description":"Overview","breadcrumbs":[{"label":"Unity SDK"},{"label":"Meta Quest SDK","icon":"vr-cardboard"}]},{"id":"4lz5hXIEJJBj7t5MqnXt","title":"Map Mesh Downloader","pathname":"/unity-sdk/meta-quest/map-mesh-downloader","siteSpaceId":"sitesp_47oZZ","icon":"cubes","description":"Unity Editor Guide","breadcrumbs":[{"label":"Unity SDK"},{"label":"Meta Quest SDK","icon":"vr-cardboard"}]},{"id":"J3PR24v2NTaA7xtXhD14","title":"Authentication","pathname":"/unity-sdk/meta-quest/authentication","siteSpaceId":"sitesp_47oZZ","icon":"lock","description":"Authenticate the Quest SDK with credentials set in the Editor, or supply them at runtime.","breadcrumbs":[{"label":"Unity SDK"},{"label":"Meta Quest SDK","icon":"vr-cardboard"}]},{"id":"MaUhNZEdfpj3Tw90hDv7","title":"Sample Scenes","pathname":"/unity-sdk/meta-quest/sample-scenes","siteSpaceId":"sitesp_47oZZ","icon":"code-simple","description":"The sample scenes shipped with the Meta Quest SDK and what each one demonstrates.","breadcrumbs":[{"label":"Unity SDK"},{"label":"Meta Quest SDK","icon":"vr-cardboard"}]},{"id":"SeK1au5ZswomHBQgHX6G","title":"Single Frame Localization","pathname":"/unity-sdk/meta-quest/sample-scenes/single-frame-localization","siteSpaceId":"sitesp_47oZZ","icon":"image-landscape","description":"The Quest single frame localization scene, for a response of roughly 2 seconds per query.","breadcrumbs":[{"label":"Unity SDK"},{"label":"Meta Quest SDK","icon":"vr-cardboard"},{"label":"Sample Scenes","icon":"code-simple"}]},{"id":"kK7bpEVsobmpV4Nrp7fI","title":"Localization","pathname":"/unity-sdk/meta-quest/sample-scenes/localization","siteSpaceId":"sitesp_47oZZ","icon":"map-location-dot","description":"The Quest multi frame localization scene, capturing 4 to 6 passthrough frames when accuracy matters more than speed.","breadcrumbs":[{"label":"Unity SDK"},{"label":"Meta Quest SDK","icon":"vr-cardboard"},{"label":"Sample Scenes","icon":"code-simple"}]},{"id":"0C3ZoHaCo8Pqfz6VKVlT","title":"Object Tracking","pathname":"/unity-sdk/meta-quest/sample-scenes/object-tracking","siteSpaceId":"sitesp_47oZZ","icon":"cube","description":"The Quest object tracking scene, detecting a pre-scanned object from one passthrough frame and holding alignment in the background.","breadcrumbs":[{"label":"Unity SDK"},{"label":"Meta Quest SDK","icon":"vr-cardboard"},{"label":"Sample Scenes","icon":"code-simple"}]},{"id":"AENCjBFzXUkVQ0viXX4q","title":"Navigation","pathname":"/unity-sdk/meta-quest/sample-scenes/navigation","siteSpaceId":"sitesp_47oZZ","icon":"circle-location-arrow","description":"The Quest navigation scene, covering NavMesh baking, placing points of interest and the arrow based visual guidance.","breadcrumbs":[{"label":"Unity SDK"},{"label":"Meta Quest SDK","icon":"vr-cardboard"},{"label":"Sample Scenes","icon":"code-simple"}]},{"id":"356jqPzvw1k5zF87irmr","title":"API Reference","pathname":"/unity-sdk/meta-quest/api-reference","siteSpaceId":"sitesp_47oZZ","icon":"webhook","description":"API reference index for the MultiSet Quest SDK, listing the namespaces and manager components.","breadcrumbs":[{"label":"Unity SDK"},{"label":"Meta Quest SDK","icon":"vr-cardboard"}]},{"id":"L1RIKRYCLgPdzBR1hB1t","title":"MapLocalizationManager","pathname":"/unity-sdk/meta-quest/api-reference/maplocalizationmanager","siteSpaceId":"sitesp_47oZZ","description":"The Quest component for multi frame VPS localization from the passthrough camera, with auto, background and silent retry behaviour.","breadcrumbs":[{"label":"Unity SDK"},{"label":"Meta Quest SDK","icon":"vr-cardboard"},{"label":"API Reference","icon":"webhook"}]},{"id":"xxEyGRdmHLRM44yF1tw0","title":"SingleFrameLocalizationManager","pathname":"/unity-sdk/meta-quest/api-reference/singleframelocalizationmanager","siteSpaceId":"sitesp_47oZZ","description":"The Quest component for single frame VPS localization, a lighter alternative to the multi frame manager.","breadcrumbs":[{"label":"Unity SDK"},{"label":"Meta Quest SDK","icon":"vr-cardboard"},{"label":"API Reference","icon":"webhook"}]},{"id":"wTA7y6krLwL9kHTkk3EF","title":"ObjectTrackingManager","pathname":"/unity-sdk/meta-quest/api-reference/objecttrackingmanager","siteSpaceId":"sitesp_47oZZ","description":"The Quest component for object tracking, matching up to 10 object codes per query from the passthrough camera.","breadcrumbs":[{"label":"Unity SDK"},{"label":"Meta Quest SDK","icon":"vr-cardboard"},{"label":"API Reference","icon":"webhook"}]},{"id":"wewDp1vMebmONHhbyetT","title":"WebXR SDK","pathname":"/web-sdk/webxr-sdk","siteSpaceId":"sitesp_47oZZ","icon":"browsers","description":"Build AR web experiences with precise indoor localization using the Multiset VPS WebXR SDK","breadcrumbs":[{"label":"Web SDK"}]},{"id":"R0Z73XtE6CWovu4krdB5","title":"Authentication","pathname":"/web-sdk/webxr-sdk/authentication","siteSpaceId":"sitesp_47oZZ","icon":"lock","description":"Get credentials and authorize the Multiset client before starting a session","breadcrumbs":[{"label":"Web SDK"},{"label":"WebXR SDK","icon":"browsers"}]},{"id":"fPQxLvoJySYRWAcoKjMl","title":"Engine Integrations","pathname":"/web-sdk/webxr-sdk/engine-integrations","siteSpaceId":"sitesp_47oZZ","icon":"plug","description":"Adapters that connect the WebXR SDK to a rendering engine","breadcrumbs":[{"label":"Web SDK"},{"label":"WebXR SDK","icon":"browsers"}]},{"id":"iO1TMm7YdslCscBGxUKX","title":"Three.js Integration","pathname":"/web-sdk/webxr-sdk/engine-integrations/threejs-integration","siteSpaceId":"sitesp_47oZZ","icon":"cube","description":"Full end-to-end VPS integration with Three.js using ThreeAdapter","breadcrumbs":[{"label":"Web SDK"},{"label":"WebXR SDK","icon":"browsers"},{"label":"Engine Integrations","icon":"plug"}]},{"id":"K2NXmaTWdwhnrvt3KdZs","title":"Needle Engine Integration","pathname":"/web-sdk/webxr-sdk/engine-integrations/needle-engine","siteSpaceId":"sitesp_47oZZ","icon":"puzzle-piece","description":"Integrate Multiset VPS into Needle Engine projects using Inspector components or the NeedleAdapter API","breadcrumbs":[{"label":"Web SDK"},{"label":"WebXR SDK","icon":"browsers"},{"label":"Engine Integrations","icon":"plug"}]},{"id":"LnMwTMojDRHZ10BtS1L5","title":"Features","pathname":"/web-sdk/webxr-sdk/features","siteSpaceId":"sitesp_47oZZ","icon":"sparkles","description":"Capabilities and configuration beyond basic localization","breadcrumbs":[{"label":"Web SDK"},{"label":"WebXR SDK","icon":"browsers"}]},{"id":"PlBAIkreVdSdSmoZ021N","title":"Navigation","pathname":"/web-sdk/webxr-sdk/features/navigation","siteSpaceId":"sitesp_47oZZ","icon":"route","description":"AR indoor wayfinding on top of VPS localization, with pathfinding and an arrowed floor path","breadcrumbs":[{"label":"Web SDK"},{"label":"WebXR SDK","icon":"browsers"},{"label":"Features","icon":"sparkles"}]},{"id":"0aoLwndBvBvbNvU2a1Zz","title":"Object Tracking","pathname":"/web-sdk/webxr-sdk/features/object-tracking","siteSpaceId":"sitesp_47oZZ","icon":"crosshairs","description":"Detect and pose registered 3D objects using camera frames","breadcrumbs":[{"label":"Web SDK"},{"label":"WebXR SDK","icon":"browsers"},{"label":"Features","icon":"sparkles"}]},{"id":"dANwsuUwKWpUUFYf1XS9","title":"Localization Options","pathname":"/web-sdk/webxr-sdk/features/localization-options","siteSpaceId":"sitesp_47oZZ","icon":"sliders","description":"Tune localization accuracy with confidence filtering, hints, and background localization","breadcrumbs":[{"label":"Web SDK"},{"label":"WebXR SDK","icon":"browsers"},{"label":"Features","icon":"sparkles"}]},{"id":"4GtX9Nv1uFCO2rz0to8g","title":"Core Usage","pathname":"/web-sdk/webxr-sdk/features/core-usage","siteSpaceId":"sitesp_47oZZ","icon":"terminal","description":"Use XRSessionManager with any WebGL2 renderer without Three.js","breadcrumbs":[{"label":"Web SDK"},{"label":"WebXR SDK","icon":"browsers"},{"label":"Features","icon":"sparkles"}]},{"id":"v1jwdf7PFWWBgOZuYcmu","title":"API Reference","pathname":"/web-sdk/webxr-sdk/api-reference","siteSpaceId":"sitesp_47oZZ","icon":"book","description":"Full parameter and callback reference for all WebXR SDK classes","breadcrumbs":[{"label":"Web SDK"},{"label":"WebXR SDK","icon":"browsers"}]},{"id":"2HnFGytbo4fJQH1LedM2","title":"MultisetClient","pathname":"/web-sdk/webxr-sdk/api-reference/multisetclient","siteSpaceId":"sitesp_47oZZ","icon":"server","description":"HTTP client for authentication, localization, and object tracking requests","breadcrumbs":[{"label":"Web SDK"},{"label":"WebXR SDK","icon":"browsers"},{"label":"API Reference","icon":"book"}]},{"id":"VgJky5SrJqTFabjCn8Oe","title":"XRSessionManager","pathname":"/web-sdk/webxr-sdk/api-reference/xrsessionmanager","siteSpaceId":"sitesp_47oZZ","icon":"vr-cardboard","description":"Owns the WebXR session lifecycle, frame loop, camera capture, and localization timing","breadcrumbs":[{"label":"Web SDK"},{"label":"WebXR SDK","icon":"browsers"},{"label":"API Reference","icon":"book"}]},{"id":"sez8xfiZzLOAacBsSNHh","title":"ThreeAdapter","pathname":"/web-sdk/webxr-sdk/api-reference/threeadapter","siteSpaceId":"sitesp_47oZZ","icon":"cube","description":"Wires XRSessionManager to a Three.js renderer","breadcrumbs":[{"label":"Web SDK"},{"label":"WebXR SDK","icon":"browsers"},{"label":"API Reference","icon":"book"}]},{"id":"p1nbWOOb9Xk4FyoyUHO0","title":"NeedleAdapter","pathname":"/web-sdk/webxr-sdk/api-reference/needleadapter","siteSpaceId":"sitesp_47oZZ","icon":"puzzle-piece","description":"Needle Engine Behaviour that wires XRSessionManager to Needle's renderer","breadcrumbs":[{"label":"Web SDK"},{"label":"WebXR SDK","icon":"browsers"},{"label":"API Reference","icon":"book"}]},{"id":"3tWWM2wkSrAwEIqAPm2j","title":"MapSpace","pathname":"/web-sdk/webxr-sdk/api-reference/mapspace","siteSpaceId":"sitesp_47oZZ","icon":"map-location-dot","description":"The VPS map coordinate frame, positioned once per localization so every child follows","breadcrumbs":[{"label":"Web SDK"},{"label":"WebXR SDK","icon":"browsers"},{"label":"API Reference","icon":"book"}]},{"id":"HOLMvcpaYQNV7o8Tord3","title":"MapAnchor","pathname":"/web-sdk/webxr-sdk/api-reference/mapanchor","siteSpaceId":"sitesp_47oZZ","icon":"location-dot","description":"Needle Engine component that positions a GameObject at a map-local coordinate after localization","breadcrumbs":[{"label":"Web SDK"},{"label":"WebXR SDK","icon":"browsers"},{"label":"API Reference","icon":"book"}]},{"id":"26NNmlMo51daEdwFKucY","title":"iOS Swift Native","pathname":"/native-sdk/ios-swift-native","siteSpaceId":"sitesp_47oZZ","icon":"app-store-ios","description":"Add VPS localization and object tracking to an iOS app with the MultiSet Swift SDK, including quick start, requirements and token renewal.","breadcrumbs":[{"label":"Native SDK"}]},{"id":"uMEMQhUI6Wvg5fn5CAnw","title":"Sample Views","pathname":"/native-sdk/ios-swift-native/sample-views","siteSpaceId":"sitesp_47oZZ","description":"The SwiftUI sample views shipped with the iOS SDK, with a comparison of the localization modes.","breadcrumbs":[{"label":"Native SDK"},{"label":"iOS Swift Native","icon":"app-store-ios"}]},{"id":"S5Hi5jHoedtCVx43JfNS","title":"LandingView","pathname":"/native-sdk/ios-swift-native/sample-views/landingview","siteSpaceId":"sitesp_47oZZ","description":"The demo entry point view: SDK initialization, authentication callbacks, mode selection and the settings screen.","breadcrumbs":[{"label":"Native SDK"},{"label":"iOS Swift Native","icon":"app-store-ios"},{"label":"Sample Views"}]},{"id":"kO8iJrzi3bGajQXdgHWx","title":"ARLocalizationView","pathname":"/native-sdk/ios-swift-native/sample-views/arlocalizationview","siteSpaceId":"sitesp_47oZZ","description":"The iOS AR localization view, covering single and multi frame modes, auto and background localization, GPS hints and mesh display.","breadcrumbs":[{"label":"Native SDK"},{"label":"iOS Swift Native","icon":"app-store-ios"},{"label":"Sample Views"}]},{"id":"C8zV3BGkWtmHVYEVGOp4","title":"ARObjectTrackingView","pathname":"/native-sdk/ios-swift-native/sample-views/arobjecttrackingview","siteSpaceId":"sitesp_47oZZ","description":"The iOS AR view that detects a registered object, draws an animated outline mesh over it and re-tracks after AR tracking loss.","breadcrumbs":[{"label":"Native SDK"},{"label":"iOS Swift Native","icon":"app-store-ios"},{"label":"Sample Views"}]},{"id":"rygaZmc0yPpt8G7Qr1FO","title":"API Reference","pathname":"/native-sdk/ios-swift-native/api-reference","siteSpaceId":"sitesp_47oZZ","description":"API reference index for the MultiSet iOS SDK, covering MultiSetConfig, the MultiSetCallback protocol and LocalizationResult.","breadcrumbs":[{"label":"Native SDK"},{"label":"iOS Swift Native","icon":"app-store-ios"}]},{"id":"GUIgSC3DQgCAWmdUqDTB","title":"MultiSetConfig","pathname":"/native-sdk/ios-swift-native/api-reference/multisetconfig","siteSpaceId":"sitesp_47oZZ","description":"Every MultiSetConfig property on iOS: credentials, environment, localization mode, query mode, multi frame capture, confidence and pose consistency.","breadcrumbs":[{"label":"Native SDK"},{"label":"iOS Swift Native","icon":"app-store-ios"},{"label":"API Reference"}]},{"id":"rqDaRdAebiFws1n6h0Bq","title":"MultiSetCallback","pathname":"/native-sdk/ios-swift-native/api-reference/multisetcallback","siteSpaceId":"sitesp_47oZZ","description":"The protocol your app implements for SDK events: authentication, localization, tracking state, false positives and mesh loading.","breadcrumbs":[{"label":"Native SDK"},{"label":"iOS Swift Native","icon":"app-store-ios"},{"label":"API Reference"}]},{"id":"qYEcAnJGjIVSODnhjjwr","title":"LocalizationResult","pathname":"/native-sdk/ios-swift-native/api-reference/localizationresult","siteSpaceId":"sitesp_47oZZ","description":"The result delivered on a successful localization: computed pose versus raw server pose, geo coordinates, GeoPose and the supporting enums.","breadcrumbs":[{"label":"Native SDK"},{"label":"iOS Swift Native","icon":"app-store-ios"},{"label":"API Reference"}]},{"id":"6OwKocNaIPkmbv2PWkIO","title":"Android Native","pathname":"/native-sdk/android-native","siteSpaceId":"sitesp_47oZZ","icon":"android","description":"Add VPS localization and object tracking to an Android app with the platform agnostic MultiSet SDK, including quick start and requirements.","breadcrumbs":[{"label":"Native SDK"}]},{"id":"kC6xNF1qgMZNuB8ZMdI7","title":"Sample Activities","pathname":"/native-sdk/android-native/sample-activities","siteSpaceId":"sitesp_47oZZ","description":"The sample activities shipped with the Android SDK, with a comparison of the localization modes and object tracking.","breadcrumbs":[{"label":"Native SDK"},{"label":"Android Native","icon":"android"}]},{"id":"8fwaBXXzL5NFFxPTZdYF","title":"MainActivity","pathname":"/native-sdk/android-native/sample-activities/mainactivity","siteSpaceId":"sitesp_47oZZ","description":"The demo entry point activity: SDK initialization, authentication callbacks and navigation into the AR activities.","breadcrumbs":[{"label":"Native SDK"},{"label":"Android Native","icon":"android"},{"label":"Sample Activities"}]},{"id":"MqetzI1CC22gxeH7zL1l","title":"MultiSetLocalizationActivity","pathname":"/native-sdk/android-native/sample-activities/multisetlocalizationactivity","siteSpaceId":"sitesp_47oZZ","description":"The unified AR localization activity on Android, covering single and multi frame modes, auto and background localization, hints and mesh display.","breadcrumbs":[{"label":"Native SDK"},{"label":"Android Native","icon":"android"},{"label":"Sample Activities"}]},{"id":"5ARIvIWynLtNryvWFMx6","title":"ObjectTrackingActivity","pathname":"/native-sdk/android-native/sample-activities/objecttrackingactivity","siteSpaceId":"sitesp_47oZZ","description":"The Android AR activity that detects a registered object, renders its outline mesh and re-tracks after AR tracking loss.","breadcrumbs":[{"label":"Native SDK"},{"label":"Android Native","icon":"android"},{"label":"Sample Activities"}]},{"id":"yRA2RKYkRZwEN4FFD6mx","title":"API Reference","pathname":"/native-sdk/android-native/api-reference","siteSpaceId":"sitesp_47oZZ","description":"API reference index for the MultiSet Android SDK, covering the FrameSource integration boundary, sessions, configuration and callbacks.","breadcrumbs":[{"label":"Native SDK"},{"label":"Android Native","icon":"android"}]},{"id":"BLZNSoWhlwy8emCnr3EF","title":"FrameSource and Sessions","pathname":"/native-sdk/android-native/api-reference/framesource","siteSpaceId":"sitesp_47oZZ","description":"Supply camera frames to the Android SDK through FrameSource and CameraFrame, then run a LocalizationSession or ObjectTrackingSession.","breadcrumbs":[{"label":"Native SDK"},{"label":"Android Native","icon":"android"},{"label":"API Reference"}]},{"id":"DGyEFMauOKjMCZUxkrP0","title":"LocalizationConfig","pathname":"/native-sdk/android-native/api-reference/localizationconfig","siteSpaceId":"sitesp_47oZZ","description":"Every LocalizationConfig property on Android: auto and background localization, multi frame capture, confidence, GPS hints and image quality.","breadcrumbs":[{"label":"Native SDK"},{"label":"Android Native","icon":"android"},{"label":"API Reference"}]},{"id":"filinUPobULjnu5Mol1A","title":"ObjectTrackingConfig","pathname":"/native-sdk/android-native/api-reference/objecttrackingconfig","siteSpaceId":"sitesp_47oZZ","description":"Every ObjectTrackingConfig property on Android: object codes, auto and background tracking, confidence thresholds and image quality.","breadcrumbs":[{"label":"Native SDK"},{"label":"Android Native","icon":"android"},{"label":"API Reference"}]},{"id":"BIcSoZ3Q6D6MEC6itgBv","title":"App Localization","pathname":"/multiset-app/app-localization","siteSpaceId":"sitesp_47oZZ","icon":"location-dot","description":"Test localization inside the MultiSet App once a map is active, choosing between robust multi frame and fast single frame.","breadcrumbs":[{"label":"MultiSet App"}]},{"id":"hTp0j6Iw6eGc5wgqiFtS","title":"Content Space","pathname":"/multiset-app/content-space","siteSpaceId":"sitesp_47oZZ","icon":"layer-group","description":"Author and publish a location based AR experience on top of a VPS map, then share it by URL.","breadcrumbs":[{"label":"MultiSet App"}]},{"id":"cmrqAa11ga2fFgpNYIJ9","title":"Simulation Data Capture","pathname":"/multiset-app/simulation-data-capture","siteSpaceId":"sitesp_47oZZ","icon":"video","description":"Record localization simulation data at a physical location with the MultiSet app, then replay it in the Developer Portal or the Unity Editor.","breadcrumbs":[{"label":"MultiSet App"}]},{"id":"kWpr9RNprhtHwko8pHhY","title":"Migration Guide","pathname":"/workflow/migration-guide","siteSpaceId":"sitesp_47oZZ","icon":"arrow-down-up-across-line","description":"Move an existing AR project to MultiSet from Azure Spatial Anchors, Vuforia Area Targets or Vuforia Model Targets.","breadcrumbs":[{"label":"Workflow"}]},{"id":"66p14136xvexE1yvFqmC","title":"Azure Spatial Anchors","pathname":"/workflow/migration-guide/azure-spatial-anchors","siteSpaceId":"sitesp_47oZZ","description":"Replace Azure Spatial Anchors with the MultiSet VPS SDK, covering anchor migration options and SDK integration on Unity, native and Quest.","breadcrumbs":[{"label":"Workflow"},{"label":"Migration Guide","icon":"arrow-down-up-across-line"}]},{"id":"35WlRJqf8HMsUcys1JYG","title":"Vuforia AREA Targets","pathname":"/workflow/migration-guide/vuforia-area-targets","siteSpaceId":"sitesp_47oZZ","description":"Move from Vuforia Area Targets to MultiSet VPS, reusing your existing scan files or re-scanning with the MultiSet app.","breadcrumbs":[{"label":"Workflow"},{"label":"Migration Guide","icon":"arrow-down-up-across-line"}]},{"id":"4bFQHMSKN5VzrZgBVJhK","title":"Vuforia Model Targets","pathname":"/workflow/migration-guide/vuforia-model-targets","siteSpaceId":"sitesp_47oZZ","description":"Move from Vuforia Model Targets to MultiSet Object Tracking, reusing your existing 3D scan of the object.","breadcrumbs":[{"label":"Workflow"},{"label":"Migration Guide","icon":"arrow-down-up-across-line"}]},{"id":"kj31ec0gGBbpJyhrZw8n","title":"Guides","pathname":"/workflow/guides","siteSpaceId":"sitesp_47oZZ","icon":"map","description":"Practical guides for working with MultiSet outside the SDKs","breadcrumbs":[{"label":"Workflow"}]},{"id":"8a0d9U1vX33sAIAMU2D7","title":"Find Hint Coordinates","pathname":"/workflow/guides/find-hint-coordinates","siteSpaceId":"sitesp_47oZZ","icon":"crosshairs","description":"Capture a position on a Map or MapSet mesh and use it as the HintPosition and HintFloorHeight for a MultiSet Localization query.","breadcrumbs":[{"label":"Workflow"},{"label":"Guides","icon":"map"}]},{"id":"KeBwAhlTzu3bW3ptNM1s","title":"Integration with IoT Devices","pathname":"/workflow/guides/integration-with-iot-devices","siteSpaceId":"sitesp_47oZZ","icon":"sensor-on","description":"Add centimetre level positioning to a camera enabled IoT device such as an ESP32 by querying the VPS API, with a sample C++ sketch.","breadcrumbs":[{"label":"Workflow"},{"label":"Guides","icon":"map"}]},{"id":"QW9JSldO05JLeCPchoBn","title":"Unity SDK Update guide","pathname":"/workflow/guides/unity-sdk-update-guide","siteSpaceId":"sitesp_47oZZ","icon":"unity","description":"Update the MultiSet Unity SDK through the Package Manager Git URL and keep your changes to the sample scenes.","breadcrumbs":[{"label":"Workflow"},{"label":"Guides","icon":"map"}]},{"id":"Z3INCp9V2SKF6Hxt0nvu","title":"Editing Point Cloud Data","pathname":"/workflow/guides/editing-point-cloud-data","siteSpaceId":"sitesp_47oZZ","icon":"scissors","description":"A practical guide to editing, cleaning, and merging .e57 point cloud files using CloudCompare.","breadcrumbs":[{"label":"Workflow"},{"label":"Guides","icon":"map"}]},{"id":"lkVWJsRfivrfc60jOOxf","title":"Third-party attributes","pathname":"/workflow/guides/third-party-attributes","siteSpaceId":"sitesp_47oZZ","icon":"scale-balanced","description":"Open source licences and attributions for third-party components used by MultiSet.","breadcrumbs":[{"label":"Workflow"},{"label":"Guides","icon":"map"}]}]}