metaio SDK Changelog

What's new in metaio SDK 6.0.2.1

Aug 4, 2015
  • This release fixes a potential security issue affecting previous versions of the Metaio SDK on Android devices.

New in metaio SDK 6.0.2 (Feb 27, 2015)

  • Unity New Features:
  • Support for Unity 64-bit on Windows
  • Support for Unity IL2CPP iOS 64-bit runtime. Requires Unity 4.6.3 or higher.
  • Support for the Unity 5 64-bit Editor
  • Windows 64-bit applications Movie Textures are not yet supported
  • If installed to the Program Files, the appKeys.xml will be saved to: C:\Users\\appdata\Roaming\Metaio\SDKLicense\C\Program Files\\
  • Unity bug fixes:
  • Support for point cloud visualization of new SLAM
  • Mac OSX standalone applications crash
  • iOS camera freeze when the application is paused and resumed quickly
  • Crash on some Android devices running Lollipop such as Nexus 5
  • Memory leak

New in metaio SDK 6.0.1 (Dec 11, 2014)

  • Main SDK changes and new features:
  • Epson Moverio BT-200 support: Metaio Toolbox 6.0.1 adds the stereo see-through calibration feature for individual glasses. Its output file can be read with the new method setHandEyeCalibrationFromFile. Check our stereo see-through calibration documentation for more details on the recommended use of the setHandEyeCalibration* methods.
  • The new methods are fully supported also in AREL and the Unity plugin.
  • You can download Toolbox at dev.metaio.com or on the Play Store.
  • Fixed watermark issues when tracking configuration is switched
  • Fixed loading grayscale PNG textures
  • SLAM reference image can now also be loaded from absolute path
  • Breaking Changes:
  • Renamed getScreenshot to createScreenshot
  • Examples/Templates:
  • Several minor improvements and fixes
  • AREL:
  • New AREL level 18, make sure to update arel.js
  • Added arel.Scene.setHandEyeCalibrationByDevice and arel.Scene.setHandEyeCalibrationFromFile (see above)
  • Axis can be specified for rotate gesture
  • Fixed progress bar popping up every time texture updated (e.g. could be seen in HTML5 Canvas example)
  • Fixed handling of custom URLs in AREL
  • Fixed playing audio from application assets on Android
  • Fixed crash while playing full screen video on Android
  • Fixed crash when recognized QR or barcodes contain non-ASCII characters
  • Fixed: arel shareScreenshot might return black image on iOS
  • Fixed: arel.Scene.switchChannel did not forward parameters
  • Android:
  • Fixed loading native libs on some 64-bit Android devices such as Nexus 9
  • Metaio SDK library and all templates and examples are now compatible with Android Studio
  • Fixed playing sounds from application assets
  • iOS:
  • Fixed camera image artifacts when flipping is used on some devices
  • Fixed screen shot returned as a black image
  • New Cloud Plugin template contains fix for iOS 8 crash if action button tapped on sharing view controller
  • Default resolution changed to 640x480 (no downsampling), as tradeoff between quality and high FOV (larger viewing angle is better for SLAM tracking)
  • Windows:
  • Fixed selection of wrong camera image format in case no FPS range was passed to startCamera
  • Unity:
  • Fixed location-based scenarios and LLA view compression
  • Added setHandEyeCalibrationByDevice and setHandEyeCalibrationFromFile (see above)

