A Flexible tracking program

[Martin Taylor 2013.09.01.16.50]

I have been playing with the Processing language, and I hope the

result will be useful to someone. I’ve uploaded applications for
Mac, Windows, and Linux (only the Mac version is tested, and that
only trivially) to my Dropbox folder, where you can get it at
.
I also attach the Processing code that is probably better for you to
use if you have Processing (it’s free). Here’s the “ReadMe” that is included with each version.

FlexibleTracker_b1.zip (21 KB)

···

https://dl.dropboxusercontent.com/u/26441754/FlexiblTrackerApps.zip

Flexible Linear Tracking Experiment

  This program allows you to alter a variety of parameters in a

simple tracking experiment set within a window of size 100 by 900
pixels. The task is always to influence with your mouse or
joystick a
green ellipse (the “cursor”) that can be moved below a mauve
target ellipse. The tracking may be pursuit (the target moves
left-right across the window undder the influence of a
disturbance)
or compensatory (the target remains stationary at the horizontal
middle of the screen while the cursor is disturbed).

  The various parameters that can be set by menus are the

characteristic shape of the disturbance waveform (e.g. sinusoidal,
triangular, step, ramp), the difficulty level of the task (speed
or
bandwidth of the disturbance), the vertical separation between
target
and cursor and its variability, the lag between your move of the
mouse/joystick and its effect on the cursor, compensatory or
pursuit
tracking, and whether and when there are periods when the
disturbance
is static or its effect invisible.

  A trial consists of a runin period of 300 frames, (5 seconds) at

a
frame rate of 60Hz, followed by 4096 frames (about 68.3 seconds)
of
recorded data. At the end of a trial, the data are saved in an
Excel-compatible file. The file name is based on the settings of
several of the experimental parameters, and its location is by
default in a folder called “data” under the folder containing
your application. You can set the folder for saving the data as
you
wish.

  At the end of a run, three graphs are displayed. Across the top

are shown the traces of the disturbance, the cursor, and the
error,
plus the variation of the vertical separation of target and cursor
if
you have chosen to make it variable. Below it, on the left is a
cumulative histogram of the duration of “still-stands” when the
cursor was not moving, and on the right a Fourier analysis of the
disturbance waveform and the error waveform. At the top-left of
the
window is displayed the file name under which the data for this
run
is stored. The name consists of the values of several of the
parameters used, followed by a serial number if this trial
repeated
the values for a trial already stored. After ten of the same, it
will
start overwriting older versions.

Operation

  When you start the experiment, you see a window 1100 by 900

pixels, with seven drop-down menus and two buttons across the top.
One of the buttons is labelled “Go”. You click on this at any
time to start the tracking run. Usually, you will want to set up
the
experimental conditions from the menus before you do this, but if
you
don’t, you will get a run using default parameters if this is the
first run after starting the application, or the same parameters
as
you just used otherwise.

  The other button is labelled “Abort” and is always visible

during the run while the other menus and buttons are hidden.
Depending on the state of the operation, one or two clicks will
close
the application.

  While the graphs are displayed, you can click anywhere in the

window (except on the “Abort” button :-), and you will again see
the menus displaying the parameters you used for the most recent
run.
To repeat those parameters (though not the same disturbance
waveform), click on “Go”. Otherwise, use the menus to alter the
parameters as you wish before your next run, or click “Abort” if
you want to quit.

Drop-Down Menus

Default values shown in bold italic.

Disturbance Type

Smooth : A waveform whose spectrum
declines by a constant number of db per octave, the number being
set
by the Difficulty parameter. The largest spectral component is the
first, a wave that completes one cycle over the 4096 frames of the
recorded trial.

  Ramp: At random times the disturbance changes among three states,

a constant velocity increase or decrease and a period of stasis.

  Variable Triangle: The disturbance changes direction and speed ar

random moments, but maintains a constant velocity between changes.

  Random Step: The disturbance value changes stepwise at random

moments to any value within its range, but does not change other
than
at those moments. This mimics a “whack-a-mole” game.

  Triangle: The disturbance changes direction at random moments,

but
the velocity is always the same.

Perlin: Like “Smooth” but generated differently.

  Small Step: The disturbance value changes stepwise, but only

within a region fairly close to its current value, the probability
of
a step size and direction being chosen from a Gaussian
distribution.

  White: The disturbance waveform is constructed by adding

sinusoids
whose frequency is an integer multiple of 60/4096 (0.015) Hz.

  White noise brings up a slider that

allows you to set the lowest frequency of the noise-band in
increments of 3 x 0.015 Hz. The bandwidth is set by the Difficulty
parameter, and does not depend on the setting of the lower-bound
slider.

Difficulty

  There are 5 levels of Difficulty. These are not equated across

the
different types of Disturbance, but they all refer to the speed at
which things change about the disturbance. Apart from the White
Noise
when the lower bound is non-zero, this also means that Difficulty
affects the speed of the target or the cursor across the screen.
In
the case of the White Noise with non-zero lower bound, Difficulty
affects the bandwidth of the noise.

Default is Difficulty 2.

Separation

  Separation is the vertical distance in pixels between the mauve

target ellipse and the green cursor ellipse. Three extra
possibilities are included, in which the separation varies
smoothly
and randomly (using Perlin noise) during the course of the trial.
These are labelled by the size and speed of the variation.

Default is Separation 180.

Action Lag

  Action Lag is the time in milliseconds between the moment you

move
the mouse/joystick and the moment its influence is felt at the
cursor.

Default “Zero ” actually means one frame of 1/60
sec.

Tracking Type

Tracking type is “Pursuit ” (the target moves and
you try to keep the cursor directly under it) or “Compensatory”
(the target stays stationary in the middle and the Disturbance is
added to the mouse/joystick influence on the Cursor).

Blanking/Bursting

  You can choose whether there are interrupting intervals during

which the element affected by the Disturbance (target or cursor)
is invisible (blanking) or during which the Disturbance is held
constant
(Bursting — the bursts are the periods in which the Disturbance
varies normally). There are 5 possibilities:

None: Normal case, no interruptions.

Blanking: The Blanking intervals are strictly periodic

Bursting: The Bursting intervals are strictly periodic

  For these two cases, two sliders are

shown that allow you to vary the blanking or static interval in
increments of half-second, and the visible or variable interval in
increments of one second.

  Irregular Blanking: The durations of the blanked and visible

intervals vary.

  Irregular Bursting: The durations of the static and varying

disturbance are variable.

  For these two cases, the same two

sliders are shown, plus one that allows you to set the level of
irregularity of the intervals in increments of 10% of the base
interval. For example, if the visible interval is set to 5
seconds,
and the variation is set to 20%, each actual visible interval will
be
somewhere between 4 and 6 seconds.

Data Folder

Default: The data are saved to a file in a folder called “*** data”
in
the folder that contains the application***.

  Choose FolderFile: You use a folder in which to save your data,

but the file name will be the one shown on the display of the
graphs
after you finish the run. (A future extension of this application
is
intended to allow you to extract a named file for further analysis
and modelling, in which case you will be able to select a folder
and
a file).

Comment

  When you finish a run and click out of the graphs in order to

show
the menus, the headings display the selections used for the
previous
run, unless they were the defaults. If slider values were used,
they
also are shown.

[Kent McClelland 2013.09.04.1505 EDT]

Martin Taylor 2013.09.01.16.50

Hi Martin,

Thanks for posting your tracking experiment software. I’ve been trying out the Mac version, and it’s pretty slick. The only glitches I’ve seen so far are occasional appearances of a small round-edged white box surrounding the pointer for my mouse, and then
sometimes when the box shows up the program doesn’t seem to work properly.

I like the fact that your program collects the data for each run in graphical form and as an Excel file. That’s very convenient.

As I was trying it out, I had some questions about it:

Could you tell us more about the diagnostics that you’re graphing at the end of each run? What do you learn from looking at dwell times? And from looking at the Fourier analyses of error and disturbance?

