Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

How to open SMI eye tracker data?


I'm a newbie, so my question can be really stupid. Please sorry for that.

I've created a little test experiment in OpenSesame with PyGaze. Result of this experiment is a file without extension. Now I want to create some pictures with stimuli and eye tracker data, like here:

But the problem is that the example uses edf file format. I use SMI tracker and as I understand, it uses some custom format to store a data. And actually I can't find any information about reading this data. Do I missed something? Or maybe I should try to open this data in BeGaze (in that case, should I create experiment with the same file structure?)?



  • Ok, I found. In order to make life easier to other SMI tracker users:

    There is a tool to convert idf (it's a real extension of file which is generated after an experiment, I don't know why pygaze generates this file without any extension) to txt format. After this conversion you can use PyGazeAnalyzer with idfreader.read_idf. But it seems that functions for OpenSesame plugin pygaze_start_recording and pygaze_stop_recording don't write any information about trials. Obviously they should use send_message function from

    So, in order to analyse your data with PyGazeAnalyzer, you should add send_message function to your inline script manually (and make sure that you have last version of pygaze, because the function was added just a month ago).

  • edited June 2019

    To answer your question on why PyGaze generates an IDF rather than a text file: It's because SMI's software enforces that. (It makes sense they do so, because it's a compressed format.)

    That you didn't get a file extension is interesting. It seems we forgot to add the ".idf" extension in the PyGaze plug-ins for OpenSesame, woops! (You can simply add it to your file manually or through a renaming script.) In Python, you can include the file extension in the LOGFILE constant in your script.

    As for analysing trials, I've always used the `log` function (which has been around since the start), and log a trigger at every event of note in the experiment.



Sign In or Register to comment.