New in metaio SDK 6.0 (Oct 31, 2014)

  • Main SDK changes and new features:
  • New SLAM/instant tracking: startInstantTracking("INSTANT_3D") will now use the new and improved tracking mechanism. It does not create a temporary tracking configuration anymore whose file path is then passed to onInstantTrackingEvent. Therefore, please only use the "success" parameter of onInstantTrackingEvent – the instant tracking will keep running after it found a target. The old SLAM tracking and behavior is deprecated but can still be used with the string "INSTANT_3D_SDK5".
  • New edge-based tracking, which is much more stable than the previously in-beta "edge-based initialization".
  • Tracking based on edges can be used when lighting and environmental conditions change and therefore tracking will not work with regular 2D/3D tracking. For example, a certain model of a car can be tracked even if color differs, or it has dirt or other changes to it, as long as edges are the same as in the edge model. Metaio Creator offers a new, revamped tool to help you get the best tracking quality for your CAD model.
  • Multiple modes:
  • Purely edge based: tracking uses edges only
  • Feature-based: as done in our old mechanism - 3D features are used to continue tracking after the target was found. Makes sense if the object does not move and the surrounding can be tracked with 3D tracking.
  • Hybrid: uses the best of both approaches. This is our recommended setting and the most stable.
  • Breaking change: calling setStereoRendering(true) will not automatically apply a hand-eye calibration anymore if the device is known to the SDK (e.g. Epson Moverio BT-200). This was changed to avoid unwanted overwrites of the configuration.
  • Breaking change: Setting camera parameters or hand-eye calibration for ECT_RENDERING_{MONO,STEREO_LEFT,STEREO_RIGHT} (new names for the enum to be more clear) will not overwrite settings for the other cameras anymore. Previously, setting values for ECT_RENDERING would also overwrite settings for the stereo cameras (was called ECT_RENDERING_{LEFT,RIGHT}).
  • Breaking change: getHandEyeCalibration/setHandEyeCalibration now require the "cameraType" parameter to be given (not optional anymore), as the default didn't make sense.
  • Support for Unicode file paths on all platforms (requires use of new method signatures with parameters of type metaio::Path)
  • New "billboard mode" for all geometry types (except those created with displayAsBillboard=true). This mode will align the X/Y axis of the geometry in the trackable coordinate system with X/Y axes of the screen, or in other words, the geometry will always be upright and face forward, independent of the marker position and rotation.
  • New method getCameraImageCoordinatesFrom3DPosition.
  • Examples/Templates:
  • New HTML5 canvas AREL example for each platform
  • New SceneKit example on iOS
  • Existing templates are refactored into independent native and AREL projects
  • AREL:
  • Added Model3D.startAnimationRange method to play animations with custom frame range
  • Breaking changes (also affecting Junaio channels when used in Junaio 6.0 or newer): arel.Scene.getHandEyeCalibration and arel.Scene.setHandEyeCalibration previously had an optional parameter "cameraType". This parameter is not optional anymore, because the default (settings values for all mono and stereo rendering) didn't make sense.
  • Mind also the breaking changes of the SDK (see above). They apply to AREL as well.
  • Implemented setting camera parameters (arel.Scene.setCameraParametersFromValues and arel.Scene.setCameraParametersFromXML)
  • Mind change in SDK 5.5.3: IARELInterpreterCallback::shareScreenshot signature changed: must now return boolean to indicate whether it handled the event
  • Added setBillboardModeEnabled and isBillboardModeEnabled for Model3D objects (see description for billboard mode above)
  • Android:
  • Fixed exporting applications with ProGuard.
  • iOS:
  • Public example and template projects are now using ARC, can be built on arm64 architecture (at least iOS 6.0 is now required), use storyboards and auto layout, use GLKit's base view controller
  • Windows:
  • Updated to Qt 5.3.1
  • Unity:
  • Support for Unity 3.x has been dropped. The minimum required version is now 4.0.
  • Scripts now starts the camera with same default parameters as other native or AREL applications.
  • New GestureHandler script to enable drag, rotate and/or pinch gestures on any GameObject.
  • VisualSearchResponse now has same fields as in native SDK (including metadata)
  • Other changes:
  • IMetaioSDK::getCameraParameters now returns the original values, not those adjusted to screen resolution and orientation. Focal length is returned as positive value.
  • Movie texture performance improvements
  • .creator3dmap files are now also accepted by setTrackingConfiguration
  • IGeometry::startAnimation(startFrame, stopFrame, loop) was renamed to startAnimationRange

