The Shape of PSIBER Space - October 1989

The Shape of PSIBER Space:
PostScript Interactive Bug Eradication Routines

Written by Don Hopkins, October 1989.
University of Maryland
Human-Computer Interaction Lab
Computer Science Department
College Park, Maryland 20742

[Source code]


The PSIBER Space Deck is an interactive visual user interface to a graphical programming environment, the NeWS window system. It lets you display, manipulate, and navigate the data structures, programs, and processes living in the virtual memory space of NeWS. It is useful as a debugging tool, and as a hands on way to learn about programming in PostScript and NeWS.


Cyberspace. A consensual hallucination experienced daily by billions of legitimate operators, in every nation, by children being taught mathematical concepts ... A graphic representation of data abstracted from the banks of every computer in the human system. Unthinkable complexity. Lines of light ranged in the nonspace of the mind, clusters and constellations of data. Like city lights, receding ....

Visual Programming Interface Ideas - March 1988

Notes on visual programming interface design, written by Don Hopkins on March 10, 1988.

Use buttons, menus, etc to indicate nouns and to activate verbs.

When you indicate a noun, (send it an "indicate" message) it's pushed onto the noun stack.

When you activate a verb, (send it an "activate" message) it tries to collect its arguments, if any, from the stack.

If it can get all of its arguments, then it is enabled, (sent an "enable message") and can be applied to them.

Otherwise, it blocks until all the right arguments are there, possibly prompting for them to be pushed onto the stack or indicated somehow.

Instructions for Using Pie Menus - March 1988

How to Choose with Pie Menus
English 393, Technical Writing Assignment #1
Instructions for Performing a Process
Don Hopkins
March 10, 1988

Q: What is the process?
A: The process is selecting from pie menus.

Q: Whis is the audience?
A: The audience is users of the pie menu software for the NeWS window system.

Q: Where would the document be found?
A: It would be part of the documentation that goes along with the software.


Selecting commands from menus is an easy, straightforward way to operate a computer. You can use a pointing device called a "mouse" to indicate the selection you desire, from a list of choices show on the screen. Pie menus (Figure 1) differ from traditional "linear" menus (Figure 2) in the way that their choices are laid out, and the shape of their selection target areas on the screen.

These instructions will describe how to select a choice from a pie menu, cancel a menu without making a selection, and make selections quickly and efficiently.

Pie Menu Cookbook - October 1987

A Pie Menu Cookbook
Techniques for the Design of Circular Menus
By Don Hopkins, October, 1987


Pie menus are used for making selections from items displayed on the computer screen, by pointing and clicking at the desired one with a mouse. The regions of the menu are shaped like the slices of a pie, laid out in a circle around the menu center.

The click of a mouse button invokes a menu, which pops up on the screen positioned so that the cursor is centered in the small inactive region in the menu center. The active target regions are all adjacent to the cursor, but in different directions. Pie menus are fast, because it only takes a small amount of cursor movement to point at one of the regions, and they are accurate, because the wedge shaped regions all have large areas.

The circular layout of pie menus makes them very appropriate for certain tasks. Complementary items can be placed in opposite directions, and spatially oriented items can be put in their appropriate directions. Experienced users can select from familiar pie menus without looking at the menu, and can even mouse ahead into menus faster than the computer can update the screen. When the user selects by mousing ahead into a menu, suppressing the menu display can speed up interaction considerably.

The cursor distance from the menu center can be increased to get more angular precision, for accurate directional selection. It can also be used as an argument to the selection, as a continuous analog value, or a discrete sub-selection.

Users can benefit from commonly used pie menus if they are designed to be easy to learn and use. A window management pie menu with its spatially oriented items in appropriate directions is an example of such a menu. A font selection menu using direction to select font style, and distance to select point size, is an example of how the two-dimensional aspect of pie menus can be exploited.

A user should be able to discern the function of a pie menu by looking at it. A simple, intuitive, consistent look for visually representing the meaning and function of a pie menu can help to create an easy to use user interface. Pie menus can also be designed so that they have a good kinesthetic feel to them, they do not require a lot of wasted mouse movement, and the directions are easier to select, and well matched with the input device.

NeatWindow Pie Menu Window Manager for NeWS - May 1988

I released the source code for a NeWS window manager based on pie menus, called NeatWindow (source).

Date: Wed, 11 May 88 02:31:51 EDT
Subject: class NeatWindow From: Don Hopkins <>

Here is a window class with window managment menus designed to work well with pie menus. You should of course have loaded up before running this. Just psh it into your environment, and the DefaultWindow will be set up so that the next window you get will be a NeatWindow! Fire up a clock or something, pop up the frame menu, and play around! I am not including any instructions right now, because I would like to hear what you think of it after trying to figure out what the menus do on your own. (heh heh heh -- the code is free but you gotta be a guinea pig!) This is experimental, so I'll be coming out with a more refined version later. If you'd care to answer the following questions after playing around with the NeatWindow menus, I'd really appreciate it!

