XYScope Target Types

The XYScope -- a large-screen, high-performance vector analog oscilloscope -- was once an important target platform in Maestro. A wide variety of visual targets can be presented on this medium, including point-like stimuli and various kinds of extended random-dot patterns. Unlike a CRT monitor, the oscilloscope can be updated at rates as high as 500Hz, and the refresh rate can be specified on a segment-by-segment basis. The high refresh rate made the XYScope the platform of choice for a long time because targets could be modulated at much finer intervals than the typical visual response times in primates.

Unfortunately, the analog vector oscilloscope is a dinosaur as far as technology goes. Production of analog scopes ended in the 1980s in favor of digital oscilloscopes, which do not have the same capabilities. Over time, the Lisberger lab's supply of scopes has dwindled as units began breaking down and could no longer be repaired. It has proven very difficult to find replacements. As of 2011, the lab had only one working scope. Thus, while Maestro 3.0 still supports the display, it is anticipated that the XYScope will be retired within the next several years.

The list below describes the different types of XYScope targets available. Each target type is characterized by several parameters, such as the number of dots in the target, its bounding rectangle, and so forth. When designing experimental protocols, the user will typically define a fair number of different targets, with related targets grouped together as "target sets" under the Targets branch of the experiment document tree.

Many of the extended target types have a dot "pattern" that can move independently of the target's "window". Take the Center target type, for example. In a trial, the user can define the target trajectory variables so that the dot pattern drifts upward while the window remains stationary. The result is a random-dot motion stimulus over an extended area of the visual field. Alternatively, the user could set up the trajectories so that pattern velocity is zero and window velocity is nonzero; the percept in this case is a rectangular-shaped, patterned object moving upward.

Version Note on Target Pattern Velocity

