One coordinate frame at origin (0,0,0), +Y up and metric scale, feeding four output assets: mesh as GLB, point cloud as PCD, Gaussian splat as PLY or SPZ, and a 360 tour of equirectangular nodes.

Four assets. One frame. Open formats.

Every map returns a mesh and a point cloud. Ask at upload and it returns a Gaussian splat and a navigable 360° tour of the same space.

Standard files. Metric scale. One origin.

What localizes stays inside the platform. What you download is yours to build on, in your engine, your BIM tool, or a viewer you write yourself.

What localizes never leaves.

Localization runs on a map's feature data. That never leaves the platform and is never downloaded.

Alongside it, processing publishes output assets: visual representations of the same space you can preview, download, and load into your own stack. Editing one never changes localization accuracy.

Mesh, splat and panoramas share the map frame at origin (0,0,0) with +Y up. The point cloud is the exception: map.pcd is right-handed with +Z up, so swap Y and Z on every point.
One frame, not four
The mesh, the splat and the panoramas share the map's local frame: origin at (0, 0, 0), +Y up, metric scale. A VPS query returns poses in that same frame, so content aligned against any one of them lands correctly against all of them.

Always produced: mesh and point cloud, from every input
On request:

- Gaussian splat, from 360 video
- 360° tour, from any capture that carries panoramic imagery

Three ways to get your assets

Developer Portal
Open a map from the Maps list. View Mesh, View Splat and View Pano each open a viewer. The mesh viewer downloads the raw and textured GLB. The splat viewer hosts the measure-to-scale tool.
Unity Editor
Map Mesh Downloader pulls the mesh into your scene under the MapSpace object, so content is laid out against real geometry before you deploy. Downloaded meshes are tagged EditorOnly and excluded from the build.
REST
Every file is fetched through the /file endpoint, which exchanges a storage key for a short-lived download URL. The portal's own viewers run on these calls, so anything it does, your application can do.

What each asset is for

Mesh

Raw and textured GLB. Ship raw for occlusion, colliders and NavMesh baking: it is far smaller, and physics only needs geometry. Use textured when a human is looking. People captured during scanning are masked out of the texture.
Point cloud

Binary PCD, XYZ only, voxel downsampled at 5 cm. For measurement, clash detection, and importing the space into CAD, BIM or point cloud tooling that does not read GLB.
Gaussian Splat

Raw .ply and compressed .spz, around a tenth the size. Holds what a mesh cannot: view-dependent detail, thin structures, reflective surfaces. Render the file MultiSet returns, not the one you uploaded.
360° Virtual Tour

A graph of panorama nodes, each carrying its position, orientation and neighbour distances in metres. Spatially aware, so a viewer can jump to the node nearest a location instead of stepping along a fixed path.
One tour across a MapSet

Maps grouped in a MapSet present as one continuous tour, bridging where two maps meet. Compare mode holds a single viewpoint across two map versions, so a space reads before and after a change without moving.
Nothing proprietary

GLB, PLY, SPZ, PCD, equirectangular images. Every file opens in tooling you already run, and none of it is locked to our renderer. We hold the coordinate frame. What you build on it belongs to you.

What your input produces

A mesh and a point cloud come back from every input. The splat and the tour depend on what your capture carries, and on asking for them at upload.
Read the Docs
INPUT
Always produced
On request
360 video (.insv or equirectangular .mp4)
Mesh, point cloud
Gaussian splat, 360° tour. The only input that yields all four
E57 point cloud
Mesh, point cloud
360° tour, where the scan carries panoramas
Matterport MatterPak
Mesh, point cloud
360° tour
LiDAR capture (MultiSet App, Unity SDK)
Mesh, point cloud
None. No panoramic imagery to build a tour from
Gaussian splat (.ply plus poses.json)
Mesh, point cloud, and your splat re-aligned to the mesh
Nothing to request
Every input
Mesh and point cloud, always
Chosen at upload, never added afterwards
Frequently asked questions
What do I get back from a map?

A mesh and a point cloud from every input, and on request a Gaussian splat and a navigable 360° tour. The mesh arrives as raw and textured GLB, the splat as .ply and .spz, the point cloud as a binary PCD at 5 cm spacing, and the tour as equirectangular panoramas carrying position, orientation and neighbour links.

Can I add a splat or a tour to a map later?

No. The assets field is read once, when the map is created, and cannot be changed afterwards. A map uploaded without pano has no panoramas and the Pano APIs return 404 for it. Getting a tour then means creating a new map and uploading the scan again. Check hasPano on Map details to see what a given map ended up with. Decide at upload.

Why is my point cloud rotated 90 degrees?

The point cloud is the one asset that does not share the mesh's frame. map.pcd is right-handed with +Z up, while the mesh and the pose files are left-handed with +Y up. Swap the Y and Z components of every point, so (x, y, z) becomes (x, z, y). The swap flips handedness, which is what makes the two agree. A rotation on its own leaves a mirrored cloud. One conversion works across every map in your account.

Why does my splat not line up with my poses?

Because the file being rendered is the one you uploaded. The splat MultiSet returns is transformed into the map's coordinate frame so it sits exactly on the generated mesh. Your original sits in whatever arbitrary frame your reconstruction tool used. Render the returned .ply or .spz and everything registers.

Does editing an asset affect localization accuracy?

No. Accuracy is computed from the map's feature data, not from the visual assets. Clean up or re-texture a mesh in Blender and push it back with a mesh upload at any time, without re-processing the map. Keep the origin at (0, 0, 0) or everything placed against it will be offset once poses arrive.

Which input gives me everything?

360 video. It is the only input that can produce all four assets from one capture: a mesh, a point cloud, a splat and a tour. E57 and MatterPak scans carry their own panoramic imagery, so they can produce a tour but no splat. LiDAR captures from the MultiSet App and Unity SDK have no panoramas, so no tour is available for them at any setting.

Can I build my own viewer?

Yes. Everything the Developer Portal viewer does is available over REST: list the maps that have tours, load a complete tour in one call, or fetch just the neighbourhood around a user as they move. The files are standard formats, so nothing is tied to our renderer.