What is the control ratio a ratio of? How does it relate to rms error?

Why have you programmed the tracker to provide different vertical separations between the cursor and the target?

What’s a Perlin disturbance? (That one didn’t seem to work for me.)

In the Excel files for the data, I see columns for quantities relating to a Vmodel and an Amodel, as well as gain, leak, lag, and tolerance, but the files don’t appear to contain the formulas needed for computing those quantities. Do you have, could you distribute,
a file that contains the necessary formulas? And if so, can you tell us more about the definition of the Vmodel and Amodel and what they show?

Thanks again for sharing all this interesting work with us.

Kent

···


https://dl.dropboxusercontent.com/u/26441754/FlexiblTrackerApps.zip

Flexible Linear Tracking Experiment

This program allows you to alter a variety of parameters in a simple tracking experiment set within a window of size 100 by 900 pixels. The task is always to influence with your mouse or joystick a green ellipse (the “cursor”) that can be moved below a mauve
target ellipse. The tracking may be pursuit (the target moves left-right across the window undder the influence of a disturbance) or compensatory (the target remains stationary at the horizontal middle of the screen while the cursor is disturbed).

The various parameters that can be set by menus are the characteristic shape of the disturbance waveform (e.g. sinusoidal, triangular, step, ramp), the difficulty level of the task (speed or bandwidth of the disturbance), the vertical separation between
target and cursor and its variability, the lag between your move of the mouse/joystick and its effect on the cursor, compensatory or pursuit tracking, and whether and when there are periods when the disturbance is static or its effect invisible.

A trial consists of a runin period of 300 frames, (5 seconds) at a frame rate of 60Hz, followed by 4096 frames (about 68.3 seconds) of recorded data. At the end of a trial, the data are saved in an Excel-compatible file. The file name is based on the settings
of several of the experimental parameters, and its location is by default in a folder called “data” under the folder containing your application. You can set the folder for saving the data as you wish.

At the end of a run, three graphs are displayed. Across the top are shown the traces of the disturbance, the cursor, and the error, plus the variation of the vertical separation of target and cursor if you have chosen to make it variable. Below it, on the
left is a cumulative histogram of the duration of “still-stands” when the cursor was not moving, and on the right a Fourier analysis of the disturbance waveform and the error waveform. At the top-left of the window is displayed the file name under which the
data for this run is stored. The name consists of the values of several of the parameters used, followed by a serial number if this trial repeated the values for a trial already stored. After ten of the same, it will start overwriting older versions.

Operation

When you start the experiment, you see a window 1100 by 900 pixels, with seven drop-down menus and two buttons across the top. One of the buttons is labelled “Go”. You click on this at any time to start the tracking run. Usually, you will want to set up
the experimental conditions from the menus before you do this, but if you don’t, you will get a run using default parameters if this is the first run after starting the application, or the same parameters as you just used otherwise.

The other button is labelled “Abort” and is always visible during the run while the other menus and buttons are hidden. Depending on the state of the operation, one or two clicks will close the application.

While the graphs are displayed, you can click anywhere in the window (except on the “Abort” button :-), and you will again see the menus displaying the parameters you used for the most recent run. To repeat those parameters (though not the same disturbance
waveform), click on “Go”. Otherwise, use the menus to alter the parameters as you wish before your next run, or click “Abort” if you want to quit.

Drop-Down Menus

Default values shown in bold italic.

Disturbance Type

Smooth : A waveform whose spectrum declines by a constant number of db per octave, the number being set by the Difficulty parameter. The largest spectral component is the first, a wave that completes one cycle over the 4096 frames
of the recorded trial.

Ramp: At random times the disturbance changes among three states, a constant velocity increase or decrease and a period of stasis.

Variable Triangle: The disturbance changes direction and speed ar random moments, but maintains a constant velocity between changes.

Random Step: The disturbance value changes stepwise at random moments to any value within its range, but does not change other than at those moments. This mimics a “whack-a-mole” game.

Triangle: The disturbance changes direction at random moments, but the velocity is always the same.

Perlin: Like “Smooth” but generated differently.

Small Step: The disturbance value changes stepwise, but only within a region fairly close to its current value, the probability of a step size and direction being chosen from a Gaussian distribution.

White: The disturbance waveform is constructed by adding sinusoids whose frequency is an integer multiple of 60/4096 (0.015) Hz.

White noise brings up a slider that allows you to set the lowest frequency of the noise-band in increments of 3 x 0.015 Hz. The bandwidth is set by the Difficulty parameter, and does not depend on the setting of the lower-bound
slider.

Difficulty

There are 5 levels of Difficulty. These are not equated across the different types of Disturbance, but they all refer to the speed at which things change about the disturbance. Apart from the White Noise when the lower bound is non-zero, this also means
that Difficulty affects the speed of the target or the cursor across the screen. In the case of the White Noise with non-zero lower bound, Difficulty affects the bandwidth of the noise.

Default is Difficulty 2.

Separation

Separation is the vertical distance in pixels between the mauve target ellipse and the green cursor ellipse. Three extra possibilities are included, in which the separation varies smoothly and randomly (using Perlin noise) during the course of the trial.
These are labelled by the size and speed of the variation.

Default is Separation 180.

Action Lag

Action Lag is the time in milliseconds between the moment you move the mouse/joystick and the moment its influence is felt at the cursor.

Default “Zero” actually means one frame of 1/60 sec.

Tracking Type

Tracking type is “Pursuit” (the target moves and you try to keep the cursor directly under it) or “Compensatory” (the target stays stationary in the middle and the Disturbance is added to the mouse/joystick influence on the Cursor).

Blanking/Bursting

You can choose whether there are interrupting intervals during which the element affected by the Disturbance (target or cursor) is invisible (blanking) or during which the Disturbance is held constant (Bursting — the bursts are the periods in which the Disturbance
varies normally). There are 5 possibilities:

None: Normal case, no interruptions.

Blanking: The Blanking intervals are strictly periodic

Bursting: The Bursting intervals are strictly periodic

For these two cases, two sliders are shown that allow you to vary the blanking or static interval in increments of half-second, and the visible or variable interval in increments of one second.

Irregular Blanking: The durations of the blanked and visible intervals vary.

Irregular Bursting: The durations of the static and varying disturbance are variable.

For these two cases, the same two sliders are shown, plus one that allows you to set the level of irregularity of the intervals in increments of 10% of the base interval. For example, if the visible interval is set to 5 seconds,
and the variation is set to 20%, each actual visible interval will be somewhere between 4 and 6 seconds.

Data Folder

Default: The data are saved to a file in a folder called “data” in the folder that contains the application.

Choose FolderFile: You use a folder in which to save your data, but the file name will be the one shown on the display of the graphs after you finish the run. (A future extension of this application is intended to allow you to extract a named file for further
analysis and modelling, in which case you will be able to select a folder and a file).

Comment

When you finish a run and click out of the graphs in order to show the menus, the headings display the selections used for the previous run, unless they were the defaults. If slider values were used, they also are shown.

Kent,

The box is a warning that the mouse is going out of range and might

