Mesh
Every map produces a raw (untextured) and a textured GLB mesh of the scanned space.
Overview
The mesh is the geometric representation of a mapped space. It is produced for every input type, including Gaussian Splat uploads, where the mesh is reconstructed from the splat. It is what you use for occlusion, collision, and navigation at runtime, and for placing content against real-world geometry before you deploy.
Two variants
Ship the raw mesh when the mesh runs on device: it is far smaller, and occlusion and physics only need geometry. Use the textured mesh when a human is looking at it. You can reduce the raw mesh further in any 3D tool (Blender, for example) by lowering the poly count.
People captured during scanning are masked out when the mesh is textured, so passers-by do not end up baked into the texture.
Coordinate frame
Both meshes sit in the map's local frame:
origin at
(0, 0, 0),+Yup,metric scale, where 1 unit is 1 metre.
A VPS query returns poses in that same frame, so anything you align to the mesh in the editor appears in the same physical spot at runtime. See Coordinate Systems for the left-handed and right-handed conventions.
Do not move the origin of a downloaded mesh. It must stay at (0, 0, 0), otherwise everything you place against it will be offset once VPS poses arrive.
Getting the mesh
Developer Portal
Open the map from the Maps list and click View Mesh in the Map Details toolbar. The viewer lets you inspect the mesh and download the raw and textured GLB files.
Unity Editor
The Map Mesh Downloader pulls the mesh straight into your scene under the MapSpace GameObject, so you can lay out content against real geometry. Downloaded meshes are tagged EditorOnly and excluded from the build. At runtime, MapMeshHandler can fetch and display the mesh instead.
REST API
Meshes are stored per map and fetched through the /file endpoint, which exchanges a storage key such as <accountId>/<mapId>/Mesh/TexturedMesh.glb for a short-lived, pre-signed download URL.
Replacing a mesh
If you clean up or re-texture a mesh externally, you can push it back to the map with POST /vps/map/{mapCode}/mesh-upload-url, choosing meshType: textured or meshType: raw. See Map Operations.
Replacing a mesh does not affect localization accuracy. Queries run on the map's feature data, not on the mesh, so the visual mesh can be updated at any time without re-processing the map.
Last updated
Was this helpful?