- Which functions were obvious by their direction, or their labeling?

- How would you change the labels to make their meanings clearer?

- Why do you think the selections are arranged the way they are?

- What mnemonic tricks can you think of to remember the selection directions?

- After using them for a while, which selections do you find yourself mousing into without looking at the menu?



Pie Menus for NeWS 1.1 - March 1988

I release the first version of pie menus for NeWS 1.1 on March 30, 1988. Here is the source code written in NeWS's dialect of PostScript with Owen Densmore's object oriented extensions, using the "Lite" user interface toolkit.

Date: Wed, 30 Mar 88 08:02:23 EST
From: Don Hopkins <>
Subject: Pie Menus for NeWS 1.1

Here's the latest, for NeWS 1.1! You can psh it into your NeWS server, or load it from your Note that because of a problem with /flipstyle, you should load after customizing the NeWS rootmenu and its submenus. This is because flipstyle changes the submenu objects under rootmenu, but not the variables in systemdict that refer to them. The function /setdefaultmenu, defined and invoked in, sends a /flipstyle to roomenu and redefines the rootmenu in systemdict. If you want to change the menus after running, one fix for this problem is to use /searchkey in your, after running, to redefine the variables in systemdict to refer to the new submenus. Then you can send /insertitem and /deleteitem messages to terminalmenu, etc. (Otherwise you'd be changing the old submenus, and see no effect on the pie submenus.)

How Hard Can It Be to Draw a Pie Chart? - October 1987

Date: Tue, 13 Oct 87 00:49:40 EST
From: Don Hopkins <>
To: research! (Tom Duff)
Subject: Labeling pie graphs is NP hard?

Were you the one who mentioned that someone has found labeling pie graphs to be NP hard, during my pie menu talk at the Usenix Graphics Workshop? If so, or if you know about it, I'd very much appreciate a reference to this work, or a pointer to the person who did it. Thanks a lot.


Eliminating Divides During Pie Menu Tracking - September 1987

Date: Mon, 14 Sep 87 03:03:46 EST
From: Don Hopkins <>
Subject: Eliminating divides during pie menu tracking

Vaughn Pratt suggested an improvement to my quadrant-slope algorythm for pie menu tracking, which eliminates the division done every time the mouse moves during cursor tracking. You can eliminate the divide used to calculate the cursor slope, by multiplying both sides of the slope comparison by the denominator of the cursor slope. i.e. as before, do the divisions to calculate the slopes of the slice edges when laying out the menu. But when tracking the cursor, and comparing its slope with the slice edge slopes, instead of dividing to get the cursor slope, and comparing it with the slice edge slopes, you compare the numerator of the cursor slope with the denominator of the cursor slope times the slice edge slope.

I put the modification into uwm, and it works fine! I want to fix the NeWS pie menus to use this scheme, because they're using atan2 now, and they seem to feel "heavy" when things are going on. Anyway, atan2 loses if you want to have different sized wedges.


Summary of Pie Menus at Usenix Work In Progress Session - June 1987

Directional Selection is Easy as Pie Menus!

Don Hopkins
University of Maryland
Heterogeneous Systems Laboratory
College Park, MD 20742
Written August 1987

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.

Directional Selection is Easy as Pie Menus! - March 1987

Directional Selection is Easy as Pie Menus!
Don Hopkins
University of Maryland
Written March 30, 1987
Abstract for the 4th Usenix Computer Graphics Workshop.

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

Pie Menus provide a practical, intuitive, efficient way for people to interact with computers. They run circles around buttoned-down square old pull down menus, in both capability and convenience.

The choices of a Pie Menu are organized in a circle around the cursor, so that the direction of movement makes the choice, allowing the distance to be used in other ways; essentially, they have two outputs: direction and distance. Pie Menus encompass many forms of input: they can utilize various types of hardware, and their two dimensions of output can represent many types of data.

Their circular nature makes them especially well suited for spatially oriented tasks. Menu choices can be positioned in mnemonic directions, with complementary items across from each other, orthogonal pairs at right angles, and other natural arrangements. Pie Menus can make intuitively explicit the symmetry, balance, and opposition between choices.

Choices can be made from Pie Menus in quick, easily remembered strokes. When the direction of a selection in a Pie Menu is known, it can be chosen without even looking. The use of familiar Pie Menus does not require any visual attention, as the use of pull down menus demands.

Experiments comparing pull down menus and Pie Menus have shown clearly that people can choose items faster and with fewer errors from Pie Menus. They are straightforward and simple to master, and facilitate a swift, fluent, natural style of human computer interaction.

Syndicate content