leave the window. When the mouse it outside the window, the program
doesn’t detect it.
I don’t know how much one can learn from these graphs. The idea is
to look at what happens when the transport lags get long. One
possibility that I mentioned on CSGnet is that the user might wait
to see the effect of a move of the mouse before moving again, in
which case there should be more long dwell times for longer
transport lags. The Fourier also is related to longer transport
lags, as I found that I would go into an oscillatory mode. I want to
see how the frequency of these oscillations is affected by different
factors such as output gain, prediction gain, and transport lag. But
I haven’t done the modelling yet, so I don’t know whether there will
be anything to see.
Control ratio is RMS(disturbance)/RMS(error).
Part of the reason for doing the program at all was to see how the
ability to discriminate the horizontal offset between cursor and
target affected the tracking. Rick showed that the off-vertical
angle might be what was controlled rather than the horizontal
offset. I’ve been trying to figure out some way to discriminate
between these possibilities, and it might be possible to do it using
the time-varying separation. Rick thinks he has shown a
discrimination in favour of the angle control. Intuitively it seems
right to me that the angle is what I am controlling when I do it,
but I do not think Rick has demonstrated that it is. However, he
says that his paper has been accepted, so apparently referees agree
with him. One day maybe we will find a way to make the
discrimination that I consider legitimate.
It actually is the way Processing makes noise when you call the
“noise” function. I had to look it up on the Web. Apparently its
used a lot to make artificial textures in movies, and stuff like
that. The background theory is complicated, so I don’t try to
understand it. But it has always worked for me. Under what
conditions does it not work for you? …Oops, on testing it just
now, I found it didn’t work with Difficulty 1. The cursor wet to the
left edge of the window and stayed there. I can’t see why in the
code, but I fixed it by making all the Perlin noises more difficult
– which needed to be done anyway, to make the Perlin difficulties
more similar to the difficulties for the other kinds of noise. (If
you are using the Processing source, you can make my fix by going to
line 140 of the vNoise source and changing .0002 to .0005.) There
must be some kind of a threshold in the Perlin code, which is in the
Processing core not accessible to me.
Sorry. There’s a lot of left-over crud in the header lines of the
Excel files. It is left over from an early version of the program
that included an optimizing phase that I was never sure worked
properly. Ignore them for now. I’ll remove them or make them valid
in an update. As it stands, the only useful things in the Excel file
are the data columns:
column A: target
B: cursor
C: human error
D: vertical separation of cursor and target (interesting only when
you use one of the variable separation choices)
E: deviation from vertical of angle between cursor and target in
milliradians.
F: Whether the element influenced by the disturbance (target for
pursuit, cursor for compensatory) is (1) visible or moving or (0)
invisible or static. They refer to models in which the offset or the angle is controlled.
If they existed (which at the moment they don’t) they would show
model errors and the like. I hope that they might come to mean
something in a future update.
I’m going to have to rewrite what is shown in the headers, because
they don’t say anything about the menu choices that didn’t exist
when I originally described them, and they do talk about things that
are not there now. Sorry about that, and thanks for bringing it up.
Glad you like it.
Martin

···

Glad you are trying the program.

[Kent McClelland 2013.09.04.1505 EDT]

Martin Taylor 2013.09.01.16.50

Hi Martin,

          Thanks for posting your tracking experiment software. I've

been trying out the Mac version, and it’s pretty slick.
The only glitches I’ve seen so far are occasional
appearances of a small round-edged white box surrounding
the pointer for my mouse, and then sometimes when the box
shows up the program doesn’t seem to work properly.

          I like the fact that your program collects the data for

each run in graphical form and as an Excel file. That’s
very convenient.

As I was trying it out, I had some questions about it:

          Could you tell us more about the diagnostics that you're

graphing at the end of each run? What do you learn from
looking at dwell times? And from looking at the Fourier
analyses of error and disturbance?

          What is the control ratio a ratio of? How does it relate

to rms error?

          Why have you programmed the tracker to provide different

vertical separations between the cursor and the target?

          What's a Perlin disturbance? (That one didn't seem to work

for me.)

          In the Excel files for the data, I see columns for

quantities relating to a Vmodel and an Amodel, as well as
gain, leak, lag, and tolerance, but the files don’t appear
to contain the formulas needed for computing those
quantities.

          Do you have,

could you distribute, a file that contains the necessary
formulas? And if so, can you tell us more about the
definition of the Vmodel and Amodel and what they show?

          Thanks again for sharing all this interesting work with

us.

Martin,

I am having trouble getting the program to tun on my Windows 7 PC.

Can you give some instructions for installing it?

Thanks,

David Goldstein

···

Glad you are trying the program.

[Kent McClelland 2013.09.04.1505 EDT]

Martin Taylor 2013.09.01.16.50

Hi Martin,

          Thanks for posting your tracking experiment software. I've

been trying out the Mac version, and it’s pretty slick.
The only glitches I’ve seen so far are occasional
appearances of a small round-edged white box surrounding
the pointer for my mouse, and then sometimes when the box
shows up the program doesn’t seem to work properly.

          I like the fact that your program collects the data for

each run in graphical form and as an Excel file. That’s
very convenient.

As I was trying it out, I had some questions about it:

          Could you tell us more about the diagnostics that you're

graphing at the end of each run? What do you learn from
looking at dwell times? And from looking at the Fourier
analyses of error and disturbance?

          What is the control ratio a ratio of? How does it relate

to rms error?

          Why have you programmed the tracker to provide different

vertical separations between the cursor and the target?

          What's a Perlin disturbance? (That one didn't seem to work

for me.)

          In the Excel files for the data, I see columns for

quantities relating to a Vmodel and an Amodel, as well as
gain, leak, lag, and tolerance, but the files don’t appear
to contain the formulas needed for computing those
quantities.

          Do you have,

could you distribute, a file that contains the necessary
formulas? And if so, can you tell us more about the
definition of the Vmodel and Amodel and what they show?

          Thanks again for sharing all this interesting work with

us.

David,

I know almost nothing about PCs. I just exported the program as the

Processing system instructs, as a Mac binary, a PC binary, and a
Linux binary, zipped them all together, and made the package
available. I assumed that interested people would just extract their
own kind of binary and do whatever they do to install programs.

If the PC binary doesn't work, all I can suggest is that you get the

free Processing programming environment and use the source that is
included with each of the binaries. Then it should work on every
platform, not just those three.

Sorry I can't be of more help.

Martin
···

On 2013/09/5 9:17 AM, D Goldstein
wrote:

Martin,

    I am having trouble getting the program to tun on my Windows

7 PC.

Can you give some instructions for installing it?

Thanks,

David Goldstein

    Sent from my iPhone
    On Sep 4, 2013, at 5:54 PM, Martin Taylor <mmt-csg@MMTAYLOR.NET        >

wrote:

Kent,

      The box is a warning that the mouse is going out of range and

might leave the window. When the mouse it outside the window,
the program doesn’t detect it.
I don’t know how much one can learn from these graphs. The
idea is to look at what happens when the transport lags get
long. One possibility that I mentioned on CSGnet is that the
user might wait to see the effect of a move of the mouse
before moving again, in which case there should be more long
dwell times for longer transport lags. The Fourier also is
related to longer transport lags, as I found that I would go
into an oscillatory mode. I want to see how the frequency of
these oscillations is affected by different factors such as
output gain, prediction gain, and transport lag. But I haven’t
done the modelling yet, so I don’t know whether there will be
anything to see.
Control ratio is RMS(disturbance)/RMS(error).
Part of the reason for doing the program at all was to see how
the ability to discriminate the horizontal offset between
cursor and target affected the tracking. Rick showed that the
off-vertical angle might be what was controlled rather than
the horizontal offset. I’ve been trying to figure out some way
to discriminate between these possibilities, and it might be
possible to do it using the time-varying separation. Rick
thinks he has shown a discrimination in favour of the angle
control. Intuitively it seems right to me that the angle is
what I am controlling when I do it, but I do not think Rick
has demonstrated that it is. However, he says that his paper
has been accepted, so apparently referees agree with him. One
day maybe we will find a way to make the discrimination that I
consider legitimate.
It actually is the way Processing makes noise when you call
the “noise” function. I had to look it up on the Web.
Apparently its used a lot to make artificial textures in
movies, and stuff like that. The background theory is
complicated, so I don’t try to understand it. But it has
always worked for me. Under what conditions does it not work
for you? …Oops, on testing it just now, I found it didn’t
work with Difficulty 1. The cursor wet to the left edge of the
window and stayed there. I can’t see why in the code, but I
fixed it by making all the Perlin noises more difficult –
which needed to be done anyway, to make the Perlin
difficulties more similar to the difficulties for the other
kinds of noise. (If you are using the Processing source, you
can make my fix by going to line 140 of the vNoise source and
changing .0002 to .0005.) There must be some kind of a
threshold in the Perlin code, which is in the Processing core
not accessible to me.
Sorry. There’s a lot of left-over crud in the header lines of
the Excel files. It is left over from an early version of the
program that included an optimizing phase that I was never
sure worked properly. Ignore them for now. I’ll remove them or
make them valid in an update. As it stands, the only useful
things in the Excel file are the data columns:
column A: target
B: cursor
C: human error
D: vertical separation of cursor and target (interesting only
when you use one of the variable separation choices)
E: deviation from vertical of angle between cursor and target
in milliradians.
F: Whether the element influenced by the disturbance (target
for pursuit, cursor for compensatory) is (1) visible or moving
or (0) invisible or static. They refer to models in which the offset or the angle is
controlled. If they existed (which at the moment they don’t)
they would show model errors and the like. I hope that they
might come to mean something in a future update.
I’m going to have to rewrite what is shown in the headers,
because they don’t say anything about the menu choices that
didn’t exist when I originally described them, and they do
talk about things that are not there now. Sorry about that,
and thanks for bringing it up.
Glad you like it.
Martin

        Glad you are trying the program.