As of Maestro v2.7.0, pattern velocity is specified in the target window's frame of reference, rather than the display screen's frame of reference. Prior to this version, pattern velocity was specified with respect to the screen for XYScope targets -- so one had to set pattern velocity equal to window velocity to make the pattern stationary with respect to the window.

    • Spot/Rect Dot Array : A rectangular array of dots. No target "pattern" associated with this type, all dots move in accordance with the "window" trajectory. Parameters: #dots, width of dot array in degrees, and spacing between dots (both horizontally and vertically) in degrees. Typically the spacing is set to zero, resulting in a point-like target, the intensity of which depends on the number of dots.

    • Center : Full-screen random-dot pattern visible only inside a rectangular window. Pattern and window can move independently. Parameters: #dots in pattern, window width and height.

    • Surround : Full-screen random-dot pattern visible only outside a rectangular window. Pattern & window can move independently. Parameters: #dots in pattern, window width and height.

    • Rectangular Annulus : Full-screen random-dot pattern visible only inside a rectangular annulus. Pattern & window can move independently. Parameters: #dots in pattern, width and height of the inner and outer rectangles that define the annulus; (x,y) coordinates of the inner rectangle (the "hole") relative to the center of the outer bounding rectangle. The offset coordinates are restricted to ensure that the hole is entirely within the outer rectangle.

    • Optimized Center : Random-dot pattern restricted to a rectangular window. Pattern & window can move independently. Since all dots are restricted to the window, this is a much more efficient implementation than Center. However, it exhibits some animation artifacts at high velocities: the dots tend to aggregate near an edge or corner such that the random dot pattern is no longer uniform. Parameters: #dots in pattern, window width and height.

    • Opt Center w/Finite Dotlife : Same as Optimized Center, except that each dot in the target is assigned a random "lifetime" before animation begins. When its lifetime expires or it crosses a window edge, the dot is randomly repositioned within the window and its current lifetime is reset to the maximum. Parameters: #dots in pattern, window width and height, and maximum dot lifetime in either degrees traveled or milliseconds elapsed.

    • Optical Flow Field : Simulates an optic flow field, with randomly-positioned dots moving radially away from or toward a central focus of expansion (FOE). The boundaries of the target window are elliptical rather than rectangular, and each dot moves at a different speed depending upon its radial distance from the FOE. Positive pattern velocities correspond to dot motion toward the FOE. Users must specify an inner as well as outer radius for the flow field, since dots will take "forever" to reach the FOE -- leading to clumping of the pattern around the FOE when the pattern velocity is negative. Implementation has been tweaked to work best for pattern velocities in the range 5-60 deg/sec. Parameters: #dots in pattern, inner and outer radius of flow field.

    • Oriented Bar/Line : Oriented rectangular bar or thin line of randomly arranged dots. There is no target "pattern" associated with this type; all dots move in accordance with the "window" trajectory. To get a line of dots, set the width of the bar to 0 degrees. Parameters: #dots in pattern, width and height of bar in degrees, and drift axis angle.

    • Noisy Dots (Direction) : Same as Opt Center w/Finite Dotlife, with the addition of random noise in the motion of individual dots making up the target pattern. Each time the "noise update interval" expires, the direction of each dot is determined by adding an offset -- chosen randomly for each dot -- to the current dot pattern direction. The effect is to introduce directional noise in the target pattern motion without changing the mean direction of motion. Dot direction offsets are chosen from a range [-N..N] deg, where the "noise range limit" N is limited to [0..180]. The larger the value of N, the greater the noise introduced. If N=0 (effectively, no noise), then this target behaves exactly like Opt Center w/Finite Dotlife. Parameters: noise range limit N, noise update interval in milliseconds, #dots in pattern, window width and height, and maximum dot lifetime in either degrees traveled or milliseconds elapsed (note that the finite dotlife feature can be turned off for this target type by setting the dot lifetime to 32767 ms).

    • Noisy Dots (Speed) : Similar to Noisy Dots (Direction), except that the noise is in the speed, rather than direction, of the individual target dots. You can choose between two algorithms for speed noise generation:

      • Additive. Each dot's velocity vector magnitude (i.e., speed) is offset by a randomly chosen percentage of the nominal pattern speed: R = Ro + x·Ro / 100. When the "noise update interval" expires, a new value of x is chosen for each dot, with a granularity of 1%, from the range [-N..N], where the "noise range limit" N is limited to [0..300%]. If N=0 (effectively, no noise), then this target behaves exactly like Opt Center w/Finite Dotlife. If N>100, then at least some of the target dots will move in the opposite direction of the "mean" target motion!

      • Multiplicative. In this case, each dot's speed is given by R = Ro· 2x / E, where x is randomly chosen from the range [-N..N] each time the noise update interval expires (granularity = 0.05). In this case, the noise range limit N is narrowly restricted to [1..7]. The factor E is the expected value of 2x given that x is a uniform random variable over [-N..N] -- so that the mean value of R is approximately Ro over enough iterations.

Parameters: Choice of noise algorithm, noise range limit N, noise update interval in milliseconds, #dots in pattern, window width and height, and maximum dot lifetime in either degrees traveled or milliseconds elapsed (again, the finite dotlife feature can be turned off for this target type by setting the dot lifetime to 32767 ms).

Version Note on Speed Noise Granularity

Prior to Maestro v2.1.2, the speed noise granularity for the additive noise algorithm was 0.1%. Downstream analysis software can check the data file version to see which granularity was in effect. If the file version number is 10 or less, the granularity was 0.1%; if it is 11 or more, the granularity is 1%.

    • Opt Ctr w/ Coherence : This target is implemented like Optimized Center, but it introduces the notion of "percent coherence". If the target has N % coherence, then on every frame update, every target dot has a N % chance of moving coherently -- i.e., in accordance with the pattern velocity vector for that frame -- and a (100-N) % chance of being randomly repositioned within the target window. The total number of dots painted each frame is always the same. However, at the faster update rates (2-4 ms), there may appear to be more dots. Tests during development of this target class indicated that an XYScope frame period of ~8 ms gives better results. This target is based upon a 1988 J.Neurosci. paper by Newsome & Pare. Parameters: #dots in pattern, %coherence, window width and height.