EasyAR has a big family now, starting from version 4, the previously known EasyAR SDK will be named EasyAR Sense, providing sensing abilities of the real world. All 3.0 features are available in this version.
EasyAR Sense is a standalone SDK, it provides flexible dataflow-oriented component-based API and do not depend on any non-system libraries or tools like Unity3D.
As for the Unity support, EasyAR Sense Unity Plugin, is a very thin wrapper to expose EasyAR Sense features into Unity. All code of EasyAR Sense Unity Plugin is open sourced with well-designed interface. You can use the plugin directly to create AR experience within short time. You can also reference the source code to create more custom usages of EasyAR Sense or even a Unity Plugin of your own.
EasyAR Sense 4.0 brings brand-new features,
Sparse Spatial Map
Sparse Spatial Map provides the ability to simultaneously generates point cloud maps for real-time location while scanning physical spaces. Developers can efficiently create applications which are based on real-world space, such as AR manuals and AR navigation. The virtual content deployed on the point cloud map will also be persisted in the physical space to connect the virtual world and the physical world. In addition, multi-person interaction and sharing functions can also be implemented based on Sparse Spatial Map.
Dense Spatial Map
In order to achieve a more realistic AR experience with interactive collisions between virtual content and the physical world, EasyAR Sense 4.0 supports Dense Spatial Map to do real-time reconstruction from the environment, which enables the effects of collision and occlusion, etc., to provide a more realistic AR experience without using a ToF camera.
Motion Tracking provides multi-sensor fusion to solve position and attitude, reducing the drift caused by camera motion, making virtual objects more stable in space. Meanwhile, it provides relocation function so that the positioning can be restored after tracking is lost. It doesn't depend on ARCore and doesn't require end-user installation of ARCore services through the Google Services Framework.
Uses of ARKit on iOS and ARCore on Android respectively are supported, they can also be combined with other EasyAR Sense features.
EasyAR Sense Unity Plugin has also gained great improvements, highlights are,
Consistent design evolution
All features and best parts from Unity Plugin for EasyAR Sense 1/2/3 are kept in this version. The plugin now use as much Unity features as possible, like start/stop in OnEnable/OnDisable, most EasyAR Sense features can work without writing scripts. All new features of EasyAR Sense 4.0 are supported and bugs are fixed.
Editor experience improvements
Gizmos are used to show image targets in editor to replace auto generated mesh in old versions with better experience. Critical errors like license key validation failures are shown on screen with a popup to help debug. Image target data generation is also provided as a Unity tools window instead of just APIs.
More samples and cover more detailed APIs
All new features and combination of different algorithms are demonstrated. Eyewear support has samples, with pre-calibrated parameters of ShadowCreator Action One and EPSON BT-350. Answers to many how to use questions from community are available in these samples. Thank you for your feedbacks!
EasyAR Sense 4.0 provides you with three subscription modes: Personal Edition (Free), Professional Edition (Monthly Payment) and Enterprise Edition (Customized).
Detailed changes are as bellow,
++ Sparse Spatial Map++ Dense Spatial Map++ Motion Tracking+ ARKit support+ ARCore support+ add functionalities in CameraDevice to get camera count, camera index, to get camera front and rear location (not supported on Mac) and to open camera for specific location+ add camera buffer requirement reporting in various components for CameraDevice.setBufferCapacity* language binding: update Swift to Swift 5* do not distinguish Basic and Pro binary packages any more* switch CloundRecognitionService from use of AppKey to ApiKey* fix limited pixel resolutions on iOS, which makes it possible to use a full view on iPad* fix the crash problem on some iPad devices with a high pixel resolution* fix the support for Google Play Store Android App Bundle* fix the problem that ImageTracker.unloadTarget and ObjectTracker.unloadTarget can not unload targets* fix some stability problems
EasyAR Sense Unity Plugin
++ support all new features of EasyAR Sense 4.0.0: Sparse Spatial Map, Dense Spatial Map and Motion Tracking++ restore Sense 2.3-like interface design and behaviors with tons of improvements+ add popup message for critical fails (can be turned off from EasyARController)+ Components: most components can use Unity Component's enabled to control start/stop+ Component ARSenssion: entrance for AR, control center mode, with ability to support external devices like custom cameras and eyewears+ Component ARAssembly: demonstrate the assembly process of component-based API of EasyAR Sense, support all EasyAR Sense components+ Component ImageTargetController: refined to hold different types of input, support images and .etd files from local filesystem or web URL+ Component CameraImageRenderer: camera image rendering can be disabled by disabling this component+ Component VIOCameraDeviceUnion: motion tracker with auto switch when ARKit/ARCore or EasyAR Motion Tracker available on device+ Scene: add target gizmo to show target details in Unity Editor+ Asset: add global service settings entry and gizmo control+ Window: add window to generate image target data (.etd file)+ Window: add menu entry to jump to license key and other global settings* fix one frame lag in target tracking* fix blocking target load, reduce loading time* fix target size* many other improvements and bug fixes
EasyAR Sense Unity Plugin Samples
++ add a lot of samples to demonstrate features and interface usages++ add back all missing samples from Sense 2.3++ add samples to demonstrate new features including Sparse Spatial Map, Dense Spatial Map and Motion Tracking and how can they be used together with other components like image tracking+ add a sample launcher to load all samples+ add onscreen info for component status in all samples+ add sample to demonstrate eyewear support+ add sample to demonstrate how to make surface tracking work together with image tracking+ add sample to demonstrate how to get camera image texture and how to control camera display+ add sample to demonstrate how to change the video aspect ratio (Unity VideoPlayer feature) to fit image target+ add sample to demonstrate extended tracking start from image+ cloud recognition sample now use local cache and stop request when tracking to demonstrate a more real case+ coloring3D sample is optimized and bugs have been fixed