FAQs¶
What does SharpEyes use under the hood?
-
SharpEyes is built on .NET 10.
-
Avalonia UI is used for the UI.
-
OpenCvSharp wraps OpenCV for video processing.
-
NumSharp Lite handles NumPy array interop.
-
Python.Net bridges to Python
-
PyMoten does the motion-energy feature extraction.
What do I do with the data SharpEyes saves out?
It depends on how far through the workflow you go. The Pupil Finding tab saves pupil positions and timestamps as numpy arrays, which can be loaded into the Calibration tab or passed to the SharpEyesCalibrator class in the Eyetracking Python repo for external calibration. That can then be brought back to SharpEyes.
The Stimulus & Gaze tab can load gaze positions in numpy, CSV, or Eyelink formats for viewing and editing. The Recentering tab exports retinotopic frames as PNG files or a numpy array. The Motion-Energy tab saves a numpy array of features, a plain-text info file recording all parameters, and a CSV describing each filter in the pyramid.
There's no option to read .edf files from Eyelink
You need to provide your own copy of the edfapi.dll/so library from the SR Research Eyelink SDK. SharpEyes will find it automatically if it is on your system path, or you can specify its location explicitly in General Settings. There is no EDF support for macOS.
What do I need to build SharpEyes from source?
SharpEyes was built with Visual Studio and JetBrains Rider.
What about GPU support?
Motion-energy feature extraction can run on an NVIDIA GPU via CUDA or on Apple Silicon via MPS, if PyTorch is installed and the hardware is available. The available backends are listed in Python Settings, where you can also set your preferred order. All other processing runs on CPU.
There's a bug. What do I do?
Open an issue on the GitHub issues page and describe the problem.