New in metaio SDK 5.5.2 (Oct 31, 2014)

  • SDK changes and new features:
  • For the Windows platform, it is now possible to call SDK methods from Managed C++ application projects (as requested on helpdesk)
  • Environment mapping doesn't behave differently anymore when changing screen orientation on mobile devices
  • "Stereo rendering" tutorials now specify physical dimensions of the trackable image because otherwise the augmentation may not appear correct for the human eye e.g. on Epson Moverio glasses (see tutorial article)
  • Breaking changes for environment maps:
  • Equirectangular images don't need to be horizontally flipped anymore to get correct reflections
  • When using EEMF_CUBESIDES type (6 single images), the images now have to be upright, as used by most tools and online skybox/panorama repositories. Please check this article for the changes and a guide how to convert your environment map used with previous SDK versions.
  • Windows:
  • Fixes for Qt project template: mouse click coordinates were not correct because web view did not resize automatically
  • Fixed bug, now it is possible to choose higher capture resolutions
  • Some Windows 8 tablets that don't allow RGB camera capturing are now working
  • Unity:
  • See-through and stereo mode (check options on metaioSDK object; older projects have to re-import the latest prefab and all scripts)
  • Android:
  • Fixed crash when a movie texture is stopped and played quickly
  • Fixed possible crashes on devices that do not support FaceDetectorListener
  • Added share screenshot fragment to cloud and SDK example
  • iOS:
  • Fixed bug: sensors component never stops Gyro/Accelerometer/Magnetometer updates
  • Bugfix:
  • Fixed memory leak when unloading geometries

New in metaio SDK 5.5.1 (Oct 31, 2014)

  • Fix: Hand-eye calibrations are now given in right-handed coordinates just like with all other SDK methods (see coordinate system). If you are upgrading from 5.5 to 5.5.1 and have set a custom hand-eye calibration, please negate the X part of translation/rotation.
  • Updated Epson BT-200 calibration
  • SLAM improvements
  • Small bugfixes

New in metaio SDK 5.5 (Oct 31, 2014)

  • Main SDK changes and new features:
  • Added support for Extended Image Tracking, extend the tracking of a regular trackable image
  • Improved SLAM support through the new instant tracking with SLAM extension
  • Face Tracking (Beta) for Android, iOS and Windows.
  • Built-in camera and left/right hand-eye calibration for the Epson Moverio BT-200 smart glasses
  • HD camera image preview, on average 4x higher resolution
  • Note: For deploying Face Tracking (Beta) scenarios to iOS devices the minimum requirement is an iPhone 4S with iOS 6.0.
  • AREL:
  • New API level 16, make sure you use the latest arel.js (shipped with SDK download)
  • getObjectFromScreenCoordinates renamed to getObjectFromViewportCoordinates (old name still exists as alias) and now behaves identical to SDK's getGeometryFromViewportCoordinates method such that XY input coordinates are treated as viewport coordinates (previously treated as screen coordinates independent of the device orientation)
  • Added getAllObjectsFromViewportCoordinates which can retrieve all objects behind a coordinate and additionally the tapped point on the 3D object (given as object and COS coordinates)
  • arel.Scene.loadShaderMaterials now takes an optional second argument, a callback function which receives the success (true/false) when the materials are loaded or failed to load
  • setShaderMaterial on objects now works
  • Annotation update is now triggered when POI location changes
  • Text-to-speech support on Android/iOS (arel.Media.speak)
  • Android:
  • Bug fixes for audio playback when multiple movie textures are loaded
  • iOS:
  • New dependency on CoreImage.framework - when updating your projects to the new SDK, make sure you link against it. You can also start from the new template project.
  • If you still want to support iOS 5, you must set AVFoundation linkage to "optional".
  • Unity:
  • Changed coordinate system to be consistent with SDK: marker axes X (right) Y (up on marker) Z (away from marker) now map to Unity's axes X, Z, Y
  • Documentation and Examples:
  • Advanced Rendering Tutorial added
  • New Face Tracking (beta) examples added
  • Other changes:
  • Renamed IMetaioSDK::*ScreenCoordinates* to IMetaioSDK::*ViewportCoordinates* to be more clear about the meaning
  • Deprecated IMetaioSDK::get3DLocalPositionFromScreenCoordinates, use getAllGeometriesFromViewportCoordinates and GeometryHit::objectCoordinates instead
  • IMetaioSDK::getCameraLIst now returns Camera objects with correct parameters for front facing camera on Android and iOS

