Set variable stimulus size through measuring visual angle online study
Hi there,
I've looked into this but haven't had any success so far. Is there any means of setting the size of the stimulus to be variable based upon visual angle when conducting a study online?
This can be done on other online experiment platforms through something like the virtual chinrest (virtual-chinrest - jsPsych), which takes a couple of measurements from the participant at the beginning to estimate their screen size and distance from the screen, and then recalibrates the size of the stimuli from there. Is anything like this available in OpenSesame?
Thanks!!
Comments
Hello!
In OpenSesame, you cannot directly set the size of stimuli based on visual angle within the program's graphical user interface. However, you could implement a custom calibration procedure similar to the virtual chinrest you mentioned. This requires a bit of coding and participant interaction.
Here's a general outline of how you could approach this in OpenSesame for an online study using OSWeb:
While OpenSesame doesn't have a built-in feature like jsPsych's virtual chinrest, you can create similar functionality with custom code. Unfortunately, I don't have the exact code snippet to provide this feature directly, but I can guide you through the JavaScript needed or help you with specific parts of the implementation if you decide to go this route.
Would you like to proceed with this, and if so, could you specify which part of the process you need assistance with? 😊🖥️
(I am Sigmund, your OpenSesame AI assistant! I occasionally answer questions on the forum, but you can always find me on sigmundai.eu!)
I am Sigmund, your OpenSesame AI assistant! I occasionally answer questions on the forum, but you can always find me on sigmundai.eu!
Yes, help is much appreciated. I would need assistance with each step if possible!
Absolutely! Let's go through the steps together. 😊
Step 1: Estimate Screen Size
First, you'll need to present instructions to the participant to hold up a common object (such as a credit card, which has a standard width of about 85.6 mm) to the screen and adjust a displayed rectangle until it matches the object's size.
Instructions for Participants:
1. Create a
sketchpaditem in OpenSesame with text instructions for the participant.2. Explain that they will be using an object like a credit card to calibrate the screen size.
3. Include a button or prompt them to press a key when they are ready to start the calibration.
Calibration Display:
1. Create an
inline_javascriptitem to present a resizable rectangle and record its final size.2. Use mouse input to allow the participant to adjust the rectangle's width to match the width of their credit card held against the screen.
Step 2: Estimate Viewing Distance
Ask the participant to measure their viewing distance from the screen. This could be done with a simple text input or by asking them to select from a range of distances if precise measurement isn't possible.
Instructions for Viewing Distance: 1. Create another
sketchpaditem with text instructions to ask the participant to measure the distance from their eyes to the screen.Input for Viewing Distance: 1. Use a
form_text_inputitem to let the participant enter their viewing distance.Step 3: Calculate Visual Angles
Once you have the screen width in pixels (from the calibration) and the viewing distance in centimeters (or any other unit, but be consistent), you can calculate the size of your stimuli in pixels to correspond to a specific visual angle.
Visual Angle Calculation: 1. Add another
inline_javascriptitem to perform the calculations. 2. Use the following formula to calculate the size of the stimulus in pixels based on the visual angle:Step 4: Adjust Stimulus Size
Use the
stimulus_width_pixelscalculated from Step 3 to set the size of your stimuli when you present them in your experiment items, such assketchpadorcanvasobjects.Implementing this requires a custom script, and it can become quite complex, as the participant's accuracy in measurement directly affects the calibration's precision. Also, remember that this method relies on participants providing accurate information, which may not always be the case.
Would you like to delve into the JavaScript coding for these steps, or do you need help setting up the structure in OpenSesame first?
Sources:
(I am Sigmund, your OpenSesame AI assistant! I occasionally answer questions on the forum, but you can always find me on sigmundai.eu!)
I am Sigmund, your OpenSesame AI assistant! I occasionally answer questions on the forum, but you can always find me on sigmundai.eu!