Skip to main content

iOS Updates


Oct 18, 2023


  • Modified
    • The coordinates of FaceInfo for left, top, right, and bottom have been changed to the coordinate system when the face is oriented frontally in the image.


July 21, 2023


  • Added
    • FaceDelegate,FaceInfo
    • fixationX, fixationY, leftOpenness, rightOpenness in GazeInfo
    • setForcedOrientation, resetForcedOrientation in GazeTracker
    • intensity in UserStatusDelegate.onDrowsiness()
  • Modified
    • eyeOpenness has separated to leftOpenness/rightOpenness in UserStatusDelegate.onBlink()
  • SwiftUI Sample has added
  • iPad 10 bug fixed.


March 8, 2023


  • ScreenState bug fixed.


November 1, 2022


  • iPad 10 bug fixed.


April 5, 2022


  • authenication now retries when failed up to three times
  • added StatusCode debug log
  • setAttentionRegion(), getAttentionRegion() removeAttentionRegion() is added.
  • UserStatusOption.isUseAttension() is deprecated. renamed to UserStatusOption.isUseAttention().
  • UserStatusDelegate.onAttension() is deprecated. renamed to UserStatusDelegate.onAttention().
  • The device's camera position information is now received via the server.


December 6, 2021


  • Bug fixes on certain iPad devices.


September 29, 2021

Only iOS

  • Supported Swift 5.5
  • Supported iPhone 13 series, iPad 2021 series.


June 18, 2021

Only iOS

  • GazeInfo.ScreenState bug fixed.


June 7, 2021

Only iOS

  • Authentication fails with Production Key
  • EXC_BAD_ACCESS error occurs when invoke startCalibration with CalibrationMode.DEFAULT


May 17, 2021

Common Changes

  • The enum InitializationErrorType in onInitailzed() API has been changed.

    • (16): .AUTH_EXPIRED_KEY means using expired license key.
    • (17): .ERROR_NOT_ADVANCED_TIER means trying to use User Status Detector with basic production license key.
  • General

    • User Status Mode in GazeTracker is now available.
  • Added User Status:

    • User Attention
    • User Drowsiness
    • User Eye Blinks
  • In developement mode:

    • User Status Mode can be activated with initGazeTracker in development environment.
  • In production mode:

    • User Status Mode requires extra license activation step in production environment.
  • Please contact to the SeeSo team for more information.


March 26, 2021

Common Changes

  • Fixed internal logic.

Known Issue

  • A possible memory bug exists in SeeSo during startTrakcing().


March 9, 2021

Common Changes

  • Fixed internal logic.

Only iOS

  • A bug caused by startCalibration in Landscape orientation, which returns worng calibration point, is fixed.


February 18, 2021

Common Changes

  • Fixed internal logic.


February 4, 2021

Common changes

  • This version is hotfix of SDK 2.2.2.


February 1, 2021

Common Chnages

  • This version is hotfix of SDK 2.2.1 😎

  • The TrackingState in GazeInfo has been modified.

    • In this version, .LOW_CONFIDENCE will be returned as .SUCCESS.
  • We assume many users are still using .SUCCESSin thier validation check, to avoid confusion, we decided to provide .SUCCESS for all usable tracking results.

  • Please make sure both .SUCCESS and .LOW_CONFIDENCE are used for the validation check.

  • In our future release, both .SUCCESS and .LOW_CONFIDENCE will be provided in TrackingState.

  • The onInitailzed() API now provides Error Log.

    • If any validation error happens during the initialization step, Error Log will be displayed.


January 29, 2021

Common Changes

  • The eye tracking model has been updated. Compared to the previous version (2.2.0), there is a small improvement in accuracy.

  • The enum InitializationError in onInitailzed() API has been changed. more

  • The startCalibration API contians enum AccuracyCriteria option.

  • .DEFAULT starts normal calibration.

  • .LOW starts easy calibration, easier to pass each step (high possibility to have low accuracy).

  • .HIGH starts strict calibration, harder to pass each step (high possibility to have high accuracy).

  • The GazeInfo in onGaze API contains more types of enum TrackingState.

    • .SUCCESS means current face alignment is in a best position for gaze tracking (returns valid x and y).
    • .LOW_CONFIDENCE means current face alignment is not in the best position, should not be used for precise gaze tracking (returns valid, but less accurate x and y).
    • .UNSUPPORTED means current face alignment is not suitable for gaze tracking (returns invalid x and y).
    • .FACE_MISSING means face is not found.


November 6, 2020

Common changes

  • The eye tracking model has been updated. Compared to the previous version (2.1.0), it has higher accuracy.

  • The onEyeMovement have been integrated into onGaze(Gazeinfo gazeInfo).

    • Now onGaze API passes GazeInfo.
    • The GazeInfo class provides integrated information related to Gaze.
  • The onFilteredGaze API has been deleted.

    • Filtered gaze coordinates can be obtained using a Filter class for unfiltered(raw) gaze coordinates of onGaze.
  • The definition of the Calibration Region in startCalibration area has been changed.

    • ONE_POINT mode, a calibration point is created at the center point of the Calibration Region(Rect).
    • FIVE_POINT mode, a calibration point is created at the center and Each vertex of the Calibration Region(Rect).
    • SIX_POINT mode, a calibration point is created at the Each vertex and center of each long side of the Calibration Region(Rect).
  • The TrackingState has been updated.

    • It provides two states: SUCCESS and FACE_MISSING.
    • Blink and EYE_MISSING values ​​will be added in the next version.
  • The ScreenState has been added.

    • It provides three states: INSIDE_OF_SCREEN, OUTSIDE_OF_SCREEN and UNKNOWN.
  • The CalibrationModeType has been updated.

    • SIX_POINT mode has been added.

Only iOS

  • Various Swift Compiler versions are supported.


September 10, 2020

Common Changes

  • Improvement of eye tracking performance.

  • Compared to the previous version (2.0.0), it has higher accuracy and improved computational performance.

  • Fixed a bug in which gaze data was not delivered sequentially in time when face missing

  • SDK stability improvement

  • The onCalibrationFinished API has been updated.

    • Now, onCalibrationFinished passes calibrationData as parameter.
    • You can save calibrationData and load the this calibration data directly into GazeTracker without new calibration by calling setCalibrationData(calibrationData) in situations such as restarting the app etc...
  • The onEyeMovement API has been updated.

    • return value even when the face is not detected.
  • The setCalibrationData API has been added.

Only iOS

  • Function name typo correction (StopTracking -> stopTracking)