New in metaio SDK 5.3 (Apr 26, 2014)

  • Main SDK changes and new features:
  • IBillboardGroup deprecated, replaced by IAnnotatedGeometriesGroup which allows adding annotations to geometries (e.g. label for a point of interest) and is much more customizable. The respective tutorial was adapted to explain the usage.
  • LLA limits are now turned off by default for geometries – you have to manually call IGeometry::setLLALimitsEnabled to enable (no changes necessary for location-based POIs in AREL, only for geometries)
  • AREL:
  • New API level 15, make sure you use the latest arel.js (shipped with SDK download)
  • Fixed bug which caused dynamic light to not use (default or manually assigned) COS 0
  • Support for new startCamera signature which lets you set custom parameters for FPS, image flip, etc.
  • Fixed bug: calling openWebsite with parameter openInExternalApp set to true would pass openInExternalApp=false to callback (now correct value is passed)
  • Android:
  • Native support for x86 devices (previously those devices used emulation of ARM code)
  • Dropped support for ARMv7 devices that lacks NEON support. For example Tegra2 chipset.
  • Improved rendering performance in case of YUV camera image (which is the default)
  • Fixed movie texture problems (especially slow/stuttering playback and Android 4.4 issues)
  • Windows:
  • AREL interpreter now uses Qt 5.2 framework (previously 4.8.4)
  • When compiling Example_Qt, ensure you have Qt 5.2 installed and set up using the updated Qt Visual Studio plugin
  • Unity:
  • onTrackingEvent callback changed to resemble the one in the native SDK, i.e. now all changes to tracking values are passed to your Unity script, wrapped in a struct that is easy to use
  • Other changes:
  • Added IMetaioSDK::shutdownLibrary method to release statically allocated resources in case SDK is not needed anymore (reduces false memory leak alarms)
  • More exact rendering of relative-to-screen geometries; getScreenCoordinatesFrom3DPosition now has an additional parameter by which you must specify if the 3D point is from an RTS geometry

New in metaio SDK 5.2 (Apr 26, 2014)

  • SDK New Features:
  • Added support for camera image flipping and custom capturing FPS
  • Stereo rendering support
  • Added motion / depth of field / focus blur as advanced rendering features
  • Added ability to change advanced rendering options per geometry (e.g. double-sided rendering, depth buffer writing/masking)
  • Added preview mode to instant tracking (shows rectangle of selected region)
  • New QR code example
  • Android:
  • Fixed EGL configuration related crashes on some devices
  • Fixed crash in sensors' component on Android 4.4
  • Windows:
  • Added support for camera image downsampling
  • Unity:
  • Application signature now stored in the file "StreamingAssets/MetaioSDKLicense.xml", therefore it only has to be entered for one metaioSDK game object (note: you have to enter the signature again when upgrading an existing project to SDK 5.2)
  • *metaioTrackerLLA* has been merged with *metaioTracker*
  • Added support for LLA objects rendering limits
  • Bug fixed for renderer clipping plane limits
  • More options in Inspector
  • Other changes:
  • Renamed listCameras to getCameraList

New in metaio SDK 5.0.2 (Apr 26, 2014)

  • Fixed optical tracking on iPad Air, when using the default YUV pipeline

New in metaio SDK 5.0.1 (Apr 26, 2014)

  • SDK changes:
  • More speed in multithreading mode
  • Bugfixes:
  • Unity plugin: Fixed spurious error "You are not allowed to call SDK methods from an external DLL"
  • Fixes in tracking configuration UI for Unity Editor
  • Fixed potentially wrong URL encoding in AREL interpreter implementation for Qt
  • No more warnings about deprecated AVCaptureConnection methods on iOS 7

