This is the first in a series of articles which will simply be blog versions of sections of papers I wrote in university. I hope to follow up with some more recent information, but for the time being, at least things will be more easily Google-able than just large PDFs!

What follows is the introduction from Cocoa Pie Menu Implementation [pdf], a paper written for 05-631 Software Architectures for User Interfaces as taught by Jason Hong:

Fitts’s Law tells us that the time to target an object on a screen using a mouse or similar input device is a function of both the size of the object and the distance to do that object. The Macintosh operating system as well as its predecessors have exploited this: The main menu was placed such that the items could be selected at the absolute top edge of the screen. This gives the menu items an essentially infinite size in one direction, allowing for easy selection by a flick of the mouse in the general direction of the item. Thus, the menu item is easier to select and can be selected much faster.

Linear menu items are almost the antithesis of an exploitation of Fitts’s Law. All of the items are the same size, and they are all laid out in the same direction. The only difference selection-wise between one item and another is the exact amount of distance traveled, which comes down to item height (the smallest of the two dimensions of a linear menu item).

In a pie menu, each menu item is a slice of a circle. When the menu is brought up the cursor is at the center of the circle. Clicking in the center dismisses the menu. With this design, each menu item differs from the other by actual direction. Distance is the same to each menu, but since each pie slice is in a different direction, the user only has to move the mouse in the direction of the item. This sounds good in theory and it bears out in practice: Users can select items from pie menus faster than they can select items from linear menus.

In theory users can also learn pie menus better and faster than linear menus. It should be easier for users to proceduralize and remember a simple physical direction than an order in a uniform list.

While pie menus may have many advantages, they are not particularly common in real world applications. A lack of pie menu libraries in the most common user interface toolkits does not help. I therefore decided to implement a pie menu in Cocoa, Apple’s toolkit for Mac OS X, which I will release as a Framework (a relocatable dynamic library for Mac OS X). The goal is to eventually be able to replace the contextual menus in mainstream applications such as Safari or Mail. Third parties could also make use of the Framework in their own applications.