Howdy, Stranger!

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

Supported by

Child Friendly Calibration - Eyelink


I am using Open Sesame and Eyelink1000 (so PyGaze). I got the experiment to work with the default calibration, but what I need is a child calibration. What we use in Matlab (and PsychPy) experiments is a larger, colourful circle, that circles and makes fun noises, rather than the small point and beep that we can use for adults.
I tried just inserting the PsychPy script in an inline, but that's not enough, of course. Eyelink told me they were working on it, but that might take time - and I need to start testing soon.
Any idea of how to make changes to the default calibration?

Thanks in advance!


  • Hi Naomi,

    Right now I don't have an EyeLink to test this with, so the code below is untested. But you can override the default function to draw a calibration target. To do so, you need to write an inline_script with something like the code below in the Prepare phase.

    Then you can modify the child_friendly_target() function in such a way that it draws a Spongebob or something along those lines. Does that make sense?

    def child_friendly_target(x, y):
        c = Canvas()
        c.fixdot(x, y)
    items['pygaze_init'].draw_calibration_canvas = child_friendly_target


    There's much bigger issues in the world, I know. But I first have to take care of the world I know.

  • Thank you Sebastiaan!

    I am sorry, I only saw this reply now...

    How do I modify the function to draw a .jpg or .gif? And can I control the calibration beep to be more child-friendly?


  • Hi Naomi,

    Instead of a circle, draw an image.

    To change the calibration sound, try to add this code here to the loop Sebastiaan posted earlier.

    src = pool['bark.ogg'] # replace bark.ogg with the sound you wish and put that sound file in the file pool
    self.beep = Sampler(src, volume=.5)
    if self.var.calbeep == 'yes':

    I haven't this code either, though....

    Good luck,

  • edited March 2018

    Hi Eduard,

    Sorry for only getting to test this now - I had a few deadlines on other projects, and am now back to working on this project.

    I have tried to implement this but I just get an empty calibration (no sound and no dot/image).
    What I tried to do is to put an inline before the pygaze_init that has, in the prepare phase:

    def child_friendly_target(x, y):
        path = exp.pool[u'calib_1.gif']
        c = Canvas()
    # Element interface
        src = exp.pool[u'Ripple_sound_effect_edited.wav'] 
        self.beep = Sampler(src, volume=.8)
        if self.var.calbeep == 'yes':
    items['pygaze_init'].draw_calibration_canvas = child_friendly_target

    Thanks for all your help!

  • Hi Naomi,

    I am sorry I doubt have an eyetracker to test the script myself. Maybe it works if you move to the end of the function?
    If not, I have to pass :(


Sign In or Register to comment.