Use height units
If you are using a head rest or controlled environment where you have set up the monitor details in the PsychoPy monitor centre then feel free to use cm or degrees. This is particularly recommended if you are presenting stimuli to two screens.
On the other hand, if you aren’t controlling the distance between the participant and the computer or are running your study online, I would recommend using height units rather than pix or norm.
In norm units the screen is 2 x 2 (bottom left [-1,-1] to top right [1,1]). I sometimes use norm units for paragraphs of text but they don’t work well with images or polygons because the aspect ratio depends on the aspect ratio of the monitor.
Pixels are fine for aspect ratio but the overall size of the stimulus depends on the display resolution. You can’t assume that every computer is 1920 x 1080. You might be tempted to use pixels so you can match the size of your stimulus to ones in the literature. However, the size of a pixel is not constant and in general older computers will have had larger pixels so a 100 x 100 pixel square from 2010 is probably larger than a 100 x 100 pixel square from 2020.
Height units are an excellent compromise. The shortest dimension of the screen is 1 height unit so a .1 x .1 polygon will look square. Note that in portrait orientation the width of the screen is 1 height unit and the height is more than that so if you want your stimuli to fit equally well on both landscape and portrait format screens, you should restrict yourself to a 1 x 1 square area.
Height units have two other advantages.
-
In general someone will view a small screen from closer than a larger screen so there will be better visual angle constancy than using pixel units.
-
They are the default units in PsychoPy so when you create a new visual component it will have a reasonable initial size. If you use pix then you will need to change the default values otherwise the stimuli will be too small to see or give an error message.