# Changelog

## v1.11.1 (2025-05-29)

### Fixed

- Fixed camera selection for iOS devices using Chinese as primary language.

## v1.11.0 (2025-05-28)

### Added

- Better gravity alignment for Spatial AR (increases visual localization accuracy)

### Fixed

- Fixed memory leak when using Spatial AR continuous localization

## v1.10.0 (2025-04-28)

### Changed

- Reduced SDK resources for Spatial AR, improving load times.
- Improved accuracy for Spatial AR visual localization.

## v1.9.1 (2025-04-01)

### Changed

- Internal refactor

## v1.9.0 (2025-03-10)

### Added

- New 'trackingCalibration' configuration option to enforce tracking stability before performing visual localisation (Spatial AR). As soon as the tracking is calibrated, a new SDK event (OnirixSDK.Event.OnTrackingCalibrated) is raised.

## v1.8.9 (2025-02-18)

### Changed

- Resolved an issue with Spatial AR that could impact visual localization accuracy on iOS.

## v1.8.8 (2025-01-15)

### Added

- Allow to specify visual localization quality level (accuracy vs speed) for spatial AR through 'spatialLocalizationAccuracyLevel' configuration parameter.

### Fixed

- Spatial localization files are now read on demand to prevent unnecessary memory consumption.

## v1.8.7 (2024-11-20)

### Added

- New ‘imageContinuousDetection’ flag to allow pose refinement when using combined tracking.

### Changed

- New visual localization algorithm for Spatial AR which improves localization speed and performance.
- Better pose smoothing for Spatial and Combined Tracking.
- Combined Tracking now ensures the image is in a good perspective to perform detection, minimizing any possible pose error.

## v1.8.6 (2024-11-13)

### Added

- Included ‘OnWebXRUnsupported’ event which fires up when WebXR API is not available.
- Added a new fallback method to hot-swap into SLAM (Onirix World-Tracking) or Rotation modes while in a faulty WebXR session (not initializing or not receiving hit test updates).

## v1.8.5 (2024-10-09)

### Added

- Improvements on visual localization for Spatial AR.

## v1.8.4 (2024-09-26)

### Fixed

- Fixed issue with Image-Tracking and ImageTrackingMode.World submode when WebXR is available.

## v1.8.3 (2024-09-23)

### Added

- Optimized image detection performance in projects with several markers.
- Added 'requestStallTimeout' and 'hitTestStallTimeout' configuration options which allow to set timeouts (in milliseconds) to trigger new 'OnRequestStall' and 'OnHitTestStall' events for controlling problems within a WebXR session that may occur in some devices or browser versions.

## v1.8.2 (2024-08-20)

### Added

- Added Cylinder tracking support.

## v1.8.1 (2024-07-24)

### Fixed

- Fallback to Onirix world tracking whenever WebXR initialization fails for any reason.

## v1.8.0 (2024-07-01)

### Changed

- Increased performance of Spatial AR visual localization

## v1.7.2 (2024-06-17)

### Fixed

- Fix camera selection for Brave browser.

## v1.7.1 (2024-05-31)

### Fixed

- Fixed a race condition when using ImageTrackingMode.World which could produce an OOM error.

## v1.7.0 (2024-05-30)

### Added

- Added sub-modes for Image-Tracking:
  - Image: For tracking the image (default)
  - Rotation: For 360 tracking after detecting the image
  - World: For tracking the world after detecting the image

## v1.6.14 (2024-05-15)

### Changed

- More robust rear camera selection

## v1.6.13 (2024-05-03)

### Fixed

- Fix camera selection on iOS for certain devices

## v1.6.12 (2024-04-29)

### Fixed

- Fixes related to input events when using Onirix Player app.
- Avoiding pollution of WebGL context when using WebXR.

## v1.6.11 (2024-04-22)

### Fixed

- Fixes for Spatial AR localization

## v1.6.10 (2024-04-12)

### Fixed

- Fixes for OnTouch events

## v1.6.9 (2024-04-05)

### Fixed

- Fixed a FOV issue within Web XR sessions

## v1.6.8 (2024-04-03)

### Added

- Supporting Spatial AR from Onirix Player app

## v1.6.7 (2024-03-18)

### Fixed

- Fix camera feed placement in Samsung Internet.

## v1.6.6 (2024-03-15)

### Added

- Avoid asking for WebXR permissions from Onirix Player app

## v1.6.5 (2024-02-28)

### Added

- Upgraded SDK package for Spatial mode now simplifies deployment by eliminating the need for self-hosting workers on user domains.

## v1.6.4 (2024-02-28)

### Added

- Added 'highResolutionCamera' configuration parameter (default: false) to increase the resolution of the camera feed.

## v1.6.3 (2024-02-14)

### Added

- The init method can now throw a 'ReconstructionPendingError' to indicate that the Spatial scene is not yet ready for localization.

## v1.6.2 (2024-02-02)

### Fixed

- Other fixes for some iOS WebXR-compatible browsers (Mozilla XR Viewer, XR Browser).

## v1.6.1 (2024-02-01)

### Fixed

- Fixed a bug that prevented initialization in some iOS WebXR-compatible browsers (Mozilla XR Viewer, XR Browser).

## v1.6.0 (2024-01-25)

### Added

- Introduced 'Spatial' mode enabling localization within previously scanned environments (spaces). This feature allows for precise placement of virtual objects in that spaces.

