Changelog
All notable changes to the Manna module will be documented in this file.
Latest release
Manna [0.6.98] - 2024-04-29
Added
- Various new functions in
MathHelpers.cs
- Dependency to
Ark
module for computer vision computations!
Changed
- This version of Manna is using new Domain SDK, Read about it here!
- Interface did not yet change, but planned changes include:
- opening up calibration steps to developers, instead of an all-in-one step solution
- let developers select the domain when scanning a lighthouse, rather than simply the pose
Removed
- Any internal implementation of Scanner was removed: Manna is now dependent on Ark package for QRCode scanning and pose estimation!
Previous releases
Manna [0.6.89] - 2023-12-20
Changed
- Drastically improved GPU-based scanner speed (both on iOS and Android)
- Android ARCore support tested for OS 12+
- Replaced usage of
StaticLighthouseData
instead ofLighthousePose[]
- Added inline documentation for developers: now SDK has full code XML documentation visible from the code
- Various internal bugfixes
Manna [0.6.58] - 2023-09-18
Added
- Introduced Pose Optimizer: on each scan, reported poses are more precise since the error on the corners gets iteratively minimized
Fixed
- Fixed a bug appearing when the Framestamp is not correctly scanned, and a valid timestamp is not found
- Updated module to support the newly released Conjurekit
Manna [0.6.51] - 2023-08-25
Added
- Added wider support for more Android devices
- Added a public property,
CalibrationCooldownMs
. The user is now able to control the cooldown timer between subsequent calibrations in milliseconds: a higher value means a higher waiting period.
Fixed
- Precision improvement on QRCode scanning
- Reduced performance impact on GPU on the scanner
Manna [0.6.34] - 2023-07-24
Added
- A new suggested method to get frames from camera for Scanner. The advantage of the new method is that the image is kept on GPU to be used by the GPU scanner, preventing needless copies to the CPU.
- previous method: get an XRCPU image from ARCameraManager
- WARNING: this method does not currently work on Android
- new method: get the texture from GPU from ARCameraBackground (works for both iOS and Android)
- previous method: get an XRCPU image from ARCameraManager
- Added support for more generic
Texture
image type (from Texture2D)- Also RenderTexture can be used now for scanning
- Confirmed Android scanner support for the following devices
- OnePlus 7 Pro
- Google Pixel 4 XL
- Google Pixel 7 Pro
- Google Pixel 6 Pro
- Samsung Galaxy S21 Ultra
- Samsung Galaxy S22 Ultra
- Samsung A53 5G
- Samsung Galaxy Tab S7
- Samsung FE 21
- Poco X3 pro
Changed
- Code samples: updated how the frames are retreived from ARFoundation
Fixed
- Improved precision in QRCode scanning
- Fixed an issue with decoding failing when the wrong amount of data is detected in the QRCode
Manna [0.6.25] - 31-05-2023
Added
- Introducing Framestamp scanning: a visual timestamp is scanned together with the dynamic QRCode/Lighthouse, and it is used to increase time precision and decouple pose estimation from the "scanning" and the "scanned" device clock discrepancies
- Previous QRCode formats (without frame stamp) are still supported and will use device timestamps as before
- Introduced the method
ProcessVideoFrameTexture
, which is responsible for the pose detection of a QRCode given:Texture
: the Texture2D to scanProjectionMatrix
: the camera projection matrix, the coordinate transform from camera space to screen coordinatesWorldToCameraMatrix
: the coordinate transforms from camera space to world space
- An overload of method
ProcessVideoFrameTexture
has also been added, which allows developers to provide:- A custom
TextureToProjectedCoordinatesMatrix
: from texture to screen coordinates ProjectionMatrix
: same as the overloaded methodWorldToCameraMatrix
: same as the overloaded method
- A custom
Changed
- Adapted to support new ECS API
- Introduced proprietary 4th Generation scanner implementation for
Manna
- Uses Compute Shaders (on GPU) instead of CPU for QRCode corner detection in the image
- Improved pose estimation over previous methods
- Updated Samples: how to provide camera frames to Manna from ARFoundation 4
Removed
- Removed mandatory dependency from ARFoundation
- Developers should now provide the frame to scan, using the method
ProcessVideoFrameTexture
- Any library that can provide the needed data will work (including ARFoundation 4 or 5)
- Developers should now provide the frame to scan, using the method
- Removed the ImageTracker parameter from
Manna
Previous releases
Manna [0.5.80] - 15-03-2023
Added
- Introduced Native iOS scanning as a separate scan method, which uses iOS QR code scanning from native SDK
- Using One-Frame calibration: pose estimation is performed on a single image frame and with higher millimeter precision
- Native scanning on iOS requires a minimum version of ARFoundation 4.2.7, due to a bug in ARKit/ARF causing a crash.
- Introduced Asynchronous scanning on both iOS/Android (all scan methods)
- Support for App landScape mode while scanning
- Internal database of offsets between cameras and screen upper right corners for various phone models for better alignment when scanning Dynamic Lighthouses
- Option for vibrating on calibration: to enable it, set
Manna.VibrateOnReadPose
for the device being scanned andManna.VibrateOnSendPose
for the scanning device. - Uses device offsets in ConjureKit configuration when available
Fixed
- Application is not stuttering/freezing anymore due to scanning being performed asynchronously
- Avoided ZXing-generated border glitch, appearing on certain QRCode resolutions due to a bug in ZXing
Changed
- Session origin is required in the constructor as transform: this removes the dependency from ARSession and lays support for ARFoundation 5
- Vibration is no longer default on calibration
- Updated Samples
- Scanner now converts the image to Greyscale before processing to increase performance
Manna [0.5.17] - 2022-11-22
Added
- Experimental Android (ARCore) support
- Camera offset/placement of QR code anywhere on the screen
- "VibrateOnReportPose" option for the master phone
- "VibrateOnReadPose" option for the slave phone
MillisecondsSinceLastOnCalibrationSuccess()
methodOwnDeviceScreenPixelsPerInch()
methodSetLighthousePosition()
method
Changed
- Optimized lighthouse positioning
- Better logging
Manna [0.5.11] - 2022-11-09
Added
- New callback
OnBeforeCalibration
- New callback
OnCalibrationSuccess
Changed
AukiDebug
log messages consistently useAukiDebug.LogInfo
- Updated samples
Manna [0.5.0] - 2022-10-17
Changed
- Updated namespace to
Auki.ConjureKit.Manna.*
- Updated package name and description
- Newtonsoft JSON reference bumped to 3.0.2
- Updated samples