[Kent McClelland 2013.09.04.1505 EDT]

Martin Taylor 2013.09.01.16.50

Hi Martin,

                Thanks for posting your tracking experiment

software. I’ve been trying out the Mac version, and
it’s pretty slick. The only glitches I’ve seen so
far are occasional appearances of a small
round-edged white box surrounding the pointer for my
mouse, and then sometimes when the box shows up the
program doesn’t seem to work properly.

                I

like the fact that your program collects the data
for each run in graphical form and as an Excel file.
That’s very convenient.

                As

I was trying it out, I had some questions about it:

                Could you tell us more about the diagnostics that

you’re graphing at the end of each run? What do you
learn from looking at dwell times? And from looking
at the Fourier analyses of error and disturbance?

                What is the control ratio a ratio of? How does it

relate to rms error?

                Why

have you programmed the tracker to provide different
vertical separations between the cursor and the
target?

                What's a Perlin disturbance? (That one didn't seem

to work for me.)

                In

the Excel files for the data, I see columns for
quantities relating to a Vmodel and an Amodel, as
well as gain, leak, lag, and tolerance, but the
files don’t appear to contain the formulas needed
for computing those quantities.

                Do

you have, could you distribute, a file that contains
the necessary formulas? And if so, can you tell us
more about the definition of the Vmodel and Amodel
and what they show?

                Thanks again for sharing all this interesting work

with us.

Martin,
I installed the Processing system.
Now what?
David

···

From: Martin Taylor mmt-csg@MMTAYLOR.NET
To: CSGNET@LISTSERV.ILLINOIS.EDU
Sent: Thursday, September 5, 2013 9:48 AM
Subject: Re: A Flexible tracking program

David,

I know almost nothing about PCs. I just exported the program as the

Processing system instructs, as a Mac binary, a PC binary, and a
Linux binary, zipped them all together, and made the package
available. I assumed that interested people would just extract their
own kind of binary and do whatever they do to install programs.

If the PC binary doesn't work, all I can suggest is that you get the

free Processing programming environment and use the source that is
included with each of the binaries. Then it should work on every
platform, not just those three.

Sorry I can't be of more help.

Martin

  On 2013/09/5 9:17 AM, D Goldstein wrote:

Martin,

    I am having trouble getting the program to tun on my Windows

7 PC.

Can you give some instructions for installing it?

Thanks,

David Goldstein

    Sent from my iPhone
    On Sep 4, 2013, at 5:54 PM, Martin Taylor <mmt-csg@MMTAYLOR.NET        > > wrote:

Kent,

        Glad you are trying the program.

[Kent McClelland 2013.09.04.1505 EDT]

Martin Taylor 2013.09.01.16.50

Hi Martin,

                Thanks for posting your tracking experiment

software. I’ve been trying out the Mac version, and
it’s pretty slick. The only glitches I’ve seen so
far are occasional appearances of a small
round-edged white box surrounding the pointer for my
mouse, and then sometimes when the box shows up the
program doesn’t seem to work properly.

      The box is a warning that the mouse is going out of range and

might leave the window. When the mouse it outside the window,
the program doesn’t detect it.

                I

like the fact that your program collects the data
for each run in graphical form and as an Excel file.
That’s very convenient.

                As

I was trying it out, I had some questions about it:

                Could you tell us more about the diagnostics that

you’re graphing at the end of each run? What do you
learn from looking at dwell times? And from looking
at the Fourier analyses of error and disturbance?

      I don't know how much one can learn from these graphs. The

idea is to look at what happens when the transport lags get
long. One possibility that I mentioned on CSGnet is that the
user might wait to see the effect of a move of the mouse
before moving again, in which case there should be more long
dwell times for longer transport lags. The Fourier also is
related to longer transport lags, as I found that I would go
into an oscillatory mode. I want to see how the frequency of
these oscillations is affected by different factors such as
output gain, prediction gain, and transport lag. But I haven’t
done the modelling yet, so I don’t know whether there will be
anything to see.

                What is the control ratio a ratio of? How does it

relate to rms error?

      Control ratio is RMS(disturbance)/RMS(error).
                Why

have you programmed the tracker to provide different
vertical separations between the cursor and the
target?

      Part of the reason for doing the program at all was to see how

the ability to discriminate the horizontal offset between
cursor and target affected the tracking. Rick showed that the
off-vertical angle might be what was controlled rather than
the horizontal offset. I’ve been trying to figure out some way
to discriminate between these possibilities, and it might be
possible to do it using the time-varying separation. Rick
thinks he has shown a discrimination in favour of the angle
control. Intuitively it seems right to me that the angle is
what I am controlling when I do it, but I do not think Rick
has demonstrated that it is. However, he says that his paper
has been accepted, so apparently referees agree with him. One
day maybe we will find a way to make the discrimination that I
consider legitimate.

                What's a Perlin disturbance? (That one didn't seem

to work for me.)

      It actually is the way Processing makes noise when you call

the “noise” function. I had to look it up on the Web.
Apparently its used a lot to make artificial textures in
movies, and stuff like that. The background theory is
complicated, so I don’t try to understand it. But it has
always worked for me. Under what conditions does it not work
for you? …Oops, on testing it just now, I found it didn’t
work with Difficulty 1. The cursor wet to the left edge of the
window and stayed there. I can’t see why in the code, but I
fixed it by making all the Perlin noises more difficult –
which needed to be done anyway, to make the Perlin
difficulties more similar to the difficulties for the other
kinds of noise. (If you are using the Processing source, you
can make my fix by going to line 140 of the vNoise source and
changing .0002 to .0005.) There must be some kind of a
threshold in the Perlin code, which is in the Processing core
not accessible to me.

                In

the Excel files for the data, I see columns for
quantities relating to a Vmodel and an Amodel, as
well as gain, leak, lag, and tolerance, but the
files don’t appear to contain the formulas needed
for computing those quantities.

      Sorry. There's a lot of left-over crud in the header lines of

the Excel files. It is left over from an early version of the
program that included an optimizing phase that I was never
sure worked properly. Ignore them for now. I’ll remove them or
make them valid in an update. As it stands, the only useful
things in the Excel file are the data columns:

      column A: target

      B: cursor

      C: human error

      D: vertical separation of cursor and target (interesting only

when you use one of the variable separation choices)

      E: deviation from vertical of angle between cursor and target

in milliradians.

      F: Whether the element influenced by the disturbance (target

for pursuit, cursor for compensatory) is (1) visible or moving
or (0) invisible or static.

                Do

you have, could you distribute, a file that contains
the necessary formulas? And if so, can you tell us
more about the definition of the Vmodel and Amodel
and what they show?

      They refer to models in which the offset or the angle is

controlled. If they existed (which at the moment they don’t)
they would show model errors and the like. I hope that they
might come to mean something in a future update.

      I'm going to have to rewrite what is shown in the headers,