## v1.5.7 (2024-01-22)

### Added

- Improved World-Tracking to handle better outdoor environments and rotation-only movements.

## v1.5.6 (2023-12-05)

### Added

- Added "cameraAccess" config parameter for enabling WebXR raw camera access feature.

## v1.5.5 (2023-11-22)

### Fixed

- Hit test plane now faces camera when inside a WebXR session
- Fixed touch events for some iOS browsers (Mozilla XR Viewer and XR Browser)

## v1.5.4 (2023-11-15)

### Fixed

- Fixed backface camera selection under certain circumstances

## v1.5.3 (2023-10-20)

### Fixed

- Fixed other issues regarding resizing the browser window during a WebXR session.

## v1.5.2 (2023-10-12)

### Fixed

- Fixed other bug that produced render canvas not to resize correctly within a WebXR session.

## v1.5.1 (2023-10-11)

### Fixed

- Fixed bug that produced render canvas not to resize correctly within a WebXR session.

## v1.5.0 (2023-09-20)

### Added

- Added support for WebXR capable iOS browsers (Mozilla XR Viewer and XR Browser).

### Fixed

- Mitigation for WebXR orientation bug in Google Chrome.

## v1.4.2 (2023-07-25)

### Fixed

- World-Tracking jitter in certain circunstances.

## v1.4.1 (2023-07-19)

### Fixed

- World-Tracking fixes

## v1.4.0 (2023-07-18)

### Changed

- World-Tracking now handles better rotation-only movements.
- Adaptative tracking parameters for a more balanced performance / quality tradeoff.

## v1.3.1 (2023-06-21)

### Changed

- Pose smoothing adjustements to reduce jitter.
- Minor performance improvements.

## v1.3.0 (2023-06-13)

### Changed

- Significant improvements in World-Tracking. Tracking now works well in non-planar environments and is more robust under high motion and ilumination changes.

## v1.2.2 (2023-06-02)

### Changed

- Disabled camera access in WebXR as some devices were showing the android status bar as an overlay due to a bug.
- Improved pose filtering for image tracking.

## v1.2.1 (2023-05-26)

### Added

- Allow camera access in WebXR.
- New "getXRParams" method for retreiving webXR session info.

## v1.2.0 (2023-05-25)

### Added

- Significant improvements in World-Tracking. Less drift and better stability in textureless environments.
- New "TRACKING_LIMITED" World-Tracking status. It outputs when the tracking was lost but partially recovered.

# Changelog

## v1.1.3 (2023-05-17)

### Fixed

- Destroy method now only removes canvas if it was not provided on SDK initialization

## v1.1.2 (2023-02-22)

### Fixed

- CORS error when loading images at runtime (addImage function) from external sites

## v1.1.1 (2023-02-21)

### Fixed

- QR Code pose orientation

## v1.1.0 (2023-02-10)

### Fixed

- OnLost(undefined) call before any OnDetected call for Image and QRCode tracking.

### Changed

- Improved accuracy and performance of Onirix custom World-Tracking.

## v1.0.0 (2023-01-19)

### Breaking changes:

- All tracking modes now require calling the `start` method after initializing in order to run.
- Removed `useWebXR` config option. It can now be disabled using the new `disableWebXR` option.

### New

- Added **custom World Tracking** capabilities for Surface mode in case running devices don't support WebXR. Can also be forced by using the config option `disableWebXR = true` to develop more homogeneous experiences between devices and operating systems.
- Added `start` and `stop` methods in order to control when tracking is active after initialization.
- Added `OnFrame` event in order to synchronize tracking with 3D engine rendering.
- Added `disableWebXR` and `disableWorldTracking` options for Surface mode.

## v0.4.5 (2022-11-15)

### Changed

- Render canvas is now added as the first body element to avoid modifying z-index for same index UI elements

## v0.4.4 (2022-09-16)

### Changed

- Updated permission dialog styles

## v0.4.3 (2022-07-15)

### Fixed

- Fixed rotation on hit test

### New

- Added OnTouchStart, OnTouchEnd, OnTouchMove and OnSessionEnd events

## v0.4.2 (2022-04-02)

### Changed

- Use WebGL2 when possible

## v0.4.1 (2022-03-16)

### New

- First npm build

## v0.4.0 (2022-02-24)

### Changed

- Decreased size of WASM module significantly.

## v0.3.0 (2021-07-16)

### Breaking changes:

- SDK has now an **ES6 module** version. This allows for tree-shacking and other language improvements.
- SDK token is now passed in the OnirixSDK constructor instead of the config object.

### New

- Added **stop()** method for stopping the SDK and free resources.
- Added **hit test support** for Surface-Tracking mode. A new hit test event will be triggered each time a surface is detected.
- Added **addImage(url)** method to allow adding image markers on runtime. Currently only 640x480px images are supported.
- Added **unsubscribe(eventListener)** method to allow unsubscribing from OnirixSDK events.
- Other minor improvements

## v0.2.0 (2021-05-22)

### New

- Added **support for WebXR device API**. This means, when using surface mode, objects will remain anchored to a surface (both in position and rotation) and thus, provide a more reallistic AR experience. This feature is now used by default on compatible devices, and automatically falled back to the old gyroscope emulated mode for non-compatible devices.

## v0.1.0 (2021-03-26)

- Initial release.
- Includes 3 tracking modes:
  - Surface (gyroscope emulated)
  - Image
  - QR Code
