The algorithm looks very simple:
There is one parameter, which controlls the intensity of the smoothin effect.
The formula is structured like this
NewCursorPosition =
SmoothingFactor * OldCursorPosition
+ (1-SmoothingFactor) * ActualGazePosition
Code from testApp.cpp Line 62
eyeSmoothed.x = CM.smoothing * eyeSmoothed.x + (1-CM.smoothing) * screenPoint.x;
One example for this:
NewPos = 0,97 * 487 + (1-0,97) * 705
= 472 + 21
= 493
The difference between OldPos and New Pos is 493-487 = 5px. This means, that the cursos slowly adopts to the actual gaze position without large jumps..
Increasing the Smoothing Factor leads to a much slower moving of the cursor, decreasing it, results in an abrupt jumping of the cursor, which gives it less stability.
From a first impression, the GT algorithm does not work as good as this simple and lean EyeWriter algorithm, AND uses a much more complicated logic. Therefore, I probably could implement this very simple algorithm instead.
However, I need to understand the GT algorithm first in order to decide.