because they don’t say anything about the menu choices that
didn’t exist when I originally described them, and they do
talk about things that are not there now. Sorry about that,
and thanks for bringing it up.

                Thanks again for sharing all this interesting work

with us.

Glad you like it.

      Martin

Thanks for the clarifications, Martin. I’ve been looking at some other examples from the Processing software. It looks like you can really do a lot with the software if you’re willing to sink the time into it.

Kent

···

Glad you are trying the program.

[Kent McClelland 2013.09.04.1505 EDT]

Martin Taylor 2013.09.01.16.50

Hi Martin,

Thanks for posting your tracking experiment software. I’ve been trying out the Mac version, and it’s pretty slick. The only glitches I’ve seen so far are occasional appearances of a small round-edged white box surrounding the pointer for my mouse, and then
sometimes when the box shows up the program doesn’t seem to work properly.

I like the fact that your program collects the data for each run in graphical form and as an Excel file. That’s very convenient.

As I was trying it out, I had some questions about it:

Could you tell us more about the diagnostics that you’re graphing at the end of each run? What do you learn from looking at dwell times? And from looking at the Fourier analyses of error and disturbance?

What is the control ratio a ratio of? How does it relate to rms error?

Why have you programmed the tracker to provide different vertical separations between the cursor and the target?

What’s a Perlin disturbance? (That one didn’t seem to work for me.)

In the Excel files for the data, I see columns for quantities relating to a Vmodel and an Amodel, as well as gain, leak, lag, and tolerance, but the files don’t appear to contain the formulas needed for computing those quantities.

Do you have, could you distribute, a file that contains the necessary formulas? And if so, can you tell us more about the definition of the Vmodel and Amodel and what they show?

Thanks again for sharing all this interesting work with us.

David,

You found the source code in the PC version (or any other version)

of the zipped package, so all you do is double-click the
FlexibleTracker_b1.pde file (or the PC equivalent – double-click is
what you do to open a program on the Mac). Alternatively, you can
start Processing and “Open” the same file.

When you have done this, you will see a window with three tabs (at

least, you do on a Mac), but don’t worry about them. Just click on
the “Go” triangle at the top. You can abort the whole thing with the
“Stop” square. Both triangle and square have the same functions as
they do on a video clip.

I think that's all.

Martin
···

On 2013/09/5 11:07 AM, D GOLDSTEIN
wrote:

Martin,

    I installed the Processing system.

    Now what?

    David

From: Martin
Taylor Thursday, September 5, 2013 9:48 AM
Re: A Flexible tracking program

David,

              I know almost nothing about PCs. I just exported the

program as the Processing system instructs, as a Mac
binary, a PC binary, and a Linux binary, zipped them
all together, and made the package available. I
assumed that interested people would just extract
their own kind of binary and do whatever they do to
install programs.

              If the PC binary doesn't work, all I can suggest is

that you get the free Processing programming
environment and use the source that is included with
each of the binaries. Then it should work on every
platform, not just those three.

              Sorry I can't be of more help.



              Martin


                On 2013/09/5

9:17 AM, D Goldstein wrote:

Martin,

                  I am having trouble getting the program to tun

on my Windows 7 PC.

                  Can you give some instructions for installing

it?

Thanks,

David Goldstein

                  Sent from my iPhone
                  On Sep 4, 2013, at 5:54 PM, Martin Taylor <mmt-csg@MMTAYLOR.NET
                  >

wrote:

Kent,

                      Glad you are trying the program.

[Kent McClelland 2013.09.04.1505 EDT]

Martin Taylor 2013.09.01.16.50

Hi Martin,

                              Thanks for posting your tracking

experiment software. I’ve been trying
out the Mac version, and it’s pretty
slick. The only glitches I’ve seen so
far are occasional appearances of a
small round-edged white box
surrounding the pointer for my mouse,
and then sometimes when the box shows
up the program doesn’t seem to work
properly.

                    The box is a warning that the mouse is going out

of range and might leave the window. When the
mouse it outside the window, the program doesn’t
detect it.

                              I like the fact that your program

collects the data for each run in
graphical form and as an Excel file.
That’s very convenient.

                              As I was trying it out, I had some

questions about it:

                              Could you tell us more about the

diagnostics that you’re graphing at
the end of each run? What do you learn
from looking at dwell times? And from
looking at the Fourier analyses of
error and disturbance?

                    I don't know how much one can learn from these

graphs. The idea is to look at what happens when
the transport lags get long. One possibility
that I mentioned on CSGnet is that the user
might wait to see the effect of a move of the
mouse before moving again, in which case there
should be more long dwell times for longer
transport lags. The Fourier also is related to
longer transport lags, as I found that I would
go into an oscillatory mode. I want to see how
the frequency of these oscillations is affected
by different factors such as output gain,
prediction gain, and transport lag. But I
haven’t done the modelling yet, so I don’t know
whether there will be anything to see.

                              What is the control ratio a ratio

of? How does it relate to rms error?

                    Control ratio is RMS(disturbance)/RMS(error).
                              Why have you programmed the tracker

to provide different vertical
separations between the cursor and the
target?

                    Part of the reason for doing the program at all

was to see how the ability to discriminate the
horizontal offset between cursor and target
affected the tracking. Rick showed that the
off-vertical angle might be what was controlled
rather than the horizontal offset. I’ve been
trying to figure out some way to discriminate
between these possibilities, and it might be
possible to do it using the time-varying
separation. Rick thinks he has shown a
discrimination in favour of the angle control.
Intuitively it seems right to me that the angle
is what I am controlling when I do it, but I do
not think Rick has demonstrated that it is.
However, he says that his paper has been
accepted, so apparently referees agree with him.
One day maybe we will find a way to make the
discrimination that I consider legitimate.

                              What's a Perlin disturbance? (That

one didn’t seem to work for me.)

                    It actually is the way Processing makes noise

when you call the “noise” function. I had to
look it up on the Web. Apparently its used a lot
to make artificial textures in movies, and stuff
like that. The background theory is complicated,
so I don’t try to understand it. But it has
always worked for me. Under what conditions does
it not work for you? …Oops, on testing it just
now, I found it didn’t work with Difficulty 1.
The cursor wet to the left edge of the window
and stayed there. I can’t see why in the code,
but I fixed it by making all the Perlin noises
more difficult – which needed to be done
anyway, to make the Perlin difficulties more
similar to the difficulties for the other kinds
of noise. (If you are using the Processing
source, you can make my fix by going to line 140
of the vNoise source and changing .0002 to
.0005.) There must be some kind of a threshold
in the Perlin code, which is in the Processing
core not accessible to me.

                              In the Excel files for the data, I

see columns for quantities relating to
a Vmodel and an Amodel, as well as
gain, leak, lag, and tolerance, but
the files don’t appear to contain the
formulas needed for computing those
quantities.

                    Sorry. There's a lot of left-over crud in the

header lines of the Excel files. It is left over
from an early version of the program that
included an optimizing phase that I was never
sure worked properly. Ignore them for now. I’ll
remove them or make them valid in an update. As
it stands, the only useful things in the Excel
file are the data columns:

                    column A: target

                    B: cursor

                    C: human error

                    D: vertical separation of cursor and target

(interesting only when you use one of the
variable separation choices)

                    E: deviation from vertical of angle between

cursor and target in milliradians.

                    F: Whether the element influenced by the

disturbance (target for pursuit, cursor for
compensatory) is (1) visible or moving or (0)
invisible or static.

                              Do you have, could you distribute,

a file that contains the necessary
formulas? And if so, can you tell us
more about the definition of the
Vmodel and Amodel and what they show?

                    They refer to models in which the offset or the

angle is controlled. If they existed (which at
the moment they don’t) they would show model
errors and the like. I hope that they might come
to mean something in a future update.

                    I'm going to have to rewrite what is shown in

