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

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

Variant
What it is
File
Use it for

Raw

Untextured, low-poly geometry

.glb

Occlusion, colliders, NavMesh baking, anything shipped to the device

Textured

The same geometry carrying photo texture from the capture

.glb

Visual preview, editor-time content placement, sharing the scan, BIM and analytics pipelines

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),

  • +Y up,

  • 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.

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.

Last updated

Was this helpful?