Changing dot size in dotStim class does not work


I am building an experiment only using the PsychoPy coder, and I’m creating a random dot using the psychopy.visual.dotStim class. But I’m increasing the value in the dotSize parameter and it does not always increase the dot sizes on the screen. For small sizes (up to 20 pixels), the size on screen increases, but for values larger than that it doesn’t. I’ve seen this on two different computers, and it does not seem to depend on the field size or the number of dots in the field.
Also, from other forum posts, I saw that maybe resizing the window helps, but it didn’t help me in my case.

The documentation does not describe limitations on dot size values, so I would love to receive help on how to solve this.

Greetings and thank you in advance,

Showing some code would help us. Do you get the expected number of dots?

It’s quite a long code because I also use EyeLink 1000 and integrat it with PsychoPy, but this call is only for the dot -
dot_color = (1, -1, -1) #red dot
dot_size = 40
dot = visual.DotStim(win, fieldPos=(x, y), fieldShape=‘circle’, dotSize=float(dot_size), speed=0, color=dot_color)

Of course I can also send all the code if you want.
I want to show only one dot and it really only shows me one dot.
Thanks for the comment and your efforts!

try adding units=‘pix’ in your visual.DotStim

Unfortunately, it still doesn’t work.
I would appreciate any additional ideas if you have any.

what does this do:

import sys
import psychopy
from psychopy import visual, core, event
import time
import pyglet

## BACKGROUND at gray

the_screen = visual.Window([800,800], monitor='ovo', color=grey, 
allowGUI=False, waitBlanking=True ,fullscr=False, colorSpace='rgb', checkTiming=True)
the_screen.flip(clearBuffer=True)      # clear

dot_color = (1, -1, -1) #red dot

ds=[ 20, 30, 40, 50, 60, 60, 60, 50, 40, 30, 20]
for d in ds:
    dot = visual.DotStim(the_screen, fieldPos=(x, y), fieldShape='circle', 
       dotSize=d, speed=0, color=dot_color)
    the_screen.flip(clearBuffer=True)      # dot posted
    print("new dot ", d)
    the_screen.flip(clearBuffer=True)      # dot removed

1 Like

In the end I got it to work when I changed the code to -
dot = visual.Circle(win, radius=dot_size/2, fillColor=dot_color, pos=(x,y)).

If it help others, before this I tried to change to visual.ElementArrayStim and it worked, but it didn’t fit my experiment.
But thank you very much Ben for all the help and the effort!
I really appreciate it.