What's new!

Here you can read the latest news about the Tobii Pro SDK.

Release notes

Version 2.0 (2024-08-21)

IMPORTANT NOTICE

Tobii Pro SDK 2.0 comes with two important changes:

  • Due to architectural changes, Tobii Pro Spectrum will require the installation of a dedicated Runtime to work with Tobii Pro SDK 2.0 (and applications built on Tobii Pro SDK 2.0 or newer). The Tobii Network Runtime for Tobii Pro Spectrum will be available via Tobii Pro Eye Tracker Manager 2.7.0.
  • Tobii Pro SDK 2.0 will not support deactivated Tobii eye trackers. The updated list of supported and non-supported eye trackers is available here: developer.tobiipro.com/tobiiprosdk/eyetrackercompatibility.html.

Improvements

  • Data buffer added to all high throughput data streams in the Tobii Pro SDK
    • This makes streams more resistant to data loss during short time periods of throttling of the Pro SDK process
    • Removes problems issue with trackers disconnecting due to data callbacks not being consumed on time
  • New notification added, warning users when a stream loses data
  • Deprecated old APIs: trackbox

Improvements to the Tobii Pro SDK documentation

  • Removed references to Octave
  • Added Common Concepts article on stream buffering
  • Added Common Concepts article on Tobii Pro Network Runtime

