Release 2.1

Version 2.1.0

Version Info

Release date: 19.07.2021
Release info: Feature Release


This is a minor feature release for VisionLib which adds:

  • Texture Color Model Tracking, which enables to use texture information of models to enrich tracking with color edges extracted from the textures. This is useful if the geometry of a tracking target isn't ideal to derive good contour information. Have a look at the TextureColorModelTracking example scene in Unity to see how to control this feature via the textureColorSensitivity parameter. For more details, see Optional Tracking Parameters.
  • The synchronization of tracking and displaying while using ARFoundation together with VisionLib has been improved. Therefore, the augmentation will appear smoother during tracking.
  • Introduced the new parameter enableEdgeFilter, which allows to disable edge filtering. This increases execution times but might reduce the tracking performance of objects with repetitive patterns.
  • Improved performance of MultiModelTracking.
  • Several bug fixes and enhancements.

Thank you to all our users for giving feedback.



  • Added the possibility to use textures of models for enriching the tracking information with color edges. This is disabled by default. The textureColorSensitivity parameter controls the amount of edges extracted from the texture (see also Optional Tracking Parameters).


  • Added a new example scene (TextureColorModelTracking) to show the usage of the new texture color model tracking.
  • Added the possibility to set an init pose via the transform of a tracking anchor via the public SetInitPose or SetInitPoseAsync method of the TrackingAnchor.

Enhancements / Bugfixes


  • Device type ImageSequence: Fixed a bug where images have been reloaded every frame, even if the path did not change.
  • Improved performance of MultiModelTracking by eliminating unnecessary image copies.
  • Fixed a bug that lead to crashes through uncaught std::bad_function_call exceptions when activating parallel execution of the graph API.
  • Updated version Eigen to 3.3.9. This changes the list of used software and licenses (see Used Software and Licenses).
  • Fixed a bug where the AutoInit cache was kept even though the focal length of the camera changed.
  • Fixed a bug where applying a rotation to a model lead to only using parts of the model for tracking.
  • Fixed a bug where using a tracking resolution larger then 1.25 times the render resolution lead to only using parts of the model for tracking.


  • Fixed a bug that prevented auto-starting the tracking when using Dynamic Model Tracking.
  • Fixed a bug in the file system management that prevented loading of vl-files directly inside the StreamingAssets directory.


  • Fixed a bug that lead to a timeout of 6 seconds when restarting tracking with ARKit.
  • No longer exporting internal symbols or symbols of external dependencies in the binary module.
  • Improved synchronization if ARFoundation is used.


  • Improved synchronization if ARFoundation is used.


  • The LicenseTool binary is now notarized.
  • No longer exporting internal symbols or symbols of external dependencies in the binary module.

Interface Changes


  • Removed obsolete parameter "device" from the imageSource data object in tracking configurations.
  • Removed obsolete parameter "lineModelOcclusionTest" from the modelTracker data object in tracking configurations. Simply leave modelURI undefined, if you don't want to perform the occlusion test when using the lineModelURI.
  • Edge filtering can now be disabled to reduce memory consumption when using a large render resolution. To disable Edge filtering, set the parameter enableEdgeFilter to false in the ModelTracker's parameter section of the Tracking Configuration. Be aware that this leads to adverse edges being generated on places where repeating patterns occur within small distances.
    • To improve performance, this is set to false by default on HoloLens.


  • Removed permission request of WRITE_EXTERNAL_STORAGE for Android application, which is no longer necessary to access files associated to the application.
  • Methods to control the calibration process via the CameraCalibration component are now public.
  • Removed fields deviceID and calibrated from CameraCalibrationResult.CameraIntrinsics. Please use the corresponding fields in CameraCalibrationResult instead.



Documentation Changes