﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Millisecond Forums » Millisecond Forums » Inquisit 6  » Present Picture at Pseudorandomized Locations</title><generator>InstantForum 2017-1 Final</generator><description>Millisecond Forums</description><link>https://forums.millisecond.com/</link><webMaster>Millisecond Forums</webMaster><lastBuildDate>Thu, 17 Sep 2026 01:58:50 GMT</lastBuildDate><ttl>20</ttl><item><title>Present Picture at Pseudorandomized Locations</title><link>https://forums.millisecond.com/Topic33768.aspx</link><description>I am creating a working memory task where I will present participants with 1-3 colored circles at 1 of 8 pre-allocated positions along an imaginary circle. After a brief delay, I will present a placeholder circle at the location of each originally-presented circles, and participants will report the color of the circle in the bolded placeholder.&lt;br/&gt;&lt;br/&gt;I want to ensure that when 3 colored circles are presented....&lt;br/&gt;1) The location of each circle is different&lt;br/&gt;2) The locations from trial to trial are different&lt;br/&gt;&lt;br/&gt;What is the best way to set this up? I have created a hard-coded list of nearly every variable that requires pseudorandomizing, but it's not clear how to hard code pseudorandomized locations along an imaginary circle, especially if the radius of that imaginary circle needs to change based on the size of the participants' computer monitor.&lt;br/&gt;&lt;br/&gt;Thanks!</description><pubDate>Tue, 25 Jan 2022 23:16:56 GMT</pubDate><dc:creator>jmsaito</dc:creator></item><item><title>RE: Present Picture at Pseudorandomized Locations</title><link>https://forums.millisecond.com/Topic33772.aspx</link><description>&lt;blockquote data-id="33770" class="if-quote-wrapper" unselectable="on" data-guid="1643152263004" id="if_insertedNode_1643152262727" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="33770" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="33770" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="33770" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;jmsaito - 1/25/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-33770"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="33769" class="if-quote-wrapper" unselectable="on" data-guid="1643152263004" id="if_insertedNode_1643148665704" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="33769" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="33769" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="33769" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 1/25/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-33769"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="33768" class="if-quote-wrapper" unselectable="on" data-guid="1643152263004" id="if_insertedNode_1643148375665" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="33768" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="33768" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="33768" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;jmsaito - 1/25/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-33768"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;I am creating a working memory task where I will present participants with 1-3 colored circles at 1 of 8 pre-allocated positions along an imaginary circle. After a brief delay, I will present a placeholder circle at the location of each originally-presented circles, and participants will report the color of the circle in the bolded placeholder.&lt;br/&gt;&lt;br/&gt;I want to ensure that when 3 colored circles are presented....&lt;br/&gt;1) The location of each circle is different&lt;br/&gt;2) The locations from trial to trial are different&lt;br/&gt;&lt;br/&gt;What is the best way to set this up? I have created a hard-coded list of nearly every variable that requires pseudorandomizing, but it's not clear how to hard code pseudorandomized locations along an imaginary circle, especially if the radius of that imaginary circle needs to change based on the size of the participants' computer monitor.&lt;br/&gt;&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="33768"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;I don't understand what the issue is. Can you clarify "it's not clear how to hard code pseudorandomized locations along an imaginary circle, especially if the radius of that imaginary circle needs to change based on the size of the participants' computer monitor" and why that's supposed to be an impediment?&lt;br/&gt;&lt;br/&gt;You also may want to take a look at how stimuli along a circle's radius are set up in this script: &lt;a href="https://www.millisecond.com/download/library/spatialdelayedresponsetask/"&gt;&lt;a href="https://www.millisecond.com/download/library/spatialdelayedresponsetask/"&gt;https://www.millisecond.com/download/library/spatialdelayedresponsetask/&lt;/a&gt;&lt;/a&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="33769"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;The reference in the example script is useful, thanks!&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="33770"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Here is a condensed version loosely based on the circle position logic in the SDRT. On every trial, it picks three different angles for three on-screen objects A, B, and C. The faint circle you see is merely there as a visual aid, to help you see that the objects are placed along the circle's radius. You can play around with the /canvassize setting to check whether everything adapts to different canvas / monitor sizes as intended.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;defaults&amp;gt;&lt;br/&gt;/ screencolor = grey&lt;br/&gt;/ txbgcolor = transparent&lt;br/&gt;/ canvasaspectratio = (4,3)&lt;br/&gt;/ canvassize = (50%, 50%) // play around with this &lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;parameters&amp;gt;&lt;br/&gt;/ circle_size = 0.7 // as fraction of canvas height&lt;br/&gt;&amp;lt;/parameters&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ angle = 0 // only used temporarily&lt;br/&gt;&lt;br/&gt;/ angle_a = 0 // chosen angle for object A&lt;br/&gt;/ x_a = 0 // calculated x position for object A&lt;br/&gt;/ y_a = 0 // calculated y position for object A&lt;br/&gt;&lt;br/&gt;// same for object B&lt;br/&gt;/ angle_b = 0&lt;br/&gt;/ x_b = 0&lt;br/&gt;/ y_b = 0&lt;br/&gt;&lt;br/&gt;// same for object C&lt;br/&gt;/ angle_c = 0&lt;br/&gt;/ x_c = 0&lt;br/&gt;/ y_c = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expressions&amp;gt;&lt;br/&gt;/ diameter_inpx = 1px * parameters.circle_size * display.canvasheight&lt;br/&gt;/ radius_inpx = 0.5 * expressions.diameter_inpx&lt;br/&gt;/ x0 = 1px*(display.canvaswidth/2)&lt;br/&gt;/ y0 = 1px*(display.canvasheight/2)&lt;br/&gt;/ theta = (values.angle-90)*(m_pi/180)&lt;br/&gt;/ deltax = expressions.radius_inpx*cos(expressions.theta)&lt;br/&gt;/ deltay = expressions.radius_inpx*sin(expressions.theta)&lt;br/&gt;/ x = 1px*round(expressions.x0+expressions.deltax)&lt;br/&gt;/ y = 1px*round(expressions.y0+expressions.deltay)&lt;br/&gt;&amp;lt;/expressions&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list angles&amp;gt;&lt;br/&gt;/ items = (&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10,20,30,40,50,60,70,80,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;100,110,120,130,140,150,160,170,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;190,200,210,220,230,240,250,260,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;280,290,300,310,320,330,340,350)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a&amp;gt;&lt;br/&gt;/ items = ("A")&lt;br/&gt;/ hposition = values.x_a&lt;br/&gt;/ vposition = values.y_a&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b&amp;gt;&lt;br/&gt;/ items = ("B")&lt;br/&gt;/ hposition = values.x_b&lt;br/&gt;/ vposition = values.y_b&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text c&amp;gt;&lt;br/&gt;/ items = ("C")&lt;br/&gt;/ hposition = values.x_c&lt;br/&gt;/ vposition = values.y_c&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;// this is not necessary to have and merely serves as visual aid&lt;br/&gt;&amp;lt;shape imaginary_circle&amp;gt;&lt;br/&gt;/ shape = circle&lt;br/&gt;/ color = azure&lt;br/&gt;/ size = (expressions.diameter_inpx, expressions.diameter_inpx)&lt;br/&gt;/ erase = false&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial mytrial&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.angles.reset();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// pick angle for object A&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.angle_a = list.angles.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.angle = values.angle_a;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// calculate position&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.x_a = expressions.x;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.y_a = expressions.y;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// pick angle for object B&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.angle_b = list.angles.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.angle = values.angle_b;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// calculate position&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.x_b = expressions.x;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.y_b = expressions.y;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// pick angle for object C&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.angle_c = list.angles.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.angle = values.angle_c;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// calculate position&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.x_c = expressions.x;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.y_c = expressions.y;&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, imaginary_circle, a, b, c]&lt;br/&gt;/ validresponse = (57)&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block myblock&amp;gt;&lt;br/&gt;/ trials = [1-8 = trial.mytrial]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;[/code]&lt;br/&gt;</description><pubDate>Tue, 25 Jan 2022 23:16:56 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Present Picture at Pseudorandomized Locations</title><link>https://forums.millisecond.com/Topic33770.aspx</link><description>&lt;blockquote data-id="33769" class="if-quote-wrapper" unselectable="on" data-guid="1643148667050" contenteditable="false" id="if_insertedNode_1643148665704"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="33769" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="33769" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="33769" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 1/25/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-33769"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="33768" class="if-quote-wrapper" unselectable="on" data-guid="1643148667050" id="if_insertedNode_1643148375665" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="33768" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="33768" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="33768" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;jmsaito - 1/25/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-33768"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;I am creating a working memory task where I will present participants with 1-3 colored circles at 1 of 8 pre-allocated positions along an imaginary circle. After a brief delay, I will present a placeholder circle at the location of each originally-presented circles, and participants will report the color of the circle in the bolded placeholder.&lt;br/&gt;&lt;br/&gt;I want to ensure that when 3 colored circles are presented....&lt;br/&gt;1) The location of each circle is different&lt;br/&gt;2) The locations from trial to trial are different&lt;br/&gt;&lt;br/&gt;What is the best way to set this up? I have created a hard-coded list of nearly every variable that requires pseudorandomizing, but it's not clear how to hard code pseudorandomized locations along an imaginary circle, especially if the radius of that imaginary circle needs to change based on the size of the participants' computer monitor.&lt;br/&gt;&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="33768"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;I don't understand what the issue is. Can you clarify "it's not clear how to hard code pseudorandomized locations along an imaginary circle, especially if the radius of that imaginary circle needs to change based on the size of the participants' computer monitor" and why that's supposed to be an impediment?&lt;br/&gt;&lt;br/&gt;You also may want to take a look at how stimuli along a circle's radius are set up in this script: &lt;a href="https://www.millisecond.com/download/library/spatialdelayedresponsetask/"&gt;&lt;a href="https://www.millisecond.com/download/library/spatialdelayedresponsetask/"&gt;https://www.millisecond.com/download/library/spatialdelayedresponsetask/&lt;/a&gt;&lt;/a&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="33769"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;The reference in the example script is useful, thanks!&lt;br/&gt;&lt;br/&gt;</description><pubDate>Tue, 25 Jan 2022 22:11:24 GMT</pubDate><dc:creator>jmsaito</dc:creator></item><item><title>RE: Present Picture at Pseudorandomized Locations</title><link>https://forums.millisecond.com/Topic33769.aspx</link><description>&lt;blockquote data-id="33768" class="if-quote-wrapper" unselectable="on" data-guid="1643148377179" id="if_insertedNode_1643148375665" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="33768" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="33768" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="33768" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;jmsaito - 1/25/2022&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-33768"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;I am creating a working memory task where I will present participants with 1-3 colored circles at 1 of 8 pre-allocated positions along an imaginary circle. After a brief delay, I will present a placeholder circle at the location of each originally-presented circles, and participants will report the color of the circle in the bolded placeholder.&lt;br/&gt;&lt;br/&gt;I want to ensure that when 3 colored circles are presented....&lt;br/&gt;1) The location of each circle is different&lt;br/&gt;2) The locations from trial to trial are different&lt;br/&gt;&lt;br/&gt;What is the best way to set this up? I have created a hard-coded list of nearly every variable that requires pseudorandomizing, but it's not clear how to hard code pseudorandomized locations along an imaginary circle, especially if the radius of that imaginary circle needs to change based on the size of the participants' computer monitor.&lt;br/&gt;&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="33768"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;I don't understand what the issue is. Can you clarify "it's not clear how to hard code pseudorandomized locations along an imaginary circle, especially if the radius of that imaginary circle needs to change based on the size of the participants' computer monitor" and why that's supposed to be an impediment?&lt;br/&gt;&lt;br/&gt;You also may want to take a look at how stimuli along a circle's radius are set up in this script: &lt;a href="https://www.millisecond.com/download/library/spatialdelayedresponsetask/"&gt;https://www.millisecond.com/download/library/spatialdelayedresponsetask/&lt;/a&gt;&lt;br/&gt;</description><pubDate>Tue, 25 Jan 2022 22:09:55 GMT</pubDate><dc:creator>Dave</dc:creator></item></channel></rss>