I worked with Ben Shneiderman at the UMD Human Computer Interaction Lab developing pie menus, and one of the important principles of pie menus, especially in comparison to both traditional linear menus, and invisible gestures as used by the iPad and mobile apps, is that they smoothly TRAIN novice users to become experts by using "rehearsal".
Pie menus can lead, follow, or get out of the way. The way a novice uses them is actually rehearsal for how a more experienced and experts use them.
Unlike invisible gestures, they can pop up and show users the available items. They also support reselection and browsing, which gestures don't. They also utilize 100% of possible "gesture space" as meaningful predictable actions, as opposed to gesture recognition which squanders most possible gestures as syntax errors.
Unlike pull-down menus that have keyboard shortcuts, pie menu "shortcuts" are exactly the same action a novice takes to use them in the first place, only quicker, so using them in the slow way trains you to use them in the fast way. While selecting from a linear menu with the mouse is a totally different action than selecting a menu shortcut with the keyboard.
Ben Shneiderman introduces Don Hopkins' work on pie menus in Spring 1989 on a Sun Workstation, running the NeWS window system:
After an 1991 intro by Ben Shneiderman we see the older 1989 demo by Don Hopkins showing many examples of pie menus on a Sun Workstation, running the NEWS operating system.
This is work done at the Human-Computer Interaction Lab at the University of Maryland.
A pie menu is a menu technique where the items are placed along the circumference of a circle at equal radial distance from the center. Several examples are demonstrated on a Sun running NeWS window system, including the use of pie menus and gestures for window management, the simultaneous entry of 2 arguments (by using angle and distance from the center), scrollable pie menus, precision pie menus, etc. We can see that gestures were possible (with what Don call "mouse ahead" ) so you could make menu selections without even displaying the menu. Don uses an artifact he calls "mousee" so we can see what he is doing but that extra display was only used for the video, i.e. as a user you could make selections with gestures without the menu ever appearing, but the description of those more advanced features was never published.
Pretty advance for 1989... i.e. life before the Web, when mice were just starting to spread, and you could graduate from the CS department without ever even using one.
This video was published in the 1991 HCIL video but the demo itself - and recording of the video - dates back to 1989 at least, as pictures appear in the handout of the May 1989 HCIL annual Open House.
The original Pie Menu paper is Callahan, J., Hopkins, D., Weiser, M., Shneiderman, B., An empirical comparison of pie vs. linear menus;
Proc. ACM CHI '88 (Washington, DC) 95-100.
Also Sparks of Innovation in Human-Computer Interaction, Shneiderman, B., Ed., Ablex (June 1993) 79-88.
A later paper mentions some of the more advanced features in an history of the HyperTies system: Shneiderman, B., Plaisant, C., Botafogo, R., Hopkins, D., Weiland, W., Designing to facilitate browsing: a look back at the Hyperties work station browser Hypermedia, vol. 3, 2 (1991)101-117.
PS: For another fun historic video showing very early embedded graphical links (may be the 1st such link) + revealing all the links/menu items + gestures for page navigation
DonHopkins on March 19, 2016 | parent | context | favorite | on: Motion Design Is the Future of UI
User interfaces should always be able to lead, follow, or get out of the way.
Animation should never delay interaction, and it should never interfere with gestures and mouse-ahead (or whatever the input device is).
The user should never have to wait for animation to finish before they're able to do something, and the interface should never be disabled during animation, or ever ignore the user's input under any circumstances.
User input should always pre-empt and interrupt feedback and animation.
The interface should always support quick gestures (mousing ahead, touching ahead, or whatever), without ever requiring the user to pause and wait, or focus their attention on the screen to watch the animation play out before they know it's safe to make the next move.
I developed a gestural pie menu tabbed window manager for the NeWS window system in 1990, which supported mousing ahead, suppressing the pie menu display and pop-up animation until you stopped moving, showing light weight feedback on the overlay plane, and executing commands instantly without any animation or even popping up the menu, when you make a smooth quick gesture without hesitating.
Now you can press the right button to pop up a pie menu on the tab or on the frame itself. And that has commonly used commands like front and back in mnemonic directions. Back is down, and front is up.
When you make a menu selection by mousing ahead, it doesn't display the menu.
As long as you're moving, it suppresses the menu display.
And it gives you feedback on the overlay plane of the slice that you're in, and the label of that slice, so you can actually see what you're going to get before you choose it without even seeing the menu itself.
And when you wait, it pops up the menu once you stop moving.
So if you waste some time by just waiting around, it will waste a bit more time by giving you some stupid animation.
And this is meant to be negative reinforcement, to encourage you to mouse ahead.
The sub-menu pops up. This is "move to" which is unconstrained move.
You can always get that from the tab by mousing left and right.
That's an easy gesture. Just quickly...
Or mouse there and wait. There it is. It pops up the one you're at first.
This is constrained horizontal move.
And this is constrained vertical move.
So constrained horizontal... We'll wait.
Constrained vertical...
So, I mean, once you're there, and you know what you want, why wait?
This is "beam me up": put it in the next layout position. To tidy the windows.
So, if you've clicked the menu up and haven't moved, it will just spin it, because it's confused, and doesn't know what you're going to do.
----
In other words: As it pops up and scales up the round menu, it also tilts it along the axis perpendicular to the direction of movement to reinforce the selected direction, or spins around the center if you haven't moved to show no direction is selected.
And you only ever see any animation if you actually stop moving -- once you make a selection, the command always executes or the submenu always activates immediately.
You can mouse ahead smoothly through multiple levels of sub-menus, without popping any of them up or seeing any animation, as long as you never hesitate.
By "lead, follow, or get out of the way", I mean that pie menus can lead novice users by giving them feedback and animation when they pause, follow intermediate users who move in the right direction then pause for the feedback to make sure they got it right, and get out of the way of expert users who know the right direction and can quickly articulate gestures without pausing or waiting for feedback.
----
Here's another demo showing pie menus, mouse ahead gestures, and display pre-emption in SimCity:
And here's a really old demo from June 1986 of the "uwm" window manager for the X10 window system, that I hacked to support pie menus with mouse-ahead and display pre-emption.
Do you know of any work about how to combine pie menus and keyboard usage? Mousing is very uncomfortable for me, but if a pie menu could be used with a keyboard-attached joystick, it might be a really quick way to work.
Great for game controllers and keyboard use but I find them horrible for mouse use, personally. moving a bound mouse cursor around a donut is really awkward when you're using to x or y movement
Pie menus work well with trackpads and trackpoints (keyboard clitoris), as well as analog and digital 4- or 8-directional joysticks, and even numeric keypads and arrow keys.
If you arrange your menus into 4- and 8-item pie menus, they are uniformly navigable and memorable for many types of input devices including keyboards. Four and eight items are ideal for muscle memory, and also cognitive memory too. So using pie menu layouts that map directly to keyboards and digital joysticks works really well.
The ActiveX pie menus I implemented for Internet Explorer a couple decades ago supported full keyboard navigation:
Pie menus can lead, follow, or get out of the way. The way a novice uses them is actually rehearsal for how a more experienced and experts use them.
Unlike invisible gestures, they can pop up and show users the available items. They also support reselection and browsing, which gestures don't. They also utilize 100% of possible "gesture space" as meaningful predictable actions, as opposed to gesture recognition which squanders most possible gestures as syntax errors.
Gesture Space:
https://donhopkins.medium.com/gesture-space-842e3cdc7102
Unlike pull-down menus that have keyboard shortcuts, pie menu "shortcuts" are exactly the same action a novice takes to use them in the first place, only quicker, so using them in the slow way trains you to use them in the fast way. While selecting from a linear menu with the mouse is a totally different action than selecting a menu shortcut with the keyboard.
Ben Shneiderman introduces Don Hopkins' work on pie menus in Spring 1989 on a Sun Workstation, running the NeWS window system:
https://www.youtube.com/watch?v=8Fne3j7cWzg
After an 1991 intro by Ben Shneiderman we see the older 1989 demo by Don Hopkins showing many examples of pie menus on a Sun Workstation, running the NEWS operating system.
This is work done at the Human-Computer Interaction Lab at the University of Maryland.
A pie menu is a menu technique where the items are placed along the circumference of a circle at equal radial distance from the center. Several examples are demonstrated on a Sun running NeWS window system, including the use of pie menus and gestures for window management, the simultaneous entry of 2 arguments (by using angle and distance from the center), scrollable pie menus, precision pie menus, etc. We can see that gestures were possible (with what Don call "mouse ahead" ) so you could make menu selections without even displaying the menu. Don uses an artifact he calls "mousee" so we can see what he is doing but that extra display was only used for the video, i.e. as a user you could make selections with gestures without the menu ever appearing, but the description of those more advanced features was never published.
Pretty advance for 1989... i.e. life before the Web, when mice were just starting to spread, and you could graduate from the CS department without ever even using one.
This video was published in the 1991 HCIL video but the demo itself - and recording of the video - dates back to 1989 at least, as pictures appear in the handout of the May 1989 HCIL annual Open House.
The original Pie Menu paper is Callahan, J., Hopkins, D., Weiser, M., Shneiderman, B., An empirical comparison of pie vs. linear menus; Proc. ACM CHI '88 (Washington, DC) 95-100.
Also Sparks of Innovation in Human-Computer Interaction, Shneiderman, B., Ed., Ablex (June 1993) 79-88. A later paper mentions some of the more advanced features in an history of the HyperTies system: Shneiderman, B., Plaisant, C., Botafogo, R., Hopkins, D., Weiland, W., Designing to facilitate browsing: a look back at the Hyperties work station browser Hypermedia, vol. 3, 2 (1991)101-117.
PS: For another fun historic video showing very early embedded graphical links (may be the 1st such link) + revealing all the links/menu items + gestures for page navigation
• HCIL Demo - HyperTIES Browsing
https://www.youtube.com/watch?v=fZi4gUjaGAM
https://news.ycombinator.com/item?id=11319498
DonHopkins on March 19, 2016 | parent | context | favorite | on: Motion Design Is the Future of UI
User interfaces should always be able to lead, follow, or get out of the way. Animation should never delay interaction, and it should never interfere with gestures and mouse-ahead (or whatever the input device is).
The user should never have to wait for animation to finish before they're able to do something, and the interface should never be disabled during animation, or ever ignore the user's input under any circumstances.
User input should always pre-empt and interrupt feedback and animation.
The interface should always support quick gestures (mousing ahead, touching ahead, or whatever), without ever requiring the user to pause and wait, or focus their attention on the screen to watch the animation play out before they know it's safe to make the next move.
I developed a gestural pie menu tabbed window manager for the NeWS window system in 1990, which supported mousing ahead, suppressing the pie menu display and pop-up animation until you stopped moving, showing light weight feedback on the overlay plane, and executing commands instantly without any animation or even popping up the menu, when you make a smooth quick gesture without hesitating.
NeWS Tab Window Demo:
https://www.youtube.com/watch?v=tMcmQk-q0k4
https://donhopkins.com/home/movies/TabWindowDemo.mov
Transcript of the relevant part of the demo:
Now you can press the right button to pop up a pie menu on the tab or on the frame itself. And that has commonly used commands like front and back in mnemonic directions. Back is down, and front is up.
When you make a menu selection by mousing ahead, it doesn't display the menu.
As long as you're moving, it suppresses the menu display.
And it gives you feedback on the overlay plane of the slice that you're in, and the label of that slice, so you can actually see what you're going to get before you choose it without even seeing the menu itself.
And when you wait, it pops up the menu once you stop moving.
So if you waste some time by just waiting around, it will waste a bit more time by giving you some stupid animation.
And this is meant to be negative reinforcement, to encourage you to mouse ahead.
The sub-menu pops up. This is "move to" which is unconstrained move.
You can always get that from the tab by mousing left and right.
That's an easy gesture. Just quickly...
Or mouse there and wait. There it is. It pops up the one you're at first.
This is constrained horizontal move.
And this is constrained vertical move.
So constrained horizontal... We'll wait.
Constrained vertical...
So, I mean, once you're there, and you know what you want, why wait?
This is "beam me up": put it in the next layout position. To tidy the windows.
So, if you've clicked the menu up and haven't moved, it will just spin it, because it's confused, and doesn't know what you're going to do.
----
In other words: As it pops up and scales up the round menu, it also tilts it along the axis perpendicular to the direction of movement to reinforce the selected direction, or spins around the center if you haven't moved to show no direction is selected.
And you only ever see any animation if you actually stop moving -- once you make a selection, the command always executes or the submenu always activates immediately.
You can mouse ahead smoothly through multiple levels of sub-menus, without popping any of them up or seeing any animation, as long as you never hesitate.
By "lead, follow, or get out of the way", I mean that pie menus can lead novice users by giving them feedback and animation when they pause, follow intermediate users who move in the right direction then pause for the feedback to make sure they got it right, and get out of the way of expert users who know the right direction and can quickly articulate gestures without pausing or waiting for feedback.
----
Here's another demo showing pie menus, mouse ahead gestures, and display pre-emption in SimCity:
X11 SimCity Demo:
https://www.youtube.com/watch?v=Jvi98wVUmQA
----
And here's a really old demo from June 1986 of the "uwm" window manager for the X10 window system, that I hacked to support pie menus with mouse-ahead and display pre-emption.
X10 Pie Menu Window Manager:
https://www.youtube.com/watch?v=IJhvB6kwmog
---
More info here:
The Design and Implementation of Pie Menus -- Dr. Dobb's Journal, Dec. 1991:
https://donhopkins.medium.com/the-design-and-implementation-...