> For the complete documentation index, see [llms.txt](https://multiset.gitbook.io/multiset/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://multiset.gitbook.io/multiset/quick-access/changelog/v2/version-2.3.0.md).

# Version 2.3.0

### v2.3.0 26-August-2026

**Added**

1. **Drone-based mapping and localization.** Map a site from the air with any drone carrying a 360° camera, then localize against it from a drone or a ground device. The Antigravity A1 uploads its raw `.insv`; every other 360 drone, the DJI Avata 360 among them, uploads stitched equirectangular video. [Antigravity A1 (Drone)](/multiset/fundamentals/third-party-scans/360-videos/antigravity-a1-drone.md)
2. **Equirect 360° panorama query.** Localize from a single full 360° panorama by setting `imageType` to `equirect` on the form-data query endpoint. No camera intrinsics are needed, and the returned pose describes the forward-looking view, meaning the direction the centre column of the image faces. Well suited to tripod, trolley, and robot captures, where the query does not depend on the camera happening to face a well-mapped surface. [Equirect Query](/multiset/fundamentals/localization/equirect-query.md)
3. **360° Virtual Tours from `.e57` and MatterPak scans.** Panoramas embedded in a point cloud scan can now be published as a navigable tour, the same as a 360 video capture. Request it at upload with `source.metadata.assets`. [Map Upload](/multiset/fundamentals/rest-api-docs/map-upload.md)
4. **Point cloud output for every map.** Every processed map now publishes `PointCloud/map.pcd`, a binary PCD of XYZ points at 5 cm spacing, including maps captured with the MultiSet App and Unity SDK. Download it from the Map Details page or through the `/file` endpoint, and find it on the map object as `pointCloud`. Note it is right-handed with `+Z` up, while the mesh is `+Y` up. [Mesh](/multiset/fundamentals/maps/output-asset/mesh.md)
5. **Optional tracking poses on the multi-frame query.** The per-image `imageN_data` tracking pose is now optional, so the multi-frame query can be used outside a SLAM session, for example from a set of stills or a rig with no tracking. Send a pose for every image, or for none. When the poses are not used the images must visually overlap each other, and a partial set is treated the same as sending none. [Map Query](/multiset/fundamentals/rest-api-docs/map-query.md)
6. **Stitched equirectangular video as a mapping input.** Any 360° camera exporting a monoscopic 2:1 equirectangular `.mp4` can now build a map, hand-held or flown. [Equirectangular MP4](/multiset/fundamentals/third-party-scans/360-videos/equirectangular-mp4.md)
7. **False-positive detection for localization.** A high-confidence pose can still match the wrong part of a repetitive space. The SDK now cross-checks each response against the device's own motion, discards a pose that implies an anchor too far from the last accepted one, and fires `onLocalizationFalsePositive` instead of `onLocalizationSuccess`, leaving the scene untouched. [MultiSetCallback](/multiset/native-sdk/ios-swift-native/api-reference/multisetcallback.md)
8. **Configurable API environment.** `MultiSetConfig` now takes a `baseURL`, defaulting to `MultiSetConfig.productionBaseURL`, and `MultiSet.shared.activeBaseURL` reports the host in use. Switching environments needs `release()` then `initialize(...)`. [MultiSetConfig](/multiset/native-sdk/ios-swift-native/api-reference/multisetconfig.md)

**Fixed**

1. **Long sessions no longer stop working.** Earlier versions read the access token once at initialization, so every authenticated call failed once it expired until the app was restarted. The SDK now reads each token's lifetime and renews ahead of expiry, renews and replays once on a `401`, and shares a single renewal across concurrent requests.
2. **An `.e57` with no images fails fast.** Rejected at upload with a clear reason instead of failing later in processing. [Third Party Scans](/multiset/fundamentals/third-party-scans.md)
3. **One dead scan no longer fails the whole `.e57`.** An unreadable or empty scan is skipped and the rest of the file processes. [Matterport E57](/multiset/fundamentals/third-party-scans/matterport-e57.md)
4. **360° tours were 90° off in yaw.** Tours built from a scan are now oriented correctly. [360° Virtual Tour (Pano)](/multiset/fundamentals/rest-api-docs/pano-360-virtual-tour.md)
5. **Reconstruction accuracy.** Fixes to loop closure, to tilt on captures with no IMU, and to rotation on aerial equirectangular footage. [360 Videos](/multiset/fundamentals/third-party-scans/360-videos.md)
6. **Denser, cleaner meshes.** More detail, fewer artefacts. [Mesh](/multiset/fundamentals/maps/output-asset/mesh.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://multiset.gitbook.io/multiset/quick-access/changelog/v2/version-2.3.0.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
