[comp.lang.postscript] pie menus

don@brillig.umd.edu (Don Hopkins) (03/28/88)

At the end of this message is a summary of the work-in-progress talk I
gave at the Summer Usenix conference in Phoenix. It was published in
the September/October 1987 issue of ";login:". (My address and phone
number have since changed.) 

Jack Callahan and I will be presenting the paper "A Comparative
Analysis of Pie Menu Performance" (by Jack Callahan, Don Hopkins, Mark
Weiser, and Ben Shneiderman) at the CHI '88 conference, May 15-19 in
Washington D.C. The paper describes the experiment that Jack designed
and performed, comparing speed and error rate of pull down menus and
pie menus. (Pie menus won on both counts!)

At CHI '88 (the Conference on Human Factors in Computing Systems),
I'll be giving demonstrations of various types of pie menus,
implemented in object oriented PostScript under the NeWS window
system, during one of the scheduled demo sessions, and also at the
NeWS SIG on Thursday. (I'll send more info about that soon!)

One example menu I'll demonstrate is a two level font selection menu: 

The first menu has names of font families in different directions.
(Times-Roman, Courier, Helvetica, etc...) You choose a font family by
moving the cursor into the corresponding wedge and clicking. A font
style submenu pops up: 

          Times-Roman
  
           \       /
             \   /
Bold           ^           Italic
             /   \
           /       \

          Bold-Italic

(The ^ is the cursor, which starts out in the menu center.)

Each font style submenu has the same layout, so you only have to
remember two orthogonal sets of directions.

You choose one of the font styles by moving the cursor into the
corresponding wedge.  The cursor distance from the menu center
determines the font point size, so that the further out you move, the
bigger the point size you get.

As you move the cursor around the menu (browse), you see dynamic
feedback of the font, style, and point size you get by choosing that
part of the menu: You see the string "<n> point" in the wedge between
menu center and the label of the currently active slice, in the
appropriate font, style, and size.

For example, if you move to the left and up a bit, you'd see something
like: 

          Times-Roman
  
           \       /
        ^    \   /
Bold  18 point             Italic
             /   \
           /       \

          Bold-Italic

(Of course, the above image barely conveys the actual look and feel of
the menus. ASCII character graphics can hardly do justice to
interaction techniques and images expressed in object oriented
PostScript (with extensions for input, mind you!). I'll post the
source code to my latest version of class PieMenu, as well as some
useful subclasses, to NeWS-makers (aka comp.windows.news) real soon!)

	-Don

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

	     Directional Selection is Easy as Pie Menus!

			     Don Hopkins
			University of Maryland
		    Human Computer Interaction Lab
			College Park, MD 20742
			    (301) 454-1517

		    Simple Simon popped a Pie Men-
			u upon the screen;
		    With directional selection,
			all is peachy keen!

The choices of a Pie Menu are positioned in a circle around the
cursor, instead of in a linear row or column. The choice regions are
shaped like the slices of a pie.  The cursor begins in the center of
the menu, in an inactive region that makes no selection.  The target
areas are all adjacent to the cursor, but in a different directions.

Cursor direction defines the choice.  The distance from the menu
center to the cursor, because it's independent of the direction, may
serve to modify the choice.  The further away from the Pie Menu center
the cursor is, the more precise the control of the selection is, as
the Pie slice widens with distance.

With familiar menus, choices can be made without even seeing the menu,
because it's the direction, not the distance, that's important.
"Mousing ahead" with Pie Menus is very easy and reliable. Experienced
users can make selections quickly enough that it is not actually
necessary to display the menu on the screen, if the mouse clicks that
would determine the selection are already in the input queue.

The circular arrangement of Pie Menu items is quite appropriate for
certain tasks, such as inputing hours, minutes, seconds, angles, and
directions. Choices may be placed in intuitive, mnemonic directions,
with opposite choices across from each other, orthogonal pairs at
right angles, and other appropriate arrangements.

Pie menus have been implemented for uwm, a window manager for
X-Windows version 10, for the SunView window system, and for NeWS,
Sun's extensible PostScript window system.  Don Hopkins did the uwm
and NeWS implementations, and Mark Weiser did the SunView
implementation.

Jack Callahan has shown Pie Menus to be faster and more reliable than
linear menus, in a controlled experiment using subjects with little or
no mouse experience. Three types of eight-item menu task groupings
were used: Pie tasks (North, NE, East, etc...), linear tasks (First,
Second, Third, etc...), and unclassified tasks (Center, Bold, Italic,
etc...). Subjects were presented menus in both linear and Pie formats,
and told to make a certain selection from each. They were able to make
selections 15% faster, with fewer errors, for all three task
groupings, using Pie Menus. Ben Shneiderman gave advice on the design
of the experiment, and Don Hopkins implemented it in Forth and C,
on top of the X-Windows uwm.

The disadvantage of Pie Menus is that they generally take up more area
on the screen than linear menus. However, the extra area does
participate in the selection. The wedge-shaped choice regions do not
have to end at the edge of the menu window -- they may extend out to
the screen edge, so that the menu window only needs to be big enough
to hold the choice labels.

Proper handling of pop-up Pie Menus near the screen edge is important.
The menu should idealy be centered at the point where the cursor was
when the mouse button was pressed.  If the menu must be moved a
certain amount from its ideal location, so that it fits entirely on
the screen, then the cursor should be "warped" by that same amount.

Pie Menus encompass most uses of linear menus, while introducing many
more, because of their extra dimension. They can be used with various
types of input devices, such as mice, touch pads, graphics tablets,
joysticks, light pens, arrow keypads, and eye motion sensors. They
provide a practical, intuitive, efficient way of making selections
that is quick and easy to learn. And best of all, they are not
proprietary, patented, or restricted in any way, so take a look and
feel free!

References:

    Pies: Implementation, Evaluation, and Application of Circular Menus
      By Don Hopkins, Jack Callahan, and Mark Weiser
      (Paper in preparation. Draft available from authors.)

    A Comparative Analysis of Pie Menu Performance
      By Jack Callahan, Don Hopkins, Mark Weiser, and Ben Shneiderman
      (Paper in preparation. Draft available from authors.)