the headers, because they don’t say anything
about the menu choices that didn’t exist when I
originally described them, and they do talk
about things that are not there now. Sorry about
that, and thanks for bringing it up.

                              Thanks again for sharing all this

interesting work with us.

Glad you like it.

                    Martin

mmt-csg@MMTAYLOR.NET
**To:**CSGNET@LISTSERV.ILLINOIS.EDU
Sent:
Subject:

Martin,

Some progress, but no prize.

I received the following error message shown in the attached pdf file.

David

error message for Martin Taylor program.pdf (24.7 KB)

···

From: Martin Taylor mmt-csg@MMTAYLOR.NET
To: CSGNET@LISTSERV.ILLINOIS.EDU
Sent: Thursday, September 5, 2013 4:25 PM
Subject: Re: A Flexible tracking program

David,

You found the source code in the PC version (or any other version)

of the zipped package, so all you do is double-click the
FlexibleTracker_b1.pde file (or the PC equivalent – double-click is
what you do to open a program on the Mac). Alternatively, you can
start Processing and “Open” the same file.

When you have done this, you will see a window with three tabs (at

least, you do on a Mac), but don’t worry about them. Just click on
the “Go” triangle at the top. You can abort the whole thing with the
“Stop” square. Both triangle and square have the same functions as
they do on a video clip.

I think that's all.

Martin

  On 2013/09/5 11:07 AM, D GOLDSTEIN wrote:

Martin,

    I installed the Processing system.

    Now what?

    David

From: Martin
Taylor mmt-csg@MMTAYLOR.NET
To:
CSGNET@LISTSERV.ILLINOIS.EDU
Sent:
Thursday, September 5, 2013 9:48 AM
Subject:
Re: A Flexible tracking program

David,

              I know almost nothing about PCs. I just exported the

program as the Processing system instructs, as a Mac
binary, a PC binary, and a Linux binary, zipped them
all together, and made the package available. I
assumed that interested people would just extract
their own kind of binary and do whatever they do to
install programs.

              If the PC binary doesn't work, all I can suggest is

that you get the free Processing programming
environment and use the source that is included with
each of the binaries. Then it should work on every
platform, not just those three.

              Sorry I can't be of more help.



              Martin


                On 2013/09/5 > 9:17 AM, D Goldstein wrote:

Martin,

                  I am having trouble getting the program to tun

on my Windows 7 PC.

                  Can you give some instructions for installing

it?

Thanks,

David Goldstein

                  Sent from my iPhone
                  On Sep 4, 2013, at 5:54 PM, Martin Taylor <mmt-csg@MMTAYLOR.NET > >                       > > > wrote:

Kent,

                      Glad you are trying the program.

[Kent McClelland 2013.09.04.1505 EDT]

Martin Taylor 2013.09.01.16.50

Hi Martin,

                              Thanks for posting your tracking

experiment software. I’ve been trying
out the Mac version, and it’s pretty
slick. The only glitches I’ve seen so
far are occasional appearances of a
small round-edged white box
surrounding the pointer for my mouse,
and then sometimes when the box shows
up the program doesn’t seem to work
properly.

                    The box is a warning that the mouse is going out

of range and might leave the window. When the
mouse it outside the window, the program doesn’t
detect it.

                              I like the fact that your program

collects the data for each run in
graphical form and as an Excel file.
That’s very convenient.

                              As I was trying it out, I had some

questions about it:

                              Could you tell us more about the

diagnostics that you’re graphing at
the end of each run? What do you learn
from looking at dwell times? And from
looking at the Fourier analyses of
error and disturbance?

                    I don't know how much one can learn from these

graphs. The idea is to look at what happens when
the transport lags get long. One possibility
that I mentioned on CSGnet is that the user
might wait to see the effect of a move of the
mouse before moving again, in which case there
should be more long dwell times for longer
transport lags. The Fourier also is related to
longer transport lags, as I found that I would
go into an oscillatory mode. I want to see how
the frequency of these oscillations is affected
by different factors such as output gain,
prediction gain, and transport lag. But I
haven’t done the modelling yet, so I don’t know
whether there will be anything to see.

                              What is the control ratio a ratio

of? How does it relate to rms error?

                    Control ratio is RMS(disturbance)/RMS(error).
                              Why have you programmed the tracker

to provide different vertical
separations between the cursor and the
target?

                    Part of the reason for doing the program at all

was to see how the ability to discriminate the
horizontal offset between cursor and target
affected the tracking. Rick showed that the
off-vertical angle might be what was controlled
rather than the horizontal offset. I’ve been
trying to figure out some way to discriminate
between these possibilities, and it might be
possible to do it using the time-varying
separation. Rick thinks he has shown a
discrimination in favour of the angle control.
Intuitively it seems right to me that the angle
is what I am controlling when I do it, but I do
not think Rick has demonstrated that it is.
However, he says that his paper has been
accepted, so apparently referees agree with him.
One day maybe we will find a way to make the
discrimination that I consider legitimate.

                              What's a Perlin disturbance? (That

one didn’t seem to work for me.)

                    It actually is the way Processing makes noise

when you call the “noise” function. I had to
look it up on the Web. Apparently its used a lot
to make artificial textures in movies, and stuff
like that. The background theory is complicated,
so I don’t try to understand it. But it has
always worked for me. Under what conditions does
it not work for you? …Oops, on testing it just
now, I found it didn’t work with Difficulty 1.
The cursor wet to the left edge of the window
and stayed there. I can’t see why in the code,
but I fixed it by making all the Perlin noises
more difficult – which needed to be done
anyway, to make the Perlin difficulties more
similar to the difficulties for the other kinds
of noise. (If you are using the Processing
source, you can make my fix by going to line 140
of the vNoise source and changing .0002 to
.0005.) There must be some kind of a threshold
in the Perlin code, which is in the Processing
core not accessible to me.

                              In the Excel files for the data, I

see columns for quantities relating to
a Vmodel and an Amodel, as well as
gain, leak, lag, and tolerance, but
the files don’t appear to contain the
formulas needed for computing those
quantities.

                    Sorry. There's a lot of left-over crud in the

header lines of the Excel files. It is left over
from an early version of the program that
included an optimizing phase that I was never
sure worked properly. Ignore them for now. I’ll
remove them or make them valid in an update. As
it stands, the only useful things in the Excel
file are the data columns:

                    column A: target

                    B: cursor

                    C: human error

                    D: vertical separation of cursor and target

(interesting only when you use one of the
variable separation choices)

                    E: deviation from vertical of angle between

cursor and target in milliradians.

                    F: Whether the element influenced by the

disturbance (target for pursuit, cursor for
compensatory) is (1) visible or moving or (0)
invisible or static.

                              Do you have, could you distribute,

a file that contains the necessary
formulas? And if so, can you tell us
more about the definition of the
Vmodel and Amodel and what they show?

                    They refer to models in which the offset or the

angle is controlled. If they existed (which at
the moment they don’t) they would show model
errors and the like. I hope that they might come
to mean something in a future update.

                    I'm going to have to rewrite what is shown in

the headers, because they don’t say anything
about the menu choices that didn’t exist when I
originally described them, and they do talk
about things that are not there now. Sorry about
that, and thanks for bringing it up.

                              Thanks again for sharing all this

interesting work with us.

Glad you like it.

                    Martin

David,

Sorry about that. I just assumed that it would package everything

required. Here are two possible ways to get that library. I don’t
know why it wasn’t zipped into the package, but I suppose we live
with that.

Way 1: When Processing is active, you have a menu (on the Mac, at

least) Sketch->Import Library->Add Library… This brings up
a dialogue box listing contributed libraries, one of which is
ControlP5. Select it, and it should install.

Way 2: Download from

.
Unzip it and put the extracted “controlP5” folder into the
“libraries” folder of your processing sketches. On the Mac the
default location for that is ~/Documents/Processing/libraries (~
means your home folder). I suppose it’s in some analogous location
on the PC.
I am working on an update to add a feature and fix a couple of bugs
and “infelicities”.
Martin

