DotStim fieldSize argument has unclear units

In trying to match a specific dot density (dots per sq. degree) currently in version 2022.2.0dev3, I’ve failed to understand what units to provide to fieldSize in order to cover the window without expanding substantially beyond the window edge.
Could anyone help me understand what units are expected to be passed to the fieldSize argument of DotStim?

Some observations:

  • Setting fieldSize=1 or fieldSize=(1, 1) seems to result in a dot field that on first glance appears to occupy about half the window height and width, but the entire window is still covered with fieldSize=1.8.
  • Setting units=‘pix’ and fieldSize=(1920,1080) seems to create a dot field that is massively expanded to be much larger than the entire window, which was set up with size=(1920,1080). Only occasionally can dots be seen with this fieldSize.
    Setting fieldSize=(50,50) with units=‘pix’ has a higher dot density.
  • With units=‘deg’, the fieldSize must be set substantially smaller than the calculated monitor width and height in deg in order to be restricted to the screen.

Thanks for any help you can provide.

Just tried DotStim on Windows 10 + psychopy 2021.2.3. It worked as expected. So, it could be version issue or Ubuntu specific.

I also find that the size attribute of the DotStim is relatively impenetrable (in 2022.1.4 on both Mac and Windows). e.g. below is a screenshot showing two polygons each with a size attribute of 5 × 5 deg. To get the DotStim vaguely comparable, the size field was specified as 2.5 × 2.5 degrees. This was because I was speculating that it might have been using size as a radius rather than a diameter, but that isn’t it, as the sizes still don’t match.

Like @davidhildebrand, I find that using other units (such as height) do not meaningfully correspond to the actually-displayed size.

I’ve created an issue at Github for this at

Please feel free to add extra supporting information there.

This raises questions about whether the specified dot speeds can be relied upon, if the stimulus is not correctly aware of its own size - this could affect compatibility with other published findings.

Thanks very much for adding this information, @neurochen and @Michael.

When I downgrade to 2021.2.3 on Ubuntu, the DotStim sizing makes sense. I will follow along on GitHub.