| Reference | Downloads | Github

Show NoiseStim and GratingStim in a gaussian annulus using degrees of visual angle


we currently define our stimulus like this:

X = 256; # size of texture in pixels, needs to be to the power of 2!

        self.signal = visual.GratingStim(
            win=window, blendmode='add', tex=gabortexture, mask='circle', pos=[0 + xoffset, 0],
            size=X, contrast=1.0, opacity=threshold,

        # the annulus is created by passing a matrix of zeros to the texture argument
        self.annulus = visual.GratingStim(
            win=window, mask='circle', tex=np.zeros((64, 64)), pos=[0 + xoffset, 0],
            size=50, contrast=1.0, opacity=1.0,

        # noise patch
        self.noise = visual.NoiseStim(
            win=window, blendmode='add', mask='circle', pos=[0 + xoffset, 0],
            size=X, noiseElementSize=1, contrast=0.1, opacity=1.0,

We need to change this to so that noise and signal are shown in a Gaussian annulus, meaning contrast should be highest in the middle of the “ring” and drop off towards the sides. Mean of the Gaussian 4.8 degrees, SD 1.8 degrees of visual angle.

I checked the documentation and assume that this can be done via mask or maskParams, but I have no idea how exactly. Can someone help?

Thanks in advance!