···

http://www.sojamo.de/libraries/controlP5/download/controlP5-2.0.4.zip

  On 2013/09/6 5:35 AM, D GOLDSTEIN

wrote:

Martin,

    Some progress, but no prize.



    I received the following error message shown in the attached pdf

file.

    David

From: Martin
Taylor Thursday, September 5, 2013 4:25 PM
Re: A Flexible tracking program

David,

              You found the source code in the PC version (or any

other version) of the zipped package, so all you do is
double-click the FlexibleTracker_b1.pde file (or the
PC equivalent – double-click is what you do to open a
program on the Mac). Alternatively, you can start
Processing and “Open” the same file.

              When you have done this, you will see a window with

three tabs (at least, you do on a Mac), but don’t
worry about them. Just click on the “Go” triangle at
the top. You can abort the whole thing with the “Stop”
square. Both triangle and square have the same
functions as they do on a video clip.

              I think that's all.



              Martin


                On 2013/09/5

11:07 AM, D GOLDSTEIN wrote:

Martin,

                  I installed the Processing system.

                  Now what?

                  David

                          **From:**
                          Martin Taylor <mmt-csg@MMTAYLOR.NET>
                          **To:**
                          CSGNET@LISTSERV.ILLINOIS.EDU

                          **Sent:**
                          Thursday, September 5, 2013 9:48 AM
                          **Subject:**
                          Re: A Flexible tracking program

David,

                            I know almost nothing about PCs. I just

exported the program as the Processing
system instructs, as a Mac binary, a PC
binary, and a Linux binary, zipped them
all together, and made the package
available. I assumed that interested
people would just extract their own kind
of binary and do whatever they do to
install programs.

                            If the PC binary doesn't work, all I can

suggest is that you get the free
Processing programming environment and
use the source that is included with
each of the binaries. Then it should
work on every platform, not just those
three.

                            Sorry I can't be of more help.



                            Martin


                              On

2013/09/5 9:17 AM, D Goldstein wrote:

Martin,

                                I am having trouble getting the

program to tun on my Windows 7 PC.

                                Can you give some instructions

for installing it?

Thanks,

David Goldstein

                                Sent from my iPhone
                                On Sep 4, 2013, at 5:54 PM, Martin

Taylor <mmt-csg@MMTAYLOR.NET

                                >

wrote:

Kent,

                                    Glad you are trying the program.
                                      [Kent McClelland

2013.09.04.1505 EDT]

                                      Martin Taylor

2013.09.01.16.50

Hi Martin,

                                            Thanks for posting your

tracking experiment
software. I’ve been
trying out the Mac
version, and it’s pretty
slick. The only glitches
I’ve seen so far are
occasional appearances
of a small round-edged
white box surrounding
the pointer for my
mouse, and then
sometimes when the box
shows up the program
doesn’t seem to work
properly.

                                  The box is a warning that the

mouse is going out of range and
might leave the window. When the
mouse it outside the window, the
program doesn’t detect it.

                                            I like the fact that

your program collects
the data for each run in
graphical form and as an
Excel file. That’s very
convenient.

                                            As I was trying it out,

I had some questions
about it:

                                            Could you tell us more

about the diagnostics
that you’re graphing at
the end of each run?
What do you learn from
looking at dwell times?
And from looking at the
Fourier analyses of
error and disturbance?

                                  I don't know how much one can

learn from these graphs. The idea
is to look at what happens when
the transport lags get long. One
possibility that I mentioned on
CSGnet is that the user might wait
to see the effect of a move of the
mouse before moving again, in
which case there should be more
long dwell times for longer
transport lags. The Fourier also
is related to longer transport
lags, as I found that I would go
into an oscillatory mode. I want
to see how the frequency of these
oscillations is affected by
different factors such as output
gain, prediction gain, and
transport lag. But I haven’t done
the modelling yet, so I don’t know
whether there will be anything to
see.

                                            What is the control

ratio a ratio of? How
does it relate to rms
error?

                                  Control ratio is

RMS(disturbance)/RMS(error).

                                            Why have you programmed

the tracker to provide
different vertical
separations between the
cursor and the target?

                                  Part of the reason for doing the

program at all was to see how the
ability to discriminate the
horizontal offset between cursor
and target affected the tracking.
Rick showed that the off-vertical
angle might be what was controlled
rather than the horizontal offset.
I’ve been trying to figure out
some way to discriminate between
these possibilities, and it might
be possible to do it using the
time-varying separation. Rick
thinks he has shown a
discrimination in favour of the
angle control. Intuitively it
seems right to me that the angle
is what I am controlling when I do
it, but I do not think Rick has
demonstrated that it is. However,
he says that his paper has been
accepted, so apparently referees
agree with him. One day maybe we
will find a way to make the
discrimination that I consider
legitimate.

                                            What's a Perlin

disturbance? (That one
didn’t seem to work for
me.)

                                  It actually is the way Processing

makes noise when you call the
“noise” function. I had to look it
up on the Web. Apparently its used
a lot to make artificial textures
in movies, and stuff like that.
The background theory is
complicated, so I don’t try to
understand it. But it has always
worked for me. Under what
conditions does it not work for
you? …Oops, on testing it just
now, I found it didn’t work with
Difficulty 1. The cursor wet to
the left edge of the window and
stayed there. I can’t see why in
the code, but I fixed it by making
all the Perlin noises more
difficult – which needed to be
done anyway, to make the Perlin
difficulties more similar to the
difficulties for the other kinds
of noise. (If you are using the
Processing source, you can make my
fix by going to line 140 of the
vNoise source and changing .0002
to .0005.) There must be some kind
of a threshold in the Perlin code,
which is in the Processing core
not accessible to me.

                                            In the Excel files for

the data, I see columns
for quantities relating
to a Vmodel and an
Amodel, as well as gain,
leak, lag, and
tolerance, but the files
don’t appear to contain
the formulas needed for
computing those
quantities.

                                  Sorry. There's a lot of left-over

crud in the header lines of the
Excel files. It is left over from
an early version of the program
that included an optimizing phase
that I was never sure worked
properly. Ignore them for now.
I’ll remove them or make them
valid in an update. As it stands,
the only useful things in the
Excel file are the data columns:

                                  column A: target

                                  B: cursor

                                  C: human error

                                  D: vertical separation of cursor

and target (interesting only when
you use one of the variable
separation choices)

                                  E: deviation from vertical of

angle between cursor and target in
milliradians.

                                  F: Whether the element influenced

by the disturbance (target for
pursuit, cursor for compensatory)
is (1) visible or moving or (0)
invisible or static.

                                            Do you have, could you

distribute, a file that
contains the necessary
formulas? And if so, can
you tell us more about
the definition of the
Vmodel and Amodel and
what they show?

                                  They refer to models in which the

offset or the angle is controlled.
If they existed (which at the
moment they don’t) they would show
model errors and the like. I hope
that they might come to mean
something in a future update.

                                  I'm going to have to rewrite what

is shown in the headers, because
they don’t say anything about the
menu choices that didn’t exist
when I originally described them,
and they do talk about things that
are not there now. Sorry about
that, and thanks for bringing it
up.

                                            Thanks again for sharing

all this interesting
work with us.

Glad you like it.

                                  Martin

mmt-csg@MMTAYLOR.NET
**To:**CSGNET@LISTSERV.ILLINOIS.EDU
Sent:
Subject:

Martin,
It works now.
If anyone else with a Windows PC needs help, I would be glad to provide it.
David

···

From: Martin Taylor mmt-csg@MMTAYLOR.NET
To: CSGNET@LISTSERV.ILLINOIS.EDU
Sent: Friday, September 6, 2013 10:05 AM
Subject: Re: A Flexible tracking program

David,

Sorry about that. I just assumed that it would package everything

required. Here are two possible ways to get that library. I don’t
know why it wasn’t zipped into the package, but I suppose we live
with that.

