Abstract
Eye movements are kinematically complex. Even when only the rotational component is considered, the noncommutativity of 3D rotations makes it hard to develop good intuitive understanding of the geometric properties of eye movements and their influence on monocular and binocular vision. The use of at least three major mathematical systems for describing eye positions adds to these difficulties. Traditionally, ophthalmotropes have been used to visualize oculomotor kinematics. Here, we present a virtual ophthalmotrope that is designed to illustrate Helmholtz, Fick, and rotation vector coordinates, as well as Listing's extended law (L2), which is generalized to account for torsion with free changing vergence. The virtual ophthalmotrope shows the influence of these oculomotor patterns on retinal projection geometry.
Introduction
Movements of the eye are kinematically complex and can be described as a combination of rotations about changing rotation centers (Fry & Hill,
1962,
1963). But even when ocular mechanics are simplified to pure rotations about a headfixed rotation center, their noncommutative property makes them difficult to visualize. Eye movements are described in the literature by at least three different main oculomotor coordinate systems, namely, the Helmholtz, Fick, and rotation vector/quaternion or Listing's system, to complicate matters further. Here, we present a virtual gimbaled
model of the oculomotor system, which provides accurate visualization of the kinematics of the three major oculomotor coordinate systems and qualitative estimates of the effects of the different coordinate systems on ocular torsion.
Historically, mechanical representations of oculomotor mechanics, called ophthalmotropes, have been used for visualization of eye movements and their interaction with visual geometry. Simonsz and de Tonkelaar (
1990) describe the development of this device from Ruete's first version (Ruete,
1845), which had the eye mounted in nested gimbals, and his second model, which emulated Listing's law and mounted the rotation axis in a rotatable ring (Ruete,
1857), to Donders' integrated version (Donders,
1870). Ruete combined both gimbaling and a unique orientable rotation axis in a single model. The virtual ophthalmotrope presented here is a modification and extension of Donders' design, by adding Listing's extended law (L2; Mok, Ro, Cadera, Crawford, & Vilis,
1992; van Rijn & van den Berg,
1993) and displacement plane geometry to its basic visualization capabilities.
First, we will give an overview of the fundamental mathematical properties of the three oculomotor coordinate systems represented by the
model. Specific instructions will then be given to visualize important properties of oculomotor coordinates, with respect to both oculomotor behavior and the visual geometry of binocular vision.
Although this article and the
model make strong use of rotational mathematics, we did not provide rigorous mathematical descriptions in the main text to emphasize an intuitive and geometric approach. For more formal treatments of rotation mathematics relevant to eye movements, the reader is referred to Haslwanter (
1995), Haustein (
1989), and Tweed and Vilis (
1987).
Oculomotor coordinates
If we neglect translation of the eye in the orbit and dynamic changes of the rotation center of the eye with eye position, then eye movements can be described as 3D rotations around a single, headfixed center of rotation.
Euler's theorem states that any rotation in 3D space can be described by a set of three numbers (the oculomotor coordinates), but the recovery of rotation from these coordinates must be described in detail by a specific coordinate system.
Each coordinate system describes how to quantify a final orientation based on eye rotations from an initial reference position. While this reference position is mathematically arbitrary, straightahead gaze is commonly used. There are two distinct ways to describe a rotation away from that reference position: either with a series of rotations about three predefined axes or by a single unique rotation axis and an angle of rotation around it. Although these descriptions are mathematically equivalent, the resulting coordinates can be quite different in terms of their geometric meaning (e.g., what path describes a horizontal rotation), their interaction in determining gaze position (e.g., noncommutativity), and their practical usefulness for considering geometric problems related to eye movements (e.g., how they influence the orientation of the retinal image).
When describing rotations about three gimbaled axes, the nesting and exact orientation of the component rotations' axes are important. A possible source of confusion is the fact that rotations that change gaze direction horizontally are executed around a rotation axis that is oriented vertically and vice versa for vertical gaze changes. Here, we will refer to such rotations as horizontal and vertical rotations, respectively, always referring to the dominant direction of gaze movement rather than the orientation of the rotation axis.
Because rotations in 3D space are not commutative, the same rotations, when carried out in a different order, will produce different final positions. Consider the first row of
Figure 1, where the same earthfixed rotation axis and rotation angles are used, but the order of the rotations is reversed between the left and right columns, and the final position of the owl is different.
Now, consider the second row of
Figure 1, where the first rotation changes the orientation of the second rotation's axis. This operation is also noncommutative as is evident from the different end positions obtained in the left and right columns. Mathematically, when rotation axes stay fixed in space, as in the top row of
Figure 1, the rotations are called active rotations, whereas the bottom row depicts passive rotations, where the underlying coordinate system is rotated rather than the object, and thus, the orientation of both the object and the axis changes.
Changing between active and passive rotation systems is mathematically equivalent to reversing the order of the component rotations. This is why the end positions on the two diagonals of
Figure 1 are the same, although the component rotations in space are quite different—the four panels correspond to only two mathematically different ways of turning the owl around a horizontal and a vertical axis. Thus, in addition to the magnitude of the component rotations and the axis they are to be executed about, we also need to specify the order of rotations to fully determine a coordinate system.
One solution is to nest the coordinate axes, such that one rotation is carried out around a spacefixed axis that changes both the object's orientation and the orientation of the axis for the other rotation. While this superficially looks like the second row of
Figure 1, the important difference is that the nesting operates with fixed axes, rather than a fixed order of execution. Such coordinate systems are called gimbaled coordinate systems because they can be represented by a physical nesting of the three rotation axes required to express a full 3D rotation. There are an infinite number of possible coordinate systems, but for easy intuition, we want a horizontal and a vertical axis, which leaves an orthogonal axis along the eye's line of sight in straight gaze as an obvious third choice. This degree of freedom is called ocular torsion. This axis is always last in the gimbal order; hence, both horizontal and vertical rotations change the third axis' orientation, thus ensuring that torsional rotations are always around the line of sight. As we will see later, this is not true for rotation vector systems, where changes in the torsion coordinate will also change gaze direction. This makes eye orientation a much harder concept to grasp in such systems.
These two restrictions of axis orientation and ordering leave only two possible coordinate systems, distinguished by the order of horizontal and vertical rotations. There is one where horizontal rotations about a headfixed vertical axis change the axis for vertical rotations and a second one where vertical rotations about a headfixed horizontal axis change the axis for horizontal rotations. The coordinates in the first system are called Fick coordinates, and the coordinates in the second system are called Helmholtz coordinates.
Gimbaling does not prescribe the temporal order of rotations. Rather, it fixes their nesting order. This means that in a gimbal setup, where the horizontal rotation affects the axis for vertical rotations, the vertical angle may be set first, but the gimbaling will make sure that the subsequent horizontal rotation will appropriately change the orientation of the vertical axis and the rotation already applied around it. This means that in a gimbaled system, the component coordinate changes can be broken up and mixed so that a horizontal coordinate change of 10°, followed by a vertical change of 15° (H10, V15), produces the same end state as do V5, H10, V10 and V10, H10, V5.
It is worth pointing out that this property does not arise because the noncommutativity of rotations has been circumvented or rendered unproblematic in gimbaled coordinate systems. The coordinates of gimbaled systems no longer correspond to set component rotations—in a Helmholtz system, for example, the horizontal coordinate codes different rotations depending on the vertical coordinate—and while these components commute, they no longer capture the full geometry of rotations. Gimbaled coordinate systems, for example, by necessity contain poles, where the coordinate components become ambiguous. These poles are an artifact of gimbaling and do not reflect a property of rotations themselves.
Gimbaled systems: Fick and Helmholtz coordinates
Fick coordinates are what we intuitively use when describing the direction of a target in 3D space. The horizontal and vertical components of direction are called azimuth and elevation. Horizontal (azimuth) rotations point the eye toward an imaginary vertical column passing through the target, and vertical (elevation) rotations direct gaze upward along that column around an eyefixed rotation axis. Presumably because we tend to orient toward remote targets by rotating either our body in space or our head on the trunk horizontally about an earth vertical axis, and then upward about an axis orthogonal to the azimuth direction, the Fick system is the easiest oculomotor system for visualizing monocular gaze direction.
Reversing the role of the horizontal and vertical axes moves us from Fick to Helmholtz coordinates. As mentioned above, in a Helmholtz coordinate system, the axis for horizontal rotations tilts with vertical rotations. Because the eyes are separated horizontally, this means that both eyes share the same headfixed axis for vertical rotations in the Helmholtz system. This, in turn, gives a special geometric meaning to zero vertical vergence—which, in Helmholtz coordinates, indicates that the lines of sight meet in a real target in space—and to zero torsion—which, in Helmholtz coordinates, represents torsional rotations of the eye relative to the visual plane. This makes Helmholtz coordinates uniquely suited for evaluating the effect of eye movements on alignment of retinal images and binocular corresponding points. All of these properties will be demonstrated below by the web
model of the ophthalmotrope.
Rotation vectors and quaternions: Listing's coordinates
The Helmholtz and Fick coordinate systems describe rotations by breaking them up into component rotations about predefined axes. However, we can also define any rotation in 3D space by the spatial orientation of a single, unique axis and the rotation angle around that axis. A simple way of doing that is to define a vector, called a rotation vector, that points in the direction of the rotation axis. The vector is oriented such that the rotation obeys the righthand rule; that is, the direction of rotation is in the direction of the curled fingers of the right hand when the thumb points toward the tip of the vector. The length of this vector is the tangent of half the rotation angle.
Any eye position
P then can be represented by such a unique rotation vector, representing the rotation from some reference position to
P. Commonly, the reference position is the straightahead direction. A rotation vector with a nonzero component along only one of the coordinate axes then represents a rotation around this axis. For this reason, the components of rotation vectors are often called the horizontal, vertical, and torsional component. This labeling can be misleading, however, as the geometric meaning of these components is quite hard to understand, particularly in tertiary gaze directions, especially for the torsional component. We will see some examples of this in the
Demonstrations section.
Although such a rotation vector superficially does look like a vector, which explains its popular name, it is not, in fact, a vector at all. This can be illustrated by the fact that rotations or mirror transformations do not change a rotation vector the same way they would a spatial vector.
Rotations are not commutative, whereas vector addition by definition is. Moreover, when the coordinate system for representing spatial coordinates is changed, rotation vectors do not always change the same way as spatial vectors do.
Consider, for example, a rotation vector representing a horizontal rotation to the left. Because of the righthand rule, this vector points upward. Now, if we mirror transform the whole scene on the midsagittal plane, that vector should not be affected because it is lying within that plane. However, under this mirror transformation, the leftward rotation becomes a rightward rotation, flipping the rotation vector for the mirrored scene downward. A more effective mathematical treatment of rotations can be achieved using quaternions—fourdimensional entities first conceived by Sir William Rowan Hamilton in 1843. Quaternions contain a vector component that is essentially identical to a rotation vector and a scalar component that achieves their elegant transformation behavior. The main difference between the rotation vector component of a quaternion and the rotation vector describing the same rotation is that the components in the quaternion are scaled such that the total length of the vector is the sine of half the rotation angle, rather than the tangent. Quaternions provide an elegant and concise way of describing eye positions, which is mathematically superior to a simple rotation vector treatment. The interested reader is referred to Hanson (
2005) for a general introduction and to Haslwanter (
1995) and Tweed (
1997) for more oculomotorrelated treatments. For the purpose of this article and
model, however, quaternion coordinates are very similar to rotation vector coordinates and will not be treated separately.
Because Listing's law (see the next section) has a particularly simple form when expressed in rotation vectors or quaternions, the components of the rotation vector or the vector components of the associated quaternion are sometimes called Listing's coordinates.
Listing's law
It was first proposed by Donders (
1848) that the human oculomotor system uses only two of the three degrees of freedom available for 3D rotations, making the rotation angle around the line of sight (ocular torsion in Fick and Helmholtz coordinate systems) a function of gaze direction. This general restriction on ocular rotations, called Donder's law after a suggestion by Helmholtz (
1867), was made more specific by Listing, who proposed a simple geometric description that captured the functional relationship. Listing's law, as it is now commonly called, follows a suggestion by Ruete (
1853). It states that when eye position
E is described as a single rotation from a reference position
R_{1}, then the rotation axes of all such rotations
R_{1} →
E will lie within a single plane. This plane is called the displacement plane for that reference position. It is worth pointing out that Listing's law does not accurately specify human torsion for all gaze directions and distances and must be extended into L2 to consider the changes in torsion with convergence (Mok et al.,
1992; van Rijn & van den Berg,
1993).
This description unambiguously specifies Donder's law, in that for every gaze direction, there now is a unique torsional rotation angle that can be determined by executing the rotation from the reference direction. However, it only directly describes the orientation of rotation axes for rotations away from that reference position. To find the rotation axis leading to an eccentric position
E starting from a different reference position
R _{2}, we can use the original displacement plane for position
R _{1}. To get from
R _{2} to
E, two rotations within this plane must be executed in sequence: first, the inverse of
R _{1} →
R _{2}, followed by
R _{1} →
E. Mathematical analysis reveals that all these combined rotations
R _{2} →
E are again located in a single plane—the displacement plane for
R _{2}. This new displacement plane can be obtained from the displacement plane for position
R _{1} by rotating it in the direction of
R _{1} →
R _{2} and by half the angle of that rotation (Tweed,
1997; see the
1; also see Judge,
2006).
This systematic change in the angle between the displacement planes and their respective reference position, known as the halfangle rule, means that there is one unique reference position P, for which the displacement plane is orthogonal to P. This reference position is called primary position, and its displacement plane is called Listing's plane.
Listing's law can then be reformulated in terms of Listing's plane, such that any eye position can be reached by rotating away from primary position by rotation around a single axis orthogonal to that primary position. Thus, when eye rotations follow Listing's law, the specification of the primary position fully captures oculomotor behavior.
The binocular extension of Listing's law: L2
Allen (
1954) found that Listing's law does not hold during vertical or horizontal vergence. In the 1990s, several groups studied the quantitative effects of vergence on rotational kinematics and found that while rotation axes of monocular eye movements are still confined to a plane when vergence is held constant, a change in vergence changes the orientation of these planes (Mok et al.,
1992; van Rijn & van den Berg,
1993). When the eyes are converged by an angle
ν, the two eyes' reference positions and Listing's planes rotate outward by a fraction of the vergence angle,
μν, in a pattern that has been likened to the opening of saloon doors (Tweed,
1997). This has been called L2 to indicate that it is a binocular version of the monocular Listing's law, which it contains as a special case for
μ = 0. The various studies did not agree on the empirical value of
μ. It has been argued that L2 benefits the oculomotor system during vertical movements by maintaining vertical and torsional alignment of the retinal images located within the visual plane (Misslisch, Tweed, & Hess,
2001; Schreiber, Crawford, Fetter, & Tweed,
2001; Schreiber, Tweed, & Schor,
2006; Tweed,
1997). The theoretical optimum for achieving alignment would be an L2 with
μ = 0.5; that is, each eye's Listing's plane and primary position rotate temporally by half the total vergence angle. Note that because of the halfangle rule, this is equivalent to the displacement planes for straight ahead rotating temporally by a quarter of the total horizontal vergence.
We will explore the visual consequences of the theoretically optimal L2 in the
Demonstrations section.
Basic functions
VRML environment
The Ophthalmotrope software was written in Virtual Reality Markup Language (VRML) and needs to be displayed in a VRML browser plugin or standalone viewer.
The
VRML viewer will provide the user with a set of navigation modes allowing for rotation of objects and movement of the user. The plugin also makes accessible a series of viewpoints in predefined positions. If the user ever gets lost while navigating or the
model's navigation controls get obscured by a nearby object, it is always possible to return to the initial view by selecting the viewpoint labeled
up close. Most of these options will be accessible either through a viewer control panel or through a context menu accessible through right mouse click. Readers should refer to their viewer's documentation for more information.
Rotation axes
Figure 2 shows the main elements of the
model and the controls used to execute its functions. The eyes are mounted in a gimbal with five main axes of rotation (
Figure 2, Elements 1–4) and one auxiliary axis (
Figure 2, Element 2). With the exception of the auxiliary axis, which is used for emulating rotation vector coordinates and changes in reference and primary position for Listing's law (see below), all axes can be individually controlled by selecting the “free” motor coordinate system, which brings up a set of sliders color coded to match the axis colors (
Figure 3). The individual axes are as follows:

Cyan. This axis produces torsional rotations around the line of sight. It is also used internally to compensate for changes in position of the yellow rider when switching between Helmholtz and Fick coordinate systems and orienting the green axis for rotation vector systems.

Green. This produces horizontal rotations for Helmholtz coordinates and vertical rotations for Fick coordinates. In all rotationvectorbased systems, the ocular rotation is executed around this axis.

Red. Rotates around the red axis. This produces vertical rotations for Helmholtz coordinates and horizontal rotations for Fick coordinates and allows green rotation axis to tilt out of Listing's plane in the torsional direction for rotation vector coordinates.

Yellow. Moves the yellow slider in the grooved half circle (see inset at top left of
Figure 2). A 90° rotation around this axis switches between Fick and Helmholtz coordinates by reorienting the red and green axes (the torsional effects of this are cancelled by a counterrotation of the cyan axis). The yellow axis is also used for the rotation vector systems to orient the green axis.

Blue. This axis produces a rotation of the whole gimbal setup around a vertical axis. This is used for changes in the reference position for Listing's law (see the
Listing's law and L2 section).
Function buttons
The control button section on the left side of the screen is split into three panels.
The top panel of buttons (
Figure 2, Element 5) allows the selection of different oculomotor coordinate systems for moving the eyes. The four possible systems are gimbaling according to Fick (Fi) and Helmholtz (HH) coordinates, Listing's law (LL), and L2. The fifth setting allows directly accessing the individual rotation axes' angles and is called free control (Fr).
Eye position is changed by using the conjugate/version sliders (
Figure 2, Element 6), labeled c, and the disconjugate/vergence sliders, labeled d, for each of the three dimensions. The yellow button above each slider resets the slider below to zero.
The gaze mode selector (
Figure 2, Element 7), located to the right of the version and vergence sliders, enables switching between the
gazefixed (“gf”) and
gazevariable (“gv”) setting. In the gazefixed setting, the sliders prescribe the same gaze configuration for all coordinate systems. Selecting different coordinate systems changes the arrangement of the rotation axes and the actual rotations used to achieve the final gaze position, but for all coordinate systems, actual gaze direction is coded by the sliders in Helmholtz coordinates. Torsion in the gazefixed setting is always around the line of sight, with zero torsion representing the zero torsion of the selected coordinate system.
Conversely, in the gazevariable setting, the sliders actually code the coordinate components of the selected coordinate system. In this setting, changing between coordinate systems thus affects the direction of gaze as well as the configuration of the rotation axes. Torsion in the gazevariable setting is the torsion prescribed by the selected coordinate system and, thus, not necessarily a rotation around the line of sight.
From here on, whenever the instructions require the pressing of one of the function buttons, the button label will be referred to in brackets. The functions of the three colored buttons in the second panel (
Figure 2, Element 8) are as follows:

Blue/Sc—visual scene switch. Switches between 34 cube objects located in two frontoparallel planes and a single frontoparallel plane at the distance of the far cubes. The cubes are used for guiding fixations, either by manually selecting them or automatically in movement mode (Mv), whereas the frontoparallel plane is useful for the visualization of frontoparallel projection geometry.

Red/LS—lines of sight. Toggles the lines of sight emanating from the two eyes' foveas for the cube target visual scene and the two eyes' meridional planes for the frontal plane scene.

White/Tr—transparency (two small buttons). The right of the two white buttons makes the surface of the eyeballs transparent, for easier evaluation of retinal projections. The left button removes some of the gimbal mounting and changes the axis display to emphasize the mathematical principle rather than the mechanical gimbaling.
The third panel (Element 9) contains two buttons that control the animation state of the
model. The buttons are as follows:

Green/Mv—move. This button toggles the fixation animation mode. When animation mode is active, the eyes will fixate the target cubes in a defined sequence of first horizontal and then vertical sweeps of the far cubes, followed by alternations between far and near cubes. Animation mode also works when the target cubes are not visible.

Pink/Fo—following. This button activates following mode, which will make the eyes fixate the user (within a physiological range).
When the motor coordinate system selector is set to Listing and the gaze mode is in the gazefixed setting, the reference/primary buttons become available (
Figure 2, Element 10). As explained in more detail below, these can be used to change the reference and primary directions for Listing's law and study the influence of these changes on rotation axis orientation and torsional eye position.
At the bottom left and right of the screen, the current coordinates are displayed (
Figure 2, Element 11). These coordinates are relative to the currently selected motor coordinate system, independent of the selection of gaze control. For example, when the Fick motor system is selected, the numbers displayed are always Fick coordinates, even if gaze control is on “m” and the sliders change gaze in Helmholtz coordinates.
The last, green button on the top panel, labeled “Fr” for free, allows the setting of each coordinate axis individually and independently of the other four, with the exception of the cyan/torsional axis being influenced by a change in the yellow axis, to keep the torsional reference stable in space, and the auxiliary axis, which cannot be controlled by the user at all.
Activating this button will replace the panel containing the six vergence/version sliders and associated buttons (
Figure 2, Elements 6 and 7) with 10 sliders in two sets of five (
Figure 3), one for each eye, which are color coded in correspondence with their respective rotation axes.
Viewpoints
There are 12 predefined viewpoints in the
model, which can be reached by using the functions of the VRML plugin. These viewpoints are the following:

Up close. This position is ideal for observing the action of the rotation axis and for reaching all the buttons. The targets are not visible from this position.

Front. A frontal view of both eyes and the target cubes.

Side. A side view of eyes and targets, allowing access to the buttons and sliders while showing all of the geometry.

Behind, Behind up. Symmetrical view of the target cubes and projections from behind.

Between. View from the cyclopean eye position.

Left eye. Foveal view from the left eye.

Left eye—meridian. Retinal view from the left eye's horizontal meridian.

Left eye—tertiary. Eccentric retinal view from the left eye.

Right eye. Foveal view from the right eye.

Right eye—meridian. Retinal view from the right eye's horizontal meridian.

Right eye—tertiary. Eccentric retinal view from the right eye.
Demonstrations
Gimbaled coordinates
Figure 4 shows the axis arrangement for the two gimbaled coordinate systems.
To familiarize yourself with the rotations involved, from the
up close viewpoint, select Fick or Helmholtz on the coordinate system selector (
Figure 2, Element 5) and move the fixation target manually (with the gaze mode selector in the gazefixed setting) or start the movement animation (Mv). Watch how the axes interact to achieve the final position. Note that when setting only one of the gaze coordinates to a nonzero value at a time, moving gaze along the horizontal and vertical meridians, respectively, the axes for the Fick and Helmholtz system are identical and the coordinates agree.
Special role of Helmholtz coordinates
Now, set the gaze coordinates to a tertiary position close up by moving the respective sliders to positive horizontal vergence (second slider), nonzero horizontal and vertical version (first and third sliders), and zero vertical vergence (fourth slider). In Helmholtz coordinates (HH), vertical rotations are executed about the same headfixed axis in both eyes. Horizontal rotations of the line of sight for each eye are then executed around an axis that is tilted back the same amount and in the same direction in each eye, ensuring that both eyes' lines of sight are confined to the visual plane. Unless horizontal vergence is zero (in which case the two gaze lines are parallel), the lines of sight always intersect. Conversely, when both eyes fixate a single target, their Helmholtz vertical coordinates are equal.
Difference between Fick and Helmholtz
By switching to Fick coordinates (Fi) and observing the coordinate readout, you can see the same is not true for Fick angles. Because lateral targets are closer to one eye than to the other, they have unequal Fick elevation in the two eyes.
A second way to visualize that is to switch the gaze mode to “gv” without changing the slider positions. Now, the two lines of sight no longer intersect, because in Fick coordinates, this would require nonzero vertical vergence for lateral gaze. This also demonstrates that the same coordinates (as selected on the sliders and shown in the coordinate displays) represent different gaze directions in the Helmholtz and Fick coordinate systems.
Projections onto a frontoparallel plane
A common way to visualize oculomotor coordinate systems and eye position data, in general, is by projection onto a frontoparallel plane. From the behind up viewpoint, change to the target plane view (Sc). Select Fick motor coordinates (Fi).
The horizontal and vertical lines on the frontoparallel target plane represent isoelevation and isoazimuth lines for the motor coordinate system selected. Switch the gaze mode to “gv”. Now, a change in the horizontal slider changes the horizontal coordinate for the selected coordinate system. Set all vergences to zero by pressing the yellow buttons above the sliders. Set horizontal version to its maximum positive value and vertical version to its maximum negative value. Switch on the lines of sight by pressing the red button (LS) on the control panel.
You should now see both eyes' lines of sight pointing to the top left corner of their respective frontoparallel projection line grids (see
Figure 5). Now, change the horizontal version slider to its negative maximum and note the curved path the lines of sight describe on the target plane. Change vertical version next and trace out the vertical projections. Note that it is the rotation around the headfixed axis that produces the curved frontoparallel projections.
Change the coordinate system to Helmholtz (HH) to see how that affects the frontoparallel projection grid.
This illustrates that a change in azimuth and elevation follows different geometric patterns and has a different meaning, depending on the coordinate system.
Rotation vectors
From the up close viewpoint, set the gaze mode selector to “gv” and select either Listing's (LL) or L2 coordinates (there is no difference between the two in this setting).
Now, changes in eye position are achieved by orienting the green rotation axis in space and then rotating the eye around that axis. The orientation of that axis represents the orientation of the rotation vector. To better see the axis orientation and vector length, make the eyes transparent and change to axis mode by clicking on both white buttons. You should now see a single green axis per eye and a green disc indicating the length of the rotation vector.
Return all sliders to zero. Varying horizontal version moves the rotation axis to a vertical position. Increasing the rotation angle does not change the direction of the axis. The same pattern can be observed for vertical rotations. The orientations of the rotation axes for pure horizontal and vertical movements in rotation vector coordinates coincide with those in the Helmholtz and Fick systems, but the amount of rotation does not scale identically.
Now, move the eyes to a tertiary position and change either the horizontal or the vertical coordinate. Note how the rotation vector changes its orientation as well as its length.
With gaze in a tertiary direction, change to the free motor system (Fr). You can now change the rotation angle around the current rotation axis by moving the green slider. Reset the green axis to zero to get back to reference position.
Coordinate scaling
For rotation vector coordinates, the coordinate display shows the values of the rotation vector components, multiplied by a factor of 100 for easier comparison to the angles for Fick and Helmholtz systems. The sliders change these components linearly and have been scaled such that for half the maximal slider setting, the rotation angle for a rotation around a single axis is the same for the gimbaled coordinate systems and the rotation vector systems.
For other values, because the total length of the rotation vector is the tangent of the half angle of rotation, the relationship between rotation vector coordinates and gimbaled coordinates is nonlinear. As you can see, by switching between the motor coordinate systems with gaze mode selector in the “gv” setting, this difference between the systems is small but noticeable.
Although every component of a rotation vector represents one of the elementary rotations, around one of the primary Euclidean coordinate axes, changes in one of these coordinates are generally not rotations about this axis. Changing the horizontal component of a rotation vector does not rotate the eye position represented by that vector around a vertical axis.
In other words, there is no simple geometric meaning to changes in a rotation vector coordinate. The direction of rotation corresponding to a change in a single coordinate of a rotation vector depends on all three components of that vector. To get an intuition for the complexities involved, change the viewpoint to behind up, switch on the lines of sight, and change to target plane view. Now, change the three version sliders and observe how each affects the frontoparallel projection of the lines of sight. Observe that adding torsion affects gaze direction only to a small degree but profoundly changes the direction of subsequent horizontal and vertical coordinate changes.
Listing's law and L2
Return the gaze mode to setting “gf”. In this configuration, the eyes obey Listing's law; that is, the rotation vectors' tips are confined to Listing's plane, which is orthogonal to the straightahead position. Activate animation mode to observe how the rotation vectors change with gaze change.
Now, switch to the L2 motor system. As mentioned above, Listing's plane and primary position rotate temporally by half the vergence angle for optimal L2. This has been implemented in this
model by rotating the base of each eye's gimbal post. The rotation axes now are confined to a different Listing's plane for each eye and vergence state.
Effects of change of reference position
Return to the Listing motor system (LL). When gaze mode is in the “gf” position, a group of additional buttons (
Figure 2, Element 10) becomes available, which allows changing of the reference and primary positions for the implementation of Listing's law.
First, move the eyes to a purely horizontal position. Click on the middle small green button of Element 10. This changes the horizontal direction of the reference position to the current position. Activate this setting by clicking on the larger green button at the bottom of Element 10. The bases of the gimbal posts now reflect your new reference position. You can change back and forth between the original reference position of straight ahead and your new reference using the large button.
Now, move the eyes to a tertiary position and note the change in rotation axis orientation when switching between reference positions. Also note that the final eye position does not change at all—the kinematics are unchanged, with the eyes still following standard Listing's law. The only difference is the changed origin of the rotation vector coordinate system. Switching to free mode (Fr), you can change the green slider to return the eye to its reference position. Do this for the manual reference position and for the standard reference position to appreciate how an identical final position can be reached from different references.
Now, switch to animation mode (Mv) with the new reference position active. Watching closely, you can see the rotation vector, represented by the green axis, move in a plane different not only from the frontoparallel plane but also from the plane of the gimbal post. This is the displacement plane for the new reference position, and because of the halfangle rule, it is tilted halfway between the frontoparallel Listing's plane and the plane orthogonal to the new reference position.
Effects of change of primary position
Using the third button of Element 10, you can also change primary position, while leaving the reference position straight ahead. To do this, move the eyes to the desired reference and press the top button of Element 10. Once again, you can switch between the standard motor program, where both reference and primary position are straight ahead, and the modified program. Because of the halfangle rule, the displacement plane for the unchanged reference at straight ahead is tilted halfway between the old Listing's plane and the new one specified by the new primary position. Switch to animation mode (Mv) to follow the rotation vector moving in this new displacement plane for rotations away from the reference position.
In static tertiary positions, switch between the old and new primary position to see the torsional state of the eye change due to the change in Listing's law.
Zero torsion in different coordinate systems
When the gaze mode selector is in the “gf” setting, the fixation target is specified in Helmholtz coordinates and, thus, is the same irrespective of what motor system is selected. The torsional sliders then rotate the eyes around the lines of sight, which is also consistent with Helmholtz coordinates. The zero setting on the torsion sliders, however, reflects zero torsion of the selected motor coordinate system, not of Helmholtz coordinates.
By moving gaze to a tertiary position and switching between the motor systems, we can then observe the difference in the torsional origins between Helmholtz and Fick coordinates, Listing's law, and L2. All four gaze directions are identical, and the first three have zero torsion in their respective coordinate systems (the torsion component of a rotation vector conforming to L2 is zero only if the rotation vector coordinate system's reference rotates along with primary position), yet the eyes' torsional state differs considerably.
This demonstrates that zero torsion is different in the different coordinate systems. Between Fick and Helmholtz, because torsion is defined as rotation around the line of sight, this gazedependent positional offset of torsional zero is the only complication of torsional coordinates.
Torsion in rotation vectors
In rotation vectors, however, as mentioned above, a change in torsion is not a rotation around the line of sight. To see this, change the gaze mode selector to “gv” with Listing's motor coordinates selected and vary torsion. Note how a change in the torsional coordinate changes gaze as well as the orientation around the line of sight. Torsion in rotation vector coordinates is fundamentally different from Helmholtz or Fick torsion and has a gaze component.
This is true even in secondary gaze positions, as you can easily verify by resetting either horizontal or vertical gaze and changing torsion again.
Alignment of the eyes' meridians
Select the behind up viewpoint once more. Activate the target plane (Sc) and switch off the lines of sight (LS). This produces meridional planes from each eye. By clicking on the target plane, you can fixate any point on it. Select Fick motor coordinates. You will find that independent of the location of fixation—as long as torsion is held at zero—the vertical meridians are always aligned on the frontoparallel plane, whereas the horizontal meridians are tilted with respect to one another.
Switch to Helmholtz motor coordinates (HH) to see the pattern reverse. Now, the vertical meridians are tilted and the horizontal meridians align.
Switch to Listing's law (LL) and note that, here, neither of the meridians align. Neither do they for L2, but the rotation angle between them has become significantly smaller.
In terms of retinal correspondence or disparities, the misalignment of meridians reflects a predominantly vertical disparity for the horizontal meridians and a predominantly horizontal disparity for the vertical meridians. This means that physical targets can still project onto the vertical meridians when their frontoparallel projections are misaligned. These targets then will be located on a vertical line tilted away from the frontoparallel plane—the vertical horopter.
Misalignment of the horizontal meridians, on the other hand, means that no physical target can project onto both meridians.
Retinal effects of ocular torsion
Make the eyes transparent (Tr, right) and switch on the lines of sight (LS). Switch back to the target cubes if necessary (Sc). Select Fick coordinates (Fi). Go to the left eye viewpoint.
By clicking on the targets, you can direct gaze toward them. Click on the upper middle cube in the closer target plane. In this view, the red line of sight emanating from the right eye represents both the retinal projection of the visual plane and the epipolar line for the left eye's fovea. Note the angle of inclination of this line relative to the retinal meridian (represented by the horizontal bar of the pupil cross), reflecting the left eye's torsion with respect to the visual plane. Now, change to the
right eye viewpoint. The green line of sight now intersects the retinal meridian in the opposite direction. You can change back and forth between the two eyes' views by clicking on the arrows to the left of the screen in these views (
Figure 6).
Activating the animation (Mv), you can now see the angle of torsion relative to the visual plane change with gaze. Change between motor programs and observe the effect of differential torsion of the retinal projection of the visual plane.
It should be noted that this demonstration shows the effects of zero Fick and Helmholtz torsion and adherence to Listing's law and L2, respectively. Any of these eye positions can be reached in any of the coordinate systems by specifying the appropriate 3D eye coordinates.
For example, identical positions in alignment with the visual plane to those for zero Helmholtz torsion can be achieved in Fick coordinates by adding a gazedependent torsion. This torsional addition to Fick coordinates, which brings the eyes back into alignment with the visual planes, is sometimes called false torsion.
Retinal correspondence and epipolar geometry
A target projecting onto a retinal location R in one eye must be located along the projection of that location out in space. Its corresponding projection in the other eye can then be found along the projection of that line onto that retina. This line is called the epipolar line of retinal location R. An optimal algorithm searching for retinal correspondence to solve the basic problem of depth perception would restrict its search to epipolar lines, avoiding false matches in geometrically impossible retinal locations.
The lines of sight of the eyes, as seen from inside the eyes, represent the epipolar lines of foveal retinal locations. While this is not an exact identity, due to the fact that the VRML plugin does not provide the user with a projection that reflects actual retinal projection geometry, the distortions are constant and can be neglected for the sake of these qualitative arguments.
Activate the animation (Mv) and return to the left eye viewpoint. Note how the orientation of the foveal epipolar line changes in all but the Helmholtz coordinate system.
Next, deactivate the lines of sight (LS) and go to the left eye—meridian viewpoint and activate the blue lines of sight by clicking on the spherical marker. You can see the epipolar line for this retinal location slide around on the retina. This movement now happens in all the motor coordinate system settings, although it is somewhat smaller for L2 and Helmholtz coordinates.
Finally, switch off the blue projection lines and go to the left eye—tertiary position. Here, the epipolar line projects onto its corresponding location for none of the fixation positions and motor coordinate systems. Again, the L2 and Helmholtz movement patterns minimize the movement of the epipolar line.
The two possible strategies for the visual system to deal with the movement of epipolar lines are to use eye position to predict their location or give up on using them to limit stereo matching solutions, in which case the whole range of epipolar line motion would have to be searched. Experimental evidence indicates that no prediction of epipolar geometry takes place for matching (Schreiber et al.,
2001; van Ee & van Dam,
2003), and the minimization of the stereo matching search region has been suggested as the reason for the oculomotor system's use of L2 to drive the eyes (Schreiber et al.,
2001,
2006).
Spooky eyes
Finally, return to up close and click on the pink button labeled “follow”. Now, use your browser's functions to move around and feel as though someone or something is watching you. What a thrill!
Software requirements
The
model has been written in VRML 2.0 and can be viewed with any VRML viewer capable of displaying VRML 2.0. Many free viewers for noncommercial use are available; for a list, the reader is referred to the
Web3D consortium's web site. The
model has been tested with the free Blaxxun Contact Internet Explorer plugin available from
Blaxxun Technologies in version 5.3.
Supplementary Materials
Appendix A
Model mechanics
In principle, it is possible to build this
model physically. All rotations are rigid, and all configuration changes are effected through five main rotation axes and one auxiliary rotation axis.
Most of the axis operations are straightforward rotations and are independent of one another, with three exceptions.
First, a position change of the yellow rider that is used to switch between Helmholtz and Listing's systems and to orient the rotation vector axis within the frontoparallel plane also necessarily changes ocular torsion. A counterrotation around the turquoise axis is applied with every change in this slider to compensate for this and keep the eye upright with changes in the coordinate system.
Secondly, there is an auxiliary axis that is not directly accessible to the user. A rotation around the red axis can be employed to tilt the rotation vector axis out of the gimbal's main plane. This is necessary for full 3D rotation vector operation in Listing's and L2 modes when gaze mode is set to “gv” and for changes in the reference and primary positions for Listing's mode in the “gf” setting (because the displacement planes are no longer orthogonal to the reference position in these cases).
Similar to the rotation around the line of sight caused by changes in the yellow axis position, changes of the red axis cause gaze to change away from reference. An additional ring has been nested outside of the turquoise ring to cancel this. The turquoise ring and this auxiliary ring are connected through a rotation axis that is collinear with the red axis as long as no rotation around the green axis is executed. By counterrotating around this auxiliary axis with rotations in the red axis, the orientation of the green axis can then be changed away from the gimbal plane while keeping the eye stable in space.
Thirdly, for L2 mode with gaze mode selector set to “gf”, the rotation of the base of the gimbal is linked to the horizontal vergence state of the eyes in Helmholtz coordinates such that each eye's base rotates temporally by half the total vergence angle. This effects the relocation of both primary position and reference position to their new values and enables the rotation vectors to move with the changed Listing's plane.
Acknowledgments
This research was supported by NEI grants EY03532 and EY08882 and by the EmmyNoether program of the Deutsche Forschungsgemeinschaft.
We thank two anonymous reviewers for helpful comments and suggestions.
Commercial relationships: none.
Corresponding author: Kai Schreiber.
Address: School of Optometry, 360 Minor Hall, Berkeley, CA 947202020, USA.
References
Allen, M. J.
(1954). The dependence of cyclophoria on convergence, elevation and the system of axes. American Journal of Optometry and Archives of American Academy of Optometry, 31, 297–307. [
PubMed]
[CrossRef] [PubMed]
Donders, F. C.
(1848). Beiträge zur Lehre von den Bewegungen des menschlichen Auges. Holländ Beitr Anat Physiol Wiss, 1, 104–145.
Donders, F. C.
(1870). Die Bewegungen des Auges, veranschaulicht durch das Phaenophthalmotrop. Archive für Ophthalmologie, 16, 154–175.
Fry, G. A.
Hill, W. W.
(1962). The center of rotation of the eye. American Journal of Optometry and Archives of American Academy of Optometry, 39, 581–595. [
PubMed]
[CrossRef] [PubMed]
Fry, G. A.
Hill, W. W.
(1963). The mechanics of elevating the eye. American Journal of Optometry and Archives of American Academy of Optometry, 40, 707–716. [
PubMed]
[CrossRef] [PubMed]
Hanson, A. J.
(2005). Visualizing quaternions. San Francisco: Morgan Kaufmann.
Haslwanter, T.
(1995). Mathematics of threedimensional eye rotations. Vision Research, 35, 1727–1739. [
PubMed]
[CrossRef] [PubMed]
Haustein, W.
(1989). Considerations on Listing's law and the primary position by means of a matrix description of eye position control. Biological Cybernetics, 60, 411–420. [
PubMed]
[CrossRef] [PubMed]
Judge, S. J.
(2006). Reflection makes sense of rotation of the eyes. Vision Research, 46, 3862–3866. [
PubMed]
[CrossRef] [PubMed]
Misslisch, H.
Tweed, D.
Hess, B. J.
(2001). Stereopsis outweighs gravity in the control of the eyes. Journal of Neuroscience, 21, 1–5. [
PubMed] [
Article]
Mok, D.
Ro, A.
Cadera, W.
Crawford, J. D.
Vilis, T.
(1992). Rotation of Listing's plane during vergence. Vision Research, 32, 2055–2064. [
PubMed]
[CrossRef] [PubMed]
Ruete, C. G. T.
(1845). Das Ophthalmotrop, dessen Bau und Gebrauch. Göttinger Studien. Göttingen: Vandenhoeck und Ruprecht.
Ruete, C. G. T.
(1853). Lehrbuch der Ophthalmologie. Braunschweig: Vieweg.
Ruete, C. G. T.
(1857). Ein neues Ophthalmotrop, zur Erläuterung der Functionen der Muskeln und brechenden Medien des menschlichen Auges. Leipzig: Teubner.
Schreiber, K.
Crawford, J. D.
Fetter, M.
Tweed, D.
(2001). The motor side of depth vision. Nature, 410, 819–822. [
PubMed]
[CrossRef] [PubMed]
Simonsz, H. J.
den Tonkelaar, I.
(1990). 19th century mechanical models of eye movements, Donders' law, Listing's law and Helmholtz' direction circles. Documenta Ophthalmologica, 74, 95–112. [
PubMed]
[CrossRef] [PubMed]
Tweed, D.
Vilis, T.
(1987). Implications of rotational kinematics for the oculomotor system in three dimensions. Journal of Neurophysiology, 58, 832–849. [
PubMed]
[PubMed]
Tweed, D.
(1997). Visual–motor optimization in binocular control. Vision Research, 37, 1939–1951. [
PubMed]
[CrossRef] [PubMed]
van Rijn, L. J.
van den Berg, A. V.
(1993). Binocular eye orientation during fixations: Listing's law extended to include eye vergence. Vision Research, 33, 691–708. [
PubMed]
[CrossRef] [PubMed]
van Ee, R.
van Dam, L. C.
(2003). The influence of cyclovergence on unconstrained stereoscopic matching. Vision Research, 43, 307–319. [
PubMed]
[CrossRef] [PubMed]
Helmholtz, H. v.
(1867). Handbuch der physiologischen Optik. Hamburg: Voss.