New in metaio SDK 5.0 (Apr 26, 2014)

  • New Features:
  • Up to 7 times faster rendering and multi-core pipeline
  • Improved visualization quality and better debugging
  • Support for writing custom vertex and fragment shaders for advanced effects (see new tutorial)
  • Support for adding dynamic lights to the scene (see new tutorial)
  • Improved speed and robustness for tracking (2D/3D markerless, SLAM)
  • New 3D markerless tracking based on CAD model (aka "Edge-based")
  • Advanced AREL functionality
  • iOS 7 ready!
  • Glass support
  • Toolbox 2.0 (iOS/Android) for creating 3D maps, camera calibration etc.
  • Bugfixes:
  • Fixed issue with environment mapping / reflections on planar surfaces
  • Fixed crash with Example_Qt in Release target
  • Fixed memory leaks inside ARELViewController
  • Android:
  • Minimum required API Level is 9 (Android 2.3 a.k.a. Gingerbread)

New in metaio SDK 4.5.2 (Apr 26, 2014)

  • SDK:
  • Splash image size and flipping fixed
  • Miscellaneous fixes and improvements in the examples
  • Android:
  • Now considers initial inaccurate sensor readings
  • Fixed some native crashes
  • Windows:
  • Added new template project for Qt-based applications
  • Two webcams with the same FriendlyName can be used
  • Unity:
  • Camera projection matrix is correctly updated for setImage
  • A file can be used for setImage in addition to a buffer in memory

New in metaio SDK 4.5.1 (Apr 26, 2014)

  • SDK:
  • Feature visualization during instant tracking initialization can be optionally disabled.
  • Improved barcode and QR codes recognition. Additional formats supported.
  • requestCameraImage with JPEG file path fixed for YUV pipeline
  • FBXMeshConverter updated to Version 1.0.9
  • Android:
  • New example that uses Fragments
  • Fixes regarding activity lifecycle: stopCamera/startCamera will not be called anymore when pausing/resuming an AR activity, but instead the previous source will be correctly paused resumed (either the camera or an image using setImage call)
  • iOS:
  • Fixed problem in which camera image may be frozen when app gets resumed
  • Fixed several linker errors (e.g. ImageStruct constructor and Rotation class)
  • Windows:
  • With Qt only: Pose rendering now correct for all viewport sizes (was previously squashed if width < height)
  • Unity plugin:
  • Fixed pose rendering if a custom camera calibration was set
  • Fixed integrated tracking configuration XML generation

New in metaio SDK 4.5 (Apr 26, 2014)

  • SDK:
  • Metaio Cloud plugin is now part of the SDK and allows you to host your AR app on the metaio Cloud
  • Continuous Visual Search Service is now available to SDK users via the CVS Rest API
  • Added simplified examples for all platforms
  • Improved 3-D tracking performance
  • New YUV camera pipeline with improved performance and image quality
  • Import your ready-to-use Android/iOS application from metaio Creator
  • STL removed from SDK interface
  • Improved FBXMeshConverter 1.0.8
  • iOS:
  • Device calibrations added for new iOS devices
  • Minimum iOS requirements increased to 5.0
  • C++11 support
  • Android:
  • Improved sensors for GPS-Compass and Orientation tracking
  • Unity Plugin:
  • Improved workflow with preview support inside the Unity Editor
  • New AssetsManager, the .bytes resources are no longer needed:
  • Create stand-alone applications with Unity for Mac and Windows
  • AR tracking configuration now integrated in Unity
  • Movie Textures support
  • Metaio Cloud Plugin (formerly junaio Plugin):
  • Metaio Cloud plugin is now part of the SDK and allows you to host your AR app on the metaio Cloud
  • Based on junaio version 4.7 (API Level 11)
  • Higher frame rates due to improved tracking and rendering performance (compared to junaio 4.6)
  • Improved caching and automatic file updates between server and client (compared to junaio 4.6)
  • iOS: No dependency to ASIHTTPRequest.framework anymore

New in metaio SDK 4.1.2 (Apr 26, 2014)

  • New examples for external render on Android, iOS and Windows
  • Fixed linker errors with xCode 4.6 and Visual Studio
  • Fixed screen size calculations in iOS tutorial 7
  • Fixed AREL examples: "Hold your device over the metaio pattern" not shown if we are tracking from the beginning
  • Fixed Trying to load a movie texture with a non-existing file throws an error instead of crashing