Way 1: When Processing is active, you have a menu (on the Mac, at

least) Sketch->Import Library->Add Library… This brings up
a dialogue box listing contributed libraries, one of which is
ControlP5. Select it, and it should install.

Way 2: Download from

http://www.sojamo.de/libraries/controlP5/download/controlP5-2.0.4.zip .
Unzip it and put the extracted “controlP5” folder into the
“libraries” folder of your processing sketches. On the Mac the
default location for that is ~/Documents/Processing/libraries (~
means your home folder). I suppose it’s in some analogous location
on the PC.

I am working on an update to add a feature and fix a couple of bugs

and “infelicities”.

Martin

  On 2013/09/6 5:35 AM, D GOLDSTEIN wrote:

Martin,

    Some progress, but no prize.



    I received the following error message shown in the attached pdf

file.

    David

From: Martin
Taylor mmt-csg@MMTAYLOR.NET
To:
CSGNET@LISTSERV.ILLINOIS.EDU
Sent:
Thursday, September 5, 2013 4:25 PM
Subject:
Re: A Flexible tracking program

David,

              You found the source code in the PC version (or any

other version) of the zipped package, so all you do is
double-click the FlexibleTracker_b1.pde file (or the
PC equivalent – double-click is what you do to open a
program on the Mac). Alternatively, you can start
Processing and “Open” the same file.

              When you have done this, you will see a window with

three tabs (at least, you do on a Mac), but don’t
worry about them. Just click on the “Go” triangle at
the top. You can abort the whole thing with the “Stop”
square. Both triangle and square have the same
functions as they do on a video clip.

              I think that's all.



              Martin


                On 2013/09/5 > 11:07 AM, D GOLDSTEIN wrote:

Martin,

                  I installed the Processing system.

                  Now what?

                  David

                          **From:**
                          Martin Taylor <mmt-csg@MMTAYLOR.NET>
                          **To:**
                          CSGNET@LISTSERV.ILLINOIS.EDU

                          **Sent:**
                          Thursday, September 5, 2013 9:48 AM
                          **Subject:**
                          Re: A Flexible tracking program

David,

                            I know almost nothing about PCs. I just

exported the program as the Processing
system instructs, as a Mac binary, a PC
binary, and a Linux binary, zipped them
all together, and made the package
available. I assumed that interested
people would just extract their own kind
of binary and do whatever they do to
install programs.

                            If the PC binary doesn't work, all I can

suggest is that you get the free
Processing programming environment and
use the source that is included with
each of the binaries. Then it should
work on every platform, not just those
three.

                            Sorry I can't be of more help.



                            Martin


                              On

2013/09/5 9:17 AM, D Goldstein wrote:

Martin,

                                I am having trouble getting the

program to tun on my Windows 7 PC.

                                Can you give some instructions

for installing it?

Thanks,

David Goldstein

                                Sent from my iPhone
                                On Sep 4, 2013, at 5:54 PM, Martin > > > Taylor <mmt-csg@MMTAYLOR.NET > > >  > > >                                     > > > > wrote:

Kent,

                                    Glad you are trying the program.
                                      [Kent McClelland

2013.09.04.1505 EDT]

                                      Martin Taylor

2013.09.01.16.50

Hi Martin,

                                            Thanks for posting your

tracking experiment
software. I’ve been
trying out the Mac
version, and it’s pretty
slick. The only glitches
I’ve seen so far are
occasional appearances
of a small round-edged
white box surrounding
the pointer for my
mouse, and then
sometimes when the box
shows up the program
doesn’t seem to work
properly.

                                  The box is a warning that the

mouse is going out of range and
might leave the window. When the
mouse it outside the window, the
program doesn’t detect it.

                                            I like the fact that

your program collects
the data for each run in
graphical form and as an
Excel file. That’s very
convenient.

                                            As I was trying it out,

I had some questions
about it:

                                            Could you tell us more

about the diagnostics
that you’re graphing at
the end of each run?
What do you learn from
looking at dwell times?
And from looking at the
Fourier analyses of
error and disturbance?

                                  I don't know how much one can

learn from these graphs. The idea
is to look at what happens when
the transport lags get long. One
possibility that I mentioned on
CSGnet is that the user might wait
to see the effect of a move of the
mouse before moving again, in
which case there should be more
long dwell times for longer
transport lags. The Fourier also
is related to longer transport
lags, as I found that I would go
into an oscillatory mode. I want
to see how the frequency of these
oscillations is affected by
different factors such as output
gain, prediction gain, and
transport lag. But I haven’t done
the modelling yet, so I don’t know
whether there will be anything to
see.

                                            What is the control

ratio a ratio of? How
does it relate to rms
error?

                                  Control ratio is

RMS(disturbance)/RMS(error).

                                            Why have you programmed

the tracker to provide
different vertical
separations between the
cursor and the target?

                                  Part of the reason for doing the

program at all was to see how the
ability to discriminate the
horizontal offset between cursor
and target affected the tracking.
Rick showed that the off-vertical
angle might be what was controlled
rather than the horizontal offset.
I’ve been trying to figure out
some way to discriminate between
these possibilities, and it might
be possible to do it using the
time-varying separation. Rick
thinks he has shown a
discrimination in favour of the
angle control. Intuitively it
seems right to me that the angle
is what I am controlling when I do
it, but I do not think Rick has
demonstrated that it is. However,
he says that his paper has been
accepted, so apparently referees
agree with him. One day maybe we
will find a way to make the
discrimination that I consider
legitimate.

                                            What's a Perlin

disturbance? (That one
didn’t seem to work for
me.)

                                  It actually is the way Processing

makes noise when you call the
“noise” function. I had to look it
up on the Web. Apparently its used
a lot to make artificial textures
in movies, and stuff like that.
The background theory is
complicated, so I don’t try to
understand it. But it has always
worked for me. Under what
conditions does it not work for
you? …Oops, on testing it just
now, I found it didn’t work with
Difficulty 1. The cursor wet to
the left edge of the window and
stayed there. I can’t see why in
the code, but I fixed it by making
all the Perlin noises more
difficult – which needed to be
done anyway, to make the Perlin
difficulties more similar to the
difficulties for the other kinds
of noise. (If you are using the
Processing source, you can make my
fix by going to line 140 of the
vNoise source and changing .0002
to .0005.) There must be some kind
of a threshold in the Perlin code,
which is in the Processing core
not accessible to me.

                                            In the Excel files for

the data, I see columns
for quantities relating
to a Vmodel and an
Amodel, as well as gain,
leak, lag, and
tolerance, but the files
don’t appear to contain
the formulas needed for
computing those
quantities.

                                  Sorry. There's a lot of left-over

crud in the header lines of the
Excel files. It is left over from
an early version of the program
that included an optimizing phase
that I was never sure worked
properly. Ignore them for now.
I’ll remove them or make them
valid in an update. As it stands,
the only useful things in the
Excel file are the data columns:

                                  column A: target

                                  B: cursor

                                  C: human error

                                  D: vertical separation of cursor

and target (interesting only when
you use one of the variable
separation choices)

                                  E: deviation from vertical of

angle between cursor and target in
milliradians.

                                  F: Whether the element influenced

by the disturbance (target for
pursuit, cursor for compensatory)
is (1) visible or moving or (0)
invisible or static.

                                            Do you have, could you

distribute, a file that
contains the necessary
formulas? And if so, can
you tell us more about
the definition of the
Vmodel and Amodel and
what they show?

                                  They refer to models in which the

offset or the angle is controlled.
If they existed (which at the
moment they don’t) they would show
model errors and the like. I hope
that they might come to mean
something in a future update.

                                  I'm going to have to rewrite what

is shown in the headers, because
they don’t say anything about the
menu choices that didn’t exist
when I originally described them,
and they do talk about things that
are not there now. Sorry about
that, and thanks for bringing it
up.

                                            Thanks again for sharing

all this interesting
work with us.

Glad you like it.

                                  Martin