Limitations and Known issues

  • Python binding does not work when Spyder is installed (https://www.spyder-ide.org/)
  • Rosetta is required when running Tobii Pro SDK on Mac computers with M1/M2/M3 processor
  • Matlab - SDK reference guide links are broken for version 1.11. Please use documentation for version 2.0 or version 1.10.

Version History

Version 1.11.0 (2023-03-08)

Bug fixes

  • Users can access the eye image stream for Fusion in the Python binding.
  • User position guide subscriptions no longer interfere with gaze subscriptions.
  • Users can correctly set eye tracking modes for eye trackers having more than 3 eye tracking modes.

Improvements to the SDK documentation

  • Added ready-to-run .NET and Python code examples that present how to perform a User calibration while subscribing to the gaze signal. Corresponding C and MATLAB examples will soon follow.

Limitations and Known issues

  • Python binding does not work when Spyder is installed (https://www.spyder-ide.org/).
  • Matlab - SDK reference guide links are broken for version 1.11. Please use documentation for version 1.10.

Version 1.10.2 (2022-12-07)

General Changes

  • Releasing a new version of the Python binding.
Python binding
  • Added support for Python 3.10.

Version 1.10.1 (2022-05-24)

General Changes

  • Added support for Eye openness signal, a new signal provided by Tobii, available in Tobii Pro Spectrum eye tracker with FW 2.6.1 and newer. Signal is available on all Pro SDK bindings and for all supported OS versions.
  • Tested compatibility with Windows 11 and Windows 10
  • Tested compatibility with macOS 12 Monterey (on ARM64* Macs) and macOS 10.15 Catalina
    • * Please refer to our Supported platforms and languages page for information on how to successfully use Tobii Pro SDK v 1.10 on ARM64 (Apple Silicon) Macs with macOS 12 Monterey.
Matlab Binding
  • Improved error handling of data streams in Matlab binding.
  • Dropped support for Octave.

Version 1.9.0 (2021-09-15)

Bug fixes

C Binding
  • Improved stability and error handling of code examples
Python Binding
  • Fixed broken Eye Image stream
Matlab Binding
  • Applied a bug fix for monocular calibration
Linux
  • Fixed a bug that caused avahi_service_browser_new: Assertion 'client' failed
Mac
  • Python wheel filename correction

General Changes

  • Updated OS to support Ubuntu 20.04 LTS
  • Updated OS to support macOS 10.15 Catalina
  • 32-bit binaries are no longer provided for any platform
  • VR support is deprecated and will be removed completely in a future release
Python binding
  • Added support for python 3.8
  • Removed support for python 2.7
  • Removed hidden imports that caused packaging problems with pyinstaller (also solved autocomplete issues with the binding)
  • Wheel filename tag for linux updated to manylinux2014
.NET binding
  • Migrated to .NET standard 2.0
  • Added support for .NET core 3.0
  • Added support for .NET 5
  • Added support for Unity 2018.1
Unity
  • Removed dependency on Mono library (.NET standard 2.0 is supported natively in Unity).
  • To run the SDK in Unity you need to set the Scripting Runtime Version in the Project Settings to ".Net 4.x Equivalent".
  • To upgrade the SDK from 1.8 to 1.9 in Unity you need to remove the old package before importing the new package to avoid cleanup issues.

Version 1.8.0 (2020-06-18)

Bug fixes

Tobii Pro Spectrum
  • In previous SDK versions, there was an issue with gaze samples arriving with high latency (100+ ms) on a regular basis (every two seconds). In this release, latency of gaze samples is stable.
Tobii Pro X3-120
  • Tobii Pro X3-120 only provides pupil measurements for every third sample (40hz). Now the samples without pupil data will have the pupil diameter set to NaN and Invalid instead of 0 and Valid.
All Bindings
  • While a tracker is installing a firmware upgrade via their runtime the SDK will list it as offline.
.Net Binding
  • Trackbox X and Y coordinates are no longes mixed.

General improvements

Tobii Pro Fusion
  • Added monocular calibration for Tobii Pro Fusion.
  • Added frequency change notification for Tobii Pro Fusion.
  • Added eye images for Tobii Pro Fusion.
  • Added diagnostic archive for Tobii Pro Fusion.
All bindings
  • Added support for multiple regions per camera image in the eye image stream. Each image has an additional property that indicates which region it represents.

General changes

Linux
  • 32 bit binaries for Linux have been removed.

Known limitations

Tobii Pro VR Integration
  • For version 1.8.0 there will be a license that have to be applied to unlock VR data streams. Please download it here
All bindings
  • Changes in the name property of a tracker from another client will not be reflected in the device info of the tracker until the application is restarted.

Version 1.7.1 (2019-07-12)

Bug fixes

Matlab
  • Fixed issue with name collisions with PsychToolbox.

General improvements

Unity
  • VR prefabs now use a more accurate lookup of the HMD's position at the exact time of each gaze data sample.

Version 1.7.0 (2019-05-02)

General improvements

Python
  • Update to Python 3.6 
  • Please note that this version of Pro SDK does not have support for Python 3.5. Use earlier versions of Pro SDK together with Python 3.5.
  • (Support for Python 2.7 still remains)
Unity plugins
  • Removed dependency to SteamVR plugin (now works with both OpenVR and SteamVR).

Version 1.6.2 (2019-04-26)

Bug fixes

Unity
  • Updated example scenes (CalibrationExample, InteractionExample) to work with older versions of Unity (2017.x).
  • Updated positioning guide examples for VR to work with newer versions of Unity.

All bindings (Windows only)

  • Fixed issue introduced in 1.6.0 where eye images could not be subscribed to (Tobii Pro Spectrum only).

Version 1.6.1 (2018-12-12)

Interface additions

All bindings
  • New property: Runtime Version - Eye tracker objects now has a new property, "runtime_version", that reports which version of the Tobii runtime (driver) that is being used by the tracker. This new meta data can be useful to store (together with firmware_version) when doing recordings to ensure that they can be reproduced later (as version of Tobii Runtime potentially could effect eye tracker performance). Note: The Tobii Runtime driver is only used by the Pro Nano (yet).

Bug fixes

Unity
  • Fixed issue where some of the prefabs didn't work together with the new version (2.0) of the SteamVR plugin.
All bindings (Windows only)
  • Fixed issue introduced in 1.6.0 where latency of gaze data from tracker would sometimes spike up to 100ms. Any user creating experiments with gaze contingency is strongly advised to upgrade from 1.6.0 to this release.

General improvements

.NET
  • Constructors for HMD gaze data objects have been made public (previously internal).

Version 1.6.0 (2018-11-07)

Pro Nano support!

This version adds support for the new Tobii Pro Nano eye tracker. Note: The Pro Nano will not work with previous versions of Tobii Pro SDK.

Interface additions

All bindings
  • New stream: Positioning Guide. This is a new stream for making it easier to help position a user in front of the eye tracker. It works in the same way as the "Position in Track box coordinates", but is more lightweight and better suited for use in GUIs.

Bug fixes

All bindings

  • Mac only: The system time stamp on macOS was not using a monotonic clock, which meant that if a user (or NTP service) would update the computer's clock during an experiment, the time stamps of the data could have been compromised. This has now been fixed, and the time stamps are now monotonic on Mac as well.

Matlab

  • Fixed issue where find_all_eyetrackers would fail with a "index out of bounds" type error if no eye trackers were found.
  • Fixed issue where the eye tracker property Capabilities clashed with a class with the same name in the Simulink toolbox. the Tobii Pro SDK class has changed name (from Capabilities) to EyeTrackerCapabilities to remedy this.

Version 1.5.0 (2018-05-24)

Octave support!

This version extends the capability of the Matlab language binding so that it can be used with GNU Octave. Octave and Matlab users can download the same binaries and use the exact same syntax (when communicating with Tobii Pro SDK). Just like the other bindings, Octave is supported on both Windows, Linux and Mac.

Interface additions

All bindings
  • Two new notifications DeviceFaults, and DeviceWarnings have been added. These notifications can only be received from Tobii Pro Spectrum.

Version 1.4.0 (2018-04-11)

This version adds support for changing eyetracking mode on the Tobii Pro Spectrum (adding the possibility to eye track macaques). Note: This feature is only supported by the Tobii Pro Spectrum, and only on FW versions later than 1.7.5.

Two new notifications have been added in relation to this: EyeTrackingModeChanged, and CalibrationChanged (Note: calibrations cannot be reused between eye tracking modes on Tobii Pro Spectrum).

Interface additions

All bindings
  • Two new notifications EyeTrackingModeChanged, and CalibrationChanged (names vary slightly depending on binding)

Bug fixes

All bindings
  • Fixed memory leak when streaming eye images in GIF format.
Matlab
  • Fixed issue with HMD eye trackers (fix also released in 1.3.1 patch release)
Python
  • Fixed issue introduced in 1.3.0 with computeAndApply method in calibration (fix also released in 1.3.1 patch release)
.NET
  • Fixed issue where EyeTrackingOperations.GetEyeTracker would return null for 4C trackers.

General improvements

Unity
  • Examples and prefabs (that were previously in another package) have now been merged into the Tobii Pro SDK Unity package.
  • Prefabs have been added for screen based eye trackers
  • Prefabs for VR tracker have been updated
  • The following functionalities are now available as prefabs (for both VR and screen based eye trackers):
    • Eyetracker discovery and management
    • Calibration
    • Track-box (screen based) resp. Positioning Guide (VR)
    • Data saving (in XML format)
    • Gaze trail
.NET
  • Constructors for gaze data objects have been made public (previously internal). This can be useful if you (for example) wish to generate mock data, or want to modify received gaze data while keeping the same format.

Version 1.3.0 (2018-01-19)

This version adds support for monocular (and bi-monocular) calibration - the ability to calibrate one eye at the time, for example when studying eye movements of people with strabismus or similar conditions.
Note: This feature is only supported by the Tobii Pro Spectrum, and only on FW versions later than 1.5.0.

Interface additions

All bindings
  • New class with new methods for monocular calibration (except in C binding, where there's only new methods).

Bug fixes

All bindings
  • Fixed memory leak when streaming eye images.
Unity

Version 1.2.1 (2017-11-22)

General improvements

All bindings
  • Dependent libraries are now bundled into the tobii_research library! You will no longer have to wonder what the tobii_stream_engine, or tobii_pro libraries are! (except for .NET/Unity users, where tobii_pro.dll still remains) - Because sometimes, less is more!
Python
  • Tobii Pro SDK now supports Python 3.5!
Unity

Version 1.2.0 (2017-10-11)

Interface additions

All bindings
  • New method, SetDisplayArea / set_display_area
    • This method can be used to set the display area of an eye tracker, i.e. the coordinates for the corners of the display that the eye tracker is used with. These coordinates are not trivial to calculate, and we strongly recommend to use Tobii Pro Eye Tracker Manager to perform these calculations the first time. But once you have the correct values, you can now use the new method to re-apply these at your convenience!
C binding
  • Three new error codes have been added to the TobiiResearchStatus enum:
    • TOBII_RESEARCH_STATUS_SE_CONFLICTING_API_INSTANCES
    • TOBII_RESEARCH_STATUS_SE_CALIBRATION_BUSY
    • TOBII_RESEARCH_STATUS_SE_CALLBACK_IN_PROGRESS

Bug fixes

.NET and Unity
  • Fixed issue where you would get multiple event callbacks for each subscribed notification. No longer so - "There can be only one!" ;-)

General improvements

  • Information and code examples have been added to the documentation explaining how to utilize Eye Tracker Manager's command line options to remove the need to implement your own calibration routine.
  • New code example explaining how to use Tobii Pro SDK (Matlab) together with Psychtoolbox.


Version 1.1.4 (2017-08-30)

Interface additions

Unity
  • New method, Terminate(), for making sure SDK resources are released.
.NET and Unity
  • New event type EyeImageRawEventArgs, for getting eye images formatted as raw pixel data (Tobii Pro Spectrum only).

Bug fixes

  • Fixed potential deadlock in FindAllEyeTrackers (if called from multiple threads)
  • Fixed issue in C binding where it would crash when get_xx_property is called with NULL args
  • Including C library in C++ no longer requires the use of "extern C".

General improvements

  • Tobii Pro SDK for Unity is now delivered as a Unity asset (.unitypackage)!



Version 1.1.0 (2017-06-14)

This version adds support for the new VR4 eye tracker development kit (known here as a "HMD eye tracker").

Interface additions

All
Adding support for VR/HMD eye trackers required making quite a few additions to the interface. These include:
  • New stream data (HMDGazeData) - both new data objects and callback/event types
  • New calibration (HMDBasedCalibration) - new object and methods
  • New capabilities - extended enums
  • New setting on EyeTracker (HMDLensConfiguration)
C
  • The TobiiResearchCalibrationResult struct now has a new property describing the status of the calibration (TobiiResearchCalibrationStatus).
Please see API reference guide for corresponding language for details of new functions and objects!

Bug fixes

  • Fixed issue with the Python language binding where you could not set the gaze output frequency to an integer.
  • Fixed issue on Matlab where arrays with invalid data returned NaN with wrong dimensions. Now returns correctly sized arrays of NaN.
  • Fixed rare issue where calling getDisplayArea could take very long time to complete.
  • Some (potentially) misleading log messages removed.



Version 1.0.4 (2017-04-26)

Bug fixes
  • Fixed issue where licenses could not be applied when subscribed to streams.
  • Fixed issue where eye trackers that changed IP address would not be rediscovered until SDK was reinitialized.
  • Fixed issue where you would get no gaze data from X3-120, Tobii Pro Spectrum and IS4 trackers if the eye tracker was restarted during gaze streaming.
  • Error messages about failed time sync will no longer be written to log for disconnected trackers.
  • Non-responding eye trackers will no longer impact the discovery of (responding) eye trackers.
  • Fixed issue with ExternalSignal stream from TX300 (currently the only eye tracker supporting this functionality) eye trackers not being sparse.
Functionality changes

Previously the eye tracker returned a numerical value (0 or -1) when not being able to determine a true value. As this could create issues when analysing data we now return NaN (Not a Number) for these, supported by all languages.



Version 1.0

Since this is the first release of our new SDK, most new features and changes made compared to the previously released SDKs can be found in (Changes from Tobii Pro Analytics SDK 3. [update 2024-06-05: link/page removed as the information was too out-of-date]). However, when releasing new versions, you will be able to find the release notes describing the changes between each version on this page.