Prototype 1 : "Status Quo" Design

You must enable Java to see this applet.

The above design is inspired by a recent version of a popular operating system that supports icon magnification. Icons expand as the mouse pointer comes into proximity. This eases target acquisition when the pointer approaches from above or below. However, when approaching from the side, the expansion and contraction of neighbouring icons creates a significant sideways motion, shifting the target's position and making it more difficult to acquire. The effect is especially pronounced for large magnification factors.

Prototype 2: Improved Design

You must enable Java to see this applet.

This design solves the problems of the first by allowing some overlap between adjacent icons. The maximum allowed overlap can be controlled with a "Max Occlusion" parameter, to fine-tune tradeoffs between visibility and sideways motion. Furthermore, occluded icons are always expanded so that the resulting visible area is at least equal to the icon's original area, thus ensuring a lower bound on how difficult they are to acquire.

We have found that good values for "Max Occlusion" lie between 20 and 50 %.

Unfortunately, neither of these prototypes supports horizontal expansion in the motor domain. In the motor domain, the only real expansion happens vertically. To see this, click on either applet (to give it keyboard focus) and then hit the spacebar and/or '1' to toggle a set of dotted lines. The dotted lines bound a rectangle in motor space corresponding to one of the buttons. As can be seen, the mouse cursor must be within this rectangle to be over the button; hence each button really looks like a rectangle in motor space.

(Note: once an applet has keyboard focus, you can also use the 'a' and 'm' keys to move the vertical dotted lines left and right. If, for some reason, none of the keys work with the applets, try shift-clicking or ctrl-clicking to toggle the vertical dotted lines.)