Home Forums Software Development Differences between EyeX.Framework and Interactions

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
  • #10876

    I have a project developed 2 years ago that uses Tobi.EyeX.Client and Tobii.EyeX.Framework. Are there any differences in the Interactions that would make it worth updating it?
    Im only using a behaviorMap and the HasGaze function to select boxes on a screen.

    Grant [Tobii]

    Hi @nabru and thanks for your query! If you are using the 4C Eye Tracker, then more recent versions of the SDK do indeed include additional features such as head tracking (does not apply to the EyeX Tracker) and of course various minor stability and bug fixes.

    Naturally we would always recommend to use the latest release of our software to stay up to date and avoid potential development issues. However, as you indicated that you are only using behaviourMap and HasGaze and assuming that the program itself works without issue, then there would not be much incentive to migrate at this stage.

    If you would care to go into more detail regarding your project intentions such as targeted platform, future features, etc we would be happy to provide further advice. Best Wishes.


    Thank you so much for the response. Can you clarify on the additional features that recent versions of the SDK have for the 4C? Is the head-tracking something I’d need to takein the code or, would the Tobii app take care of it?

    I want to be able to detect eye presence and automatically trigger the calibration. Is that possible with the old EyeX.Client and EyeX.Framework?


    I have been looking into examples and it seems if I want to detect user presence and trigger the calibration I need the new SDK.

    In order to migrate from the old SDK, is the VirtualInteractorAgent the equivalent of the old BehaviorMap?
    I have a form that contains 3 buttons and I want to detect the OnGaze and LostGaze. Does that look like is the correct approach?

    var virtualWindowsAgent = _eyeXHost.InitializeVirtualWindowsAgent();
    var floatingWindow = virtualWindowsAgent.CreateFreeFloatingVirtualWindowAsync(
    new Tobii.Interaction.Rectangle
    X = form.bounds.left,
    Y = form.bounds.bottom,
    Height = form.height,
    Width = form.width

    var virtualAgent = _eyeXHost.InitializeVirtualInteractorAgent(floatingWindow.Id);
    foreach (button in buttonList)
    virtualAgent.AddInteractorFor(new Rectangle(button.Left, button.Bottom, button.Width, button.Height))
    .HasGaze(() => OnGaze(button, null))
    .LostGaze(() => LostGaze(button, null));

    Grant [Tobii]

    Hi @nabru, thanks for your feedback. Please be aware that calibration is something handled externally by the Tobii Core Software that runs in the system tray and cannot be called programatically by the new Core SDK. This is quite intentional so as to avoid external program overwriting system-wide calibration settings.
    You can howeer launch an executable for a quick 3-point calibration from the command line (and hence integrate into a program if necessary).

    Accordingly, from your description it does not seem that migrating your code would be of a benefit in this case. I understand you are using the older Gaze SDK as so are able to launch calibration directly? If you would care to share the project code on Github (or similar) we would be happy to take a look of course, but please bear in mind that the Core SDK does not support launching calibration directly from this API.

    Custom calibration is possible via the Stream Engine API however this is c++ only at this time and would necessitate the purchase of a special custom calibration licence to do so.

    Regarding head tracking, this is an additional metric exposed in the Core SDK for Windows so would be called much like any other variable (gaze location, eye location, etc) according to need.

    Hopefully this clarifies the situation, please let us know any further information we can provide.


    Thanks so much for the clarifications.

    With the old SDK:
    – how can I detect userPresence? I know how to do it with the new SDK (host.States.GetUserPresenceAsync()) but I cannot find how to do it with the old SDK.
    – how can I trigger the 3-point calibration? With the new SDK I am using the host.Context.LaunchConfigurationTool()).

    If I could implement those two things in the old SDK would be perfect. WHere can I find the API or some samples for the old SDK?

    Grant [Tobii]

    Hi @nabru, I’m afraid as the older Gaze SDK is deprecated since almost 2 years now, we can not offer a great deal of support for developing using this API.

    However, that being said, the older samples are still available online and you can have a look @ https://github.com/Tobii/interaction-samples
    Within FormsSamples/UserPresenceForms/ we demonstrate how to detect the presence of a user.

    To launch a quick calibration, you can run the following command:

    c:\Program Files (x86)\Tobii\Tobii EyeX Config\Tobii.EyeX.Configuration.exe –quick-calibration

    Please bear in mind however, that a full “proper” calibration is highly recommended for new users via the regular Tobii System Tray Icon Software.

Viewing 7 posts - 1 through 7 (of 7 total)
  • You must be logged in to reply to this topic.