I recommend that you use 3D Studio Max instead of Maya, and please put pressure on Discrete (the new name Kinetix is going by, the company who made 3D Studio Max) to support pie menus.
Alias has always been extremely overpriced. The company isn't going to be around much longer, at the rate SGI stock is tanking and they're hemoraging the last of their money and competent employees.
There's no telling what will happen to Alias or their patents, once SGI goes out of business. They've already sold off Cray Research, so I expect that Alias's days are also numbered.
If you insist of using Alias, then enjoy it while it lasts; don't make any long term plans, but do learn to use other tools in the meantime!
Basically, yes. I'm sure that anything in the marking menu patent that applies to the pie menus in The Sims is totally covered by prior art.
People I know at SGI (who have long since fled the sinking ship) tell me that their marketing department just likes to have those two magic words "patents pending" on every product announcement. So they encourage everyone to apply for at least two patents per project. It doesn't matter if they're worthless, invalid patents.
Unfortunately, when SGI finally runs out of money and Microsoft buys them up, their patent portfolio will be in Bill Gates' hands.
As the disclaimer in the forward to RISKS digest of Tom Davis's famous "Software Usability II" memo says, "This memo should not be seen as an indictment of SGI, which is hardly unique." It's a indictment of the entire software industry.
That is patently false. Please do not spread FUD, especially if you don't provide a reference. (By the way, it's Fitts' law, not Fitt's law, that explains why pie menus are fast and reliable: they have both large target size and small target distance.)
First of all, pie charts are a lot different than pie menus. Pie charts are an output technique for displaying graphs, not an input technique. Pie chart slices are different sizes according the the numerical values they represent. They have been around for a long time and are certainly not patented.
Pie menus are an input technique, not an output technique. They are not used to display a graph of numbers, so their slices are usually all the same size. A pie menu formatted like a pie chart (arbitrary slice sizes and directions) would be hard to use, because it's important to have the slices in primary directions (vertical/horizontal/diagonal) and regular sizes.
Pie menus are NOT patented. There is a lot of prior art, going back many years. Alias/SGI has been spreading FUD about patenting marking menus, and they have been misrepresenting what the patent really covers.
I believe Alias's patent is invalid, an abuse of the patent system, and that it doesn't cover pie menus. I'm very sure of that, enough to risk considerable legal trouble. If they believe it's valid, and that it covers pie menus, then they should sue me and Electronic Arts for using them in The Sims. I haven't received any notice of a patent infringement lawsuit from SGI, but I will certainly notify the community of there is one, so we can call attention to their abusive use of patents, organize a boycot of SGI hardware and Alias software, and make an example of them.
See my previous posting about implementing pie menus in dynamic html/javascript/xml. If somebody ever gets around to implementing pie menus in the web browser using Dynamic HTML/JavaScript/XML, they could look like anything you can put into a web page.
The pie menus in The Sims go a bit further than you could do in a web browser, though. Instead of using an opaque circular window, the Sims pie menus use a circular feathered real time image processing effect. It shows through to the live 3d graphics going on behind the menu, but the menu background is desatureted, darkened and lowered in contrast, so the text labels and the colorful person's head in the menu center stand out sharply against the background, but there is no sharp edge to the circular shadow effect, and you can still see what's going on behind the menu.
The problem I was trying to solve, was that I wanted to clearly separate the interface elements (the pie menus) from the virtual world (the house), because the pie menus pop up overlapping the world view, wherever you click on an object.
The pie menu has the selected person's head floating in the center, and without the shadow separating the head from the rest of the world, it would look disconcertingly like a giant head and menu labels appearing in the middle of the room among all the people and furniture.
So the desaturation, darkness and low contrast of the background made the head in the menu center and the labels pop out much better against the otherwise colorful background. The circular shadow is smoothly feathered so it does not have a distinct edge, and the menu labels overlap out over that edge, breaking the frame, yet obviously associated with the menu.
The overall effect is intended to be that the selected person is thinking about which action to perform on the selected object, their disembodied head outside of the world at another level of thought, looking up and down and all around around at the labels, trying to decide which action to do next.
There's an illustration at the end of this web page, or you can pick up a copy of The Sims anywhere that sells computer games: http://catalog.com/hopkin s/piemenus/NaturalSelection.html Right now, The Sims is only available on Windows, but I'm making a lot of progress porting it to Linux, and looking for a distributor. Please contact your favorite Linux game distributor and tell them if you would like to buy a copy of The Sims for Linux.
Oops, I assumed that by entering a blank line, I would get a paragraph break. I've gone back and reformatted this message in the next posting. Sorry! Is there a way to delete this badly formatted one, or could somebody please do that for me? I pressed "Change" and nothing happened. The page came back the same with not editing fields, alas.
First, I'd like to say that I'm really happy to see the pie menus in Gnome -- great work!!!
Unfortunately, there are a couple of stupid reasons why pie menus aren't widely used. One is technical and one is political.
The technical one has been the lack of plug-in component architectures that allows new widgets like pie menus to be integrated into new and pre-existing applications. The other is that companies like Alias/SGI are abusing the patent system to discourage their competitors from using useful techniques like pie menus.
Some of the technical problems have finally been solved for Linux and X11! Thanks a lot to everyone who contributed.
NeWS took a stab at solving of those problems a while ago. You could download piemenu.ps to the NeWS window server, and replace all the linear menus in the system with pie menus, and download pietab.ps and replace all the window frames with tabbed window frames, that let you drag the tab anywhere around the edge of the window, and pop up optimized window management pie menus.
"Bring to front" was up, "Push to back" was down, the "Stretch edge/corner" submenu had 4 corners and 4 edges in the appropriate direction, so you could mouse ahead into the pie menus very quickly once you learned them, etc. Pie menus are great for window management, since the tasks are so spatial and you use them so often, you soon learn to mouse ahead very efficiently, it saves you a lot of time, and is very reliable.
The litmus test for a pie menu window manager is that you should be able to reliably start up programs and manipulate windows, even while the window system is busy starting up, paging and thrashing virtual memory, and only slugishly responding to input events. Mouse ahead is that good! Pie menus must be very careful how they synchronize and handle input events, never dropping any mouse clicks on the floor!
All that PostScript pie menus source code I wrote is freely available, but only runs on NeWS, which would be more effort than it is worth to resurrect.
When NeWS died and I had to start use X11 on a regular basis, I hacked pie menus into one of the window managers (that I called "piewm"), so I could use them to control the windows and run programs without going crazy with frustration at linear menus. That source code is also freely available, and it probably still works ok. But the code is not very reusable or up to date, since the X11 window manager is monolithic and does not use any plug-in component framework. It would be better to start with the following code instead.
When I ported SimCity Classic to Unix in 1992, I used the TCL/Tk toolkit, and implemented a Tk pie menu widget for the game, to select between city editing tools (bulldozer, road, residential zone, etc). I distributed the source code for the TCL/Tk widget for free, but it was not widely used in other applications, because it required a programmer to integrate the C and TCL source code into another program, then recompiling and relinking. At the time, TCL/Tk did not have a dynamically loadable component framework.
Microsoft has developed OLE (aka ActiveX) to solve this problem. It allows components written in any language to be loaded dynamically at run time and integrated with any other language, and it allows programmers as well as more casual interface designers to plug components together and configure them with property sheets.
I implemented an ActiveX pie menu control, so that pie menus can be used on web pages and in other Windows applications. The source code as well as the binary is freely available. Now it is quite easy for other people to integrate ActiveX pie menus into their own applications and configure them to their liking.
I've used ActiveX pie menus as a vehicle to experiment with all kinds of different layout and interaction styles. They've got lots of property sheets to set all the various modes and attributes, and you can type in a nested submenu tree as an indented text outline.
I implemented graphical menu items, but I still want them to be animated. A while ago I started adding the ability to read and write nested pie menu specifications as xml. I wanted to add all kinds of other features, but there needed to be an easy concise way to read, write and configure them all. I finally realized that I had hit a brick wall with ActiveX, in the face of all the complexity and things I wanted to be able to do with pie menus, compared to what could be done on a web page with dynamic html.
I want each menu item to be any dynamic html object, like a movie, or a java applet, or an ActiveX control. And I want the graphics and interactive feedback to exploit the full capabilities of dynamic html, like making the point size of the label grow continuously larger as you move the cursor into the slice.
I realized that it was going to be impossible to play keep-up with the capabilities of a web browser by adding feature after feature to my little ActiveX control, and what I really needed was for pie menus to be specified in xml, and implemented inside the web browser using dynamic html on the web page itself, instead of using a shrink wrapped plug-in control that opens and draws its own windows, but can't interact with the rest of the web page.
So I have basically shelved the ActiveX pie menu, and decided to rewrite pie menus in JavaScript and dynamic html, if I ever get around to it, and if the browsers ever get around to supporting dynamic html.
In the mean time, I have been working on the political problems that have kept pie menus and other useful techniques from being widely used.
I was at the computer game developer's conference several years ago. Since I was using 3D Studio Max at work, I stopped by the Kinetix booth, and asked them for some advice integrating ActiveX pie menus into their 3D editing tool.
They told me that Alias had "marking menus" which were like pie menus, and that Kinetix's customers had been requesting that feature, but since Alias had patented marking menus, they were afraid to use pie menus or anything resembling them for fear of being sued for patent infringement.
I told them that sounded like bullshit since there was plenty of prior art, so Alias couldn't get a legitimate patent on "marking menus".
The guy from Kinetix told me that if I didn't believe him, I should walk across the aisle and ask the people at the Alias booth. So I did.
When I asked one of the Alias sales people if their "marking menus" were patented, he instantantly blurted out "of course they are!" So I showed him pie menus on my laptop, and told him that I needed to get in touch with their legal department because they had patented something that I had been working on for many years, and had used in several published products, and I didn't want them to sue me for patent infringement.
When I tried to pin him down about what exactly it was that they had patented, he started weasling and changed his story several times. He finally told me that Bill Buxton was the one who invented marking menus, that he was the one behind the patent, that he was the senior user interface researcher at SGI/Alias, and that I should talk to him.
So I called Bill Buxton at SGI/Alias, who stonewalled and claimed that there was no patent on marking menus. He said he felt insulted that I would think he would patent something that we both knew very well was covered by prior art. I told him that companies try to made illegitimate patents all the time, and that I did not mean to insult him by repeating to him the misinformation that his marketing people were spreading around the computer industry, in his name.
I tried to explain how Alias's FUD had adversely effected the user interface design of 3D Studio Max, in spite of user requests, but he did not care about 3D Studio Max, since Kinetix was his competition. I asked him whose side he was on, the users or the patent lawyers.
He claimed to be on the side of the users, since he is such a well known user interface researcher, but I believe he has totally sold out to the point of abusing the patent system for profit, and is in the thrall of SGI corporate lawyers. Users beware.
A year or so later, I ran across a marking menu patent issued to Alias, that is probably the one the Alias sales people were spreading rumors about. Now it all makes a lot more sense in perspective.
At the time I found out about it from Kinetix, Alias had just applied for the patent on marking menus. The Alias sales people had heard about it, but could not keep their mouths shut, even though there were damn well supposed to. So they repeatedly spread Fear, Uncertainty and Doubt by bragging about this PENDING patent that they really didn't know much about. The only reason I ever learned about it, was that their FUD was so successful if effected Kinetix's plans.
When it got back to Buxton that they had leaked news of the pending patent to Kinetix, which was supposed to be secret, he was furious, but certainly wouldn't tell me what was really up, so he took his anger out on me instead. He wanted to keep me in the dark, so I didn't go to the U. S. Patent Office and inform them of all the prior art that was conspicuously missing from his patent. But I'll bet he was sure proud that the leak about the patent successfully discouraged Kinetix's plans to put marking menus into 3D Studio Max. It's a textbook example of successful FUD!
Anyway, I did not let that discourage me from my long term plan of incorporating pie menus into a mainstream product (The Sims from Maxis). That is the only way that a lot of people will ever be able to see them and get used to the idea.
Now, when the users of a program like 3D Studio Max demand a feature like pie menus, companies like Kinetix will not be fooled by FUD spread by corporations like Alias/SGI. They will realize that their kids play a game that has pie menus, and they seem to work ok, so there must not be anything wrong with using them for a 3D graphics editing program.
Alias has always been extremely overpriced. The company isn't going to be around much longer, at the rate SGI stock is tanking and they're hemoraging the last of their money and competent employees.
There's no telling what will happen to Alias or their patents, once SGI goes out of business. They've already sold off Cray Research, so I expect that Alias's days are also numbered.
If you insist of using Alias, then enjoy it while it lasts; don't make any long term plans, but do learn to use other tools in the meantime!
-Don
Basically, yes. I'm sure that anything in the marking menu patent that applies to the pie menus in The Sims is totally covered by prior art.
People I know at SGI (who have long since fled the sinking ship) tell me that their marketing department just likes to have those two magic words "patents pending" on every product announcement. So they encourage everyone to apply for at least two patents per project. It doesn't matter if they're worthless, invalid patents.
Unfortunately, when SGI finally runs out of money and Microsoft buys them up, their patent portfolio will be in Bill Gates' hands.
As the disclaimer in the forward to RISKS digest of Tom Davis's famous "Software Usability II" memo says, "This memo should not be seen as an indictment of SGI, which is hardly unique." It's a indictment of the entire software industry.
-Don
First of all, pie charts are a lot different than pie menus. Pie charts are an output technique for displaying graphs, not an input technique. Pie chart slices are different sizes according the the numerical values they represent. They have been around for a long time and are certainly not patented.
Pie menus are an input technique, not an output technique. They are not used to display a graph of numbers, so their slices are usually all the same size. A pie menu formatted like a pie chart (arbitrary slice sizes and directions) would be hard to use, because it's important to have the slices in primary directions (vertical/horizontal/diagonal) and regular sizes.
Pie menus are NOT patented. There is a lot of prior art, going back many years. Alias/SGI has been spreading FUD about patenting marking menus, and they have been misrepresenting what the patent really covers.
I believe Alias's patent is invalid, an abuse of the patent system, and that it doesn't cover pie menus. I'm very sure of that, enough to risk considerable legal trouble. If they believe it's valid, and that it covers pie menus, then they should sue me and Electronic Arts for using them in The Sims. I haven't received any notice of a patent infringement lawsuit from SGI, but I will certainly notify the community of there is one, so we can call attention to their abusive use of patents, organize a boycot of SGI hardware and Alias software, and make an example of them.
-Don
The pie menus in The Sims go a bit further than you could do in a web browser, though. Instead of using an opaque circular window, the Sims pie menus use a circular feathered real time image processing effect. It shows through to the live 3d graphics going on behind the menu, but the menu background is desatureted, darkened and lowered in contrast, so the text labels and the colorful person's head in the menu center stand out sharply against the background, but there is no sharp edge to the circular shadow effect, and you can still see what's going on behind the menu.
The problem I was trying to solve, was that I wanted to clearly separate the interface elements (the pie menus) from the virtual world (the house), because the pie menus pop up overlapping the world view, wherever you click on an object.
The pie menu has the selected person's head floating in the center, and without the shadow separating the head from the rest of the world, it would look disconcertingly like a giant head and menu labels appearing in the middle of the room among all the people and furniture.
So the desaturation, darkness and low contrast of the background made the head in the menu center and the labels pop out much better against the otherwise colorful background. The circular shadow is smoothly feathered so it does not have a distinct edge, and the menu labels overlap out over that edge, breaking the frame, yet obviously associated with the menu.
The overall effect is intended to be that the selected person is thinking about which action to perform on the selected object, their disembodied head outside of the world at another level of thought, looking up and down and all around around at the labels, trying to decide which action to do next.
There's an illustration at the end of this web page, or you can pick up a copy of The Sims anywhere that sells computer games:
http://catalog.com/hopkin s/piemenus/NaturalSelection.html
Right now, The Sims is only available on Windows, but I'm making a lot of progress porting it to Linux, and looking for a distributor. Please contact your favorite Linux game distributor and tell them if you would like to buy a copy of The Sims for Linux.
-Don
Oops, I assumed that by entering a blank line, I would get a paragraph break. I've gone back and reformatted this message in the next posting. Sorry! Is there a way to delete this badly formatted one, or could somebody please do that for me? I pressed "Change" and nothing happened. The page came back the same with not editing fields, alas.
Unfortunately, there are a couple of stupid reasons why pie menus aren't widely used. One is technical and one is political.
The technical one has been the lack of plug-in component architectures that allows new widgets like pie menus to be integrated into new and pre-existing applications. The other is that companies like Alias/SGI are abusing the patent system to discourage their competitors from using useful techniques like pie menus.
Some of the technical problems have finally been solved for Linux and X11! Thanks a lot to everyone who contributed.
NeWS took a stab at solving of those problems a while ago. You could download piemenu.ps to the NeWS window server, and replace all the linear menus in the system with pie menus, and download pietab.ps and replace all the window frames with tabbed window frames, that let you drag the tab anywhere around the edge of the window, and pop up optimized window management pie menus.
"Bring to front" was up, "Push to back" was down, the "Stretch edge/corner" submenu had 4 corners and 4 edges in the appropriate direction, so you could mouse ahead into the pie menus very quickly once you learned them, etc. Pie menus are great for window management, since the tasks are so spatial and you use them so often, you soon learn to mouse ahead very efficiently, it saves you a lot of time, and is very reliable.
The litmus test for a pie menu window manager is that you should be able to reliably start up programs and manipulate windows, even while the window system is busy starting up, paging and thrashing virtual memory, and only slugishly responding to input events. Mouse ahead is that good! Pie menus must be very careful how they synchronize and handle input events, never dropping any mouse clicks on the floor!
All that PostScript pie menus source code I wrote is freely available, but only runs on NeWS, which would be more effort than it is worth to resurrect.
When NeWS died and I had to start use X11 on a regular basis, I hacked pie menus into one of the window managers (that I called "piewm"), so I could use them to control the windows and run programs without going crazy with frustration at linear menus. That source code is also freely available, and it probably still works ok. But the code is not very reusable or up to date, since the X11 window manager is monolithic and does not use any plug-in component framework. It would be better to start with the following code instead.
When I ported SimCity Classic to Unix in 1992, I used the TCL/Tk toolkit, and implemented a Tk pie menu widget for the game, to select between city editing tools (bulldozer, road, residential zone, etc). I distributed the source code for the TCL/Tk widget for free, but it was not widely used in other applications, because it required a programmer to integrate the C and TCL source code into another program, then recompiling and relinking. At the time, TCL/Tk did not have a dynamically loadable component framework.
Microsoft has developed OLE (aka ActiveX) to solve this problem. It allows components written in any language to be loaded dynamically at run time and integrated with any other language, and it allows programmers as well as more casual interface designers to plug components together and configure them with property sheets.
I implemented an ActiveX pie menu control, so that pie menus can be used on web pages and in other Windows applications. The source code as well as the binary is freely available. Now it is quite easy for other people to integrate ActiveX pie menus into their own applications and configure them to their liking.
I've used ActiveX pie menus as a vehicle to experiment with all kinds of different layout and interaction styles. They've got lots of property sheets to set all the various modes and attributes, and you can type in a nested submenu tree as an indented text outline.
I implemented graphical menu items, but I still want them to be animated. A while ago I started adding the ability to read and write nested pie menu specifications as xml. I wanted to add all kinds of other features, but there needed to be an easy concise way to read, write and configure them all. I finally realized that I had hit a brick wall with ActiveX, in the face of all the complexity and things I wanted to be able to do with pie menus, compared to what could be done on a web page with dynamic html.
I want each menu item to be any dynamic html object, like a movie, or a java applet, or an ActiveX control. And I want the graphics and interactive feedback to exploit the full capabilities of dynamic html, like making the point size of the label grow continuously larger as you move the cursor into the slice.
I realized that it was going to be impossible to play keep-up with the capabilities of a web browser by adding feature after feature to my little ActiveX control, and what I really needed was for pie menus to be specified in xml, and implemented inside the web browser using dynamic html on the web page itself, instead of using a shrink wrapped plug-in control that opens and draws its own windows, but can't interact with the rest of the web page.
So I have basically shelved the ActiveX pie menu, and decided to rewrite pie menus in JavaScript and dynamic html, if I ever get around to it, and if the browsers ever get around to supporting dynamic html.
In the mean time, I have been working on the political problems that have kept pie menus and other useful techniques from being widely used.
I was at the computer game developer's conference several years ago. Since I was using 3D Studio Max at work, I stopped by the Kinetix booth, and asked them for some advice integrating ActiveX pie menus into their 3D editing tool.
They told me that Alias had "marking menus" which were like pie menus, and that Kinetix's customers had been requesting that feature, but since Alias had patented marking menus, they were afraid to use pie menus or anything resembling them for fear of being sued for patent infringement.
I told them that sounded like bullshit since there was plenty of prior art, so Alias couldn't get a legitimate patent on "marking menus".
The guy from Kinetix told me that if I didn't believe him, I should walk across the aisle and ask the people at the Alias booth. So I did.
When I asked one of the Alias sales people if their "marking menus" were patented, he instantantly blurted out "of course they are!" So I showed him pie menus on my laptop, and told him that I needed to get in touch with their legal department because they had patented something that I had been working on for many years, and had used in several published products, and I didn't want them to sue me for patent infringement.
When I tried to pin him down about what exactly it was that they had patented, he started weasling and changed his story several times. He finally told me that Bill Buxton was the one who invented marking menus, that he was the one behind the patent, that he was the senior user interface researcher at SGI/Alias, and that I should talk to him.
So I called Bill Buxton at SGI/Alias, who stonewalled and claimed that there was no patent on marking menus. He said he felt insulted that I would think he would patent something that we both knew very well was covered by prior art. I told him that companies try to made illegitimate patents all the time, and that I did not mean to insult him by repeating to him the misinformation that his marketing people were spreading around the computer industry, in his name.
I tried to explain how Alias's FUD had adversely effected the user interface design of 3D Studio Max, in spite of user requests, but he did not care about 3D Studio Max, since Kinetix was his competition. I asked him whose side he was on, the users or the patent lawyers.
He claimed to be on the side of the users, since he is such a well known user interface researcher, but I believe he has totally sold out to the point of abusing the patent system for profit, and is in the thrall of SGI corporate lawyers. Users beware.
A year or so later, I ran across a marking menu patent issued to Alias, that is probably the one the Alias sales people were spreading rumors about. Now it all makes a lot more sense in perspective.
At the time I found out about it from Kinetix, Alias had just applied for the patent on marking menus. The Alias sales people had heard about it, but could not keep their mouths shut, even though there were damn well supposed to. So they repeatedly spread Fear, Uncertainty and Doubt by bragging about this PENDING patent that they really didn't know much about. The only reason I ever learned about it, was that their FUD was so successful if effected Kinetix's plans.
When it got back to Buxton that they had leaked news of the pending patent to Kinetix, which was supposed to be secret, he was furious, but certainly wouldn't tell me what was really up, so he took his anger out on me instead. He wanted to keep me in the dark, so I didn't go to the U. S. Patent Office and inform them of all the prior art that was conspicuously missing from his patent. But I'll bet he was sure proud that the leak about the patent successfully discouraged Kinetix's plans to put marking menus into 3D Studio Max. It's a textbook example of successful FUD!
Anyway, I did not let that discourage me from my long term plan of incorporating pie menus into a mainstream product (The Sims from Maxis). That is the only way that a lot of people will ever be able to see them and get used to the idea.
Now, when the users of a program like 3D Studio Max demand a feature like pie menus, companies like Kinetix will not be fooled by FUD spread by corporations like Alias/SGI. They will realize that their kids play a game that has pie menus, and they seem to work ok, so there must not be anything wrong with using them for a 3D graphics editing program.
-Don
Pie menu web page:
http://www.catalog.com/hopkins/piemenus
Notes from a talk about Pie Menus I gave to BayCHI at Xerox PARC:
http://catalog.com/hopkin s/piemenus/NaturalSelection.html
A description of ActiveX pie menu features:
http://catalog.com/hopk ins/piemenus/PieMenuDescription.html