If you have already developed an application using one of the other Tobii SDKs, or are in the process of developing an application, we recommend that you consider migrating to the EyeX SDK. Migrating will give you several advantages:
- The EyeX Engine will be a standard component on all future consumer platforms that use Tobii eye tracking,
- Your application will be consistent with other EyeX applications developed by Tobii or other 3rd party developers,
- The EyeX Engine takes care of the basics like screen setup, eye tracker calibration, and firmware upgrades,
- You can utilize the built-in interaction modes (EyeX Select, EyeX Scroll etc.) instead of having to do the gaze data processing yourself,
- For advanced usages, data streams for eye and eye-gaze positions are still available. However, we recommend to only use them as a last resort.
However, there are also some differences that you should be aware of. Most importantly:
- The EyeX Engine is only available for Windows 7 and later.
- The EyeX SDK currently supports C, C++, .NET and the Unity game engine. If you are using another programming language or framework, it will probably be possible to use the C API. But be sure to post a feature request for a dedicated SDK package for your development environment on our forum as well!
- Since the EyeX Engine provides the functionality for track status, calibration and user profile system, there are no such features in the API. Your application should leave those things to the engine and just assume that the eye tracking is properly set up and working all the time.
- The license Agreement for the EyeX SDK is different. Most likely different in a positive way, but you should still verify that the new license terms are acceptable for you.
The migration process should be reasonably quick and painless in most cases. So please, go ahead and download the Tobii EyeX SDK to see how you can use it to make your application a part of the growing EyeX family. In short, this is what you will have to do:
- You will need to modify your code so that it receives its gaze data from the EyeX Engine instead of the other SDK. There is a code sample in the EyeX SDK that demonstrates how to receive unfiltered gaze data from the EyeX Engine.
- Code related to eye tracker setup, connection management, calibration, user profiles, and track status should be removed from your application.
- We highly recommend that you use the built-in interaction modes instead of building your own equivalents, to ensure a consistent user experience and a smooth co-existence with other eye-gaze enabled applications. But if you already have a working implementation, then you can of course migrate one step at a time.
- Note that the EyeX Engine reports the gaze data as pixel coordinates, not as normalized eye tracker coordinates. You probably have something similar in your application already; now you can remove it.
- Also note that the gaze data stream cannot be used as a clock source for your application, because there is no guaranteed frame rate, and because invalid samples are removed automatically. So if your application depends on a steady pulse of eye tracking data, you will have to replace that pulse with a timer or thread.
And finally: if you run into any problems or have a feature request that would simplify your migration, please don’t hesitate to submit your question or idea in the community forums.