EasyAR SDK 3.0 is a upgrade version for EasyAR SDK 2.x. EasyAR SDK 3.0 contains many improvements, mainly in the following aspects:

  1. A more flexible dataflow-oriented component-based API

    The EasyAR API is reorgnized to a dataflow-oriented and component-based one in EasyAR 3.0, in order to enable data exchange to and from other systems, which can be used to fullfil more flexible requirements.

    In addition, external camera interoperability and external algorithm interoperability are implemented.

    External camera supports inputing image frames for AR recognition and tracking. AR display can be independent from phone built-in camera. Provided the device connected to a external camera and receiving video feed, it can be converted to image frame and pass into EasyAR SDK for AR application. This can help EasyAR developers to build application for AR/VR/MR eyewears, drones and USB devices.

    The new API supports developers to connect EasyAR to non-built-in algorithms, providing more flexible ability expansion.

  2. Programming language and platform support

    Add support for C# for .Net/Mono.

    Update C++11 interface to C++17, and employ std::optional to clearly define the nullability for parameters and return values.

    Update Kotlin/Swift to newest versions and improve support for Optional.

    Add Android ARM64 support.

    Add support for non-OpenGLES2 rendering API, providing rendering API neutrality except for VideoPlayer and Recorder.

  3. Surface Tracking

    For interactive AR mini-game, AR short video recording, product static display, etc, EasyAR SDK 3.0 adds Surface Tracking functionality, utilizing surface feature detection for tracking without time-costing plane detection, achieves faster surface fitting and pose tracking.

  4. Image Target Data generation

    Add support to load pre-generated image target data from image in Unity and non-Unity applications for recognition and tracking, improving load speed.

  5. Package size reduction

    With structural change to the architecture and functionality trimming, EasyAR reduced the size of package.

    The current version removed QRCode recognition, for smaller package size.

  6. Many other improvements and bug fixes and compatibility improvement

Detailed changes are as bellow,

++ a more flexible dataflow-oriented component-based API
++ Surface Tracking
+ Image target data generation
+ language binding: C# for .Net/Mono
+ language binding: update C++11 to C++17
+ language binding: update Kotlin/Swift and support Optional
+ Unity plugin rewrite and open-source, unify low-level API with non-Unity APIs
+ Unity plugin Coloring3D sample static image snapshot rendering support
+ Unity plugin UI hints for common problems like invalid key
+ Android ARM64 support
+ non-OpenGLES2 rendering API support (rendering API neutral except for VideoPlayer and Recorder)
+ external camera interoperability
+ external algorithm interoperability
+ package size reduction
- remove QRCode recognition
- remove Renderer, sample rendering code are provided for various platforms
* support in-memory image target loading
* support https in CloudRecognizer (on Android and iOS)
* add support for Camera2 on Android
* fix crash for recording on Android 9.0
* support Unity 5.6, 2017.4, 2018.4, 2019.1 and stop support for versions lower than 5.6
* stop support for iOS 7 and lower
* use CommandBuffer to draw camera background in Unity plugin
* fix some stability problems