LWN.net Logo

Metisse: An Experiment in Three Dimensional Thinking

September 8, 2004

This article was contributed by Dave Fancella

There has been a lot of recent discussion in the news about various projects that are trying to improve the traditional two dimensional graphical user interface. Efforts are underway to make it more efficient, useful, and generally better. Microsoft ran their TaskGallery project, starting in 1999, to explore and study the idea of taking advantage of a user's spatial memory to organize their workspace. Sun recently demonstrated their experimental 3d desktop, Project Looking Glass. Two commercial organizations, Spatial Research and 3DNA provide proprietary three dimensional desktop interfaces for Microsoft Windows. So this is an area that is getting a fair amount of attention, and possibly even results. And then there's Metisse.

Metisse is an open source project that grew out of several sub-projects funded by in Situ, a research project that exists as a collaboration among several French research groups. The brainchild of Olivier Chapuis and Nicolas Roussel, Metisse uses the techniques developed in the Ametista project to create a complete three dimensional workspace.

Ametista was a project that developed some interesting techniques for capturing windows from the desktop image stream and using those images to compose a new workspace. According the the Ametista website, this technique is similar to that developed for the Task Gallery project. Metisse takes this concept a step further and creates a three dimensional workspace. Standing on the shoulders of giants, Metisse uses a modified version of FVWM, Xvnc, and Ametista to create a virtual X server from which it extracts application windows. Application windows are used for painting textures to plane objects that in turn are drawn on a 3d-accelerated X client.

While the technique itself is very fascinating, the question on your mind is probably something like "What can it do, and where can I see screenshots? Those were the first questions on my mind when I discovered Metisse, so I endeavored to install and run it to see what it could do. This article is based on Metisse version 0.3.3.

First Impressions

Since Metisse uses FVWM to provide the desktop environment, I was immediately and hopelessly lost. As a longtime KDE user, FVWM struck me as being about as foreign as you could get. So my first impressions weren't as good as they could have been. Realizing this, I immediately shut down Metisse and spent half an hour reading about FVWM. When I took a second crack at it, I was very impressed.

The first benefit Metisse brings to the table is in one of the least likely places. When you click on a corner of the window, a regular window manager thinks you want to resize it. Under Metisse, however, it just pulls the window back. The assumption is that in a regular window manager, when you resize a window you are doing so with the intention of seeing what is underneath the window so you can continue to do work in the window you're resizing. So Metisse pulls the window back with a peeling action so you can see what's underneath. When you let go, the window sticks back to the desktop where it was. I was impressed, anyway.

The second major benefit Metisse brings you is through its use of OpenGL textures. Since your window is no longer being rendered into itself as a virtual screen (as it is in a two dimensional window manager), Metisse can use OpenGL methods to scale the window. This brings an interesting benefit that can't be ignored. The problem with resizing windows is always that you have to pick a size that shows the amount of information you want to see. When you make the window smaller, you see less information in the window. Larger and you see more, at the tradeoff of not having as much space on your desktop for other windows. So users spend a lot of time resizing windows and rearranging them so they can work in multiple windows, and have as much information in each one as they need to keep working. Inevitably, there is always a shortage of screen space.

Under Metisse, however, you can scale the window rather than resize it. So you can set it at the size that shows you all of the information you need, and then scale it to the actual size on your desktop that you need it to be. A subtle but surprisingly useful feature! Especially for those of us that like to have our mail clients open at a small size so we can see new email, but are limited by having so many folders that the mail client isn't useful unless it's Really Big.

Main Features

As interesting as those two particular features are, Metisse puts a number of useful operations at your fingertips that weren't there previously. If you hover your mouse cursor over an unoccupied portion of your desktop, the scroll wheel will let you scroll among all of your virtual desktops. The title bar of each window has a few more buttons than it had, and each button lets you do a number of things. Your window is now in 3d space, so you can rotate it on all three of its axis. Scaling your window brings some other benefits, such as making your toolbar and window buttons larger or smaller, especially since most text-based applications such as Mozilla, LyX, or KSpread allow you to change the size of the text. So you can make the text smaller, scale the window larger, and wind up with bigger toolbar buttons with the same amount of text in the window. Right-click on the task's icon in the task bar and you can scale the window into the corner, safely putting it out of the way but still in plain view.

Some special attention should be paid to rotating windows on their axis. In a traditional two dimensional workspace, you can't rotate the windows at all. You can only shuffle them around and resize them, and you essentially have a fake 3d setup where you can stack them front-to-back. This is useful, but it's pretty easy to lose track of where you put each window. The task bar was invented to deal with that problem.

In a 3d desktop you can usually rotate the windows on their axis. Rotating a window on the X axis means you can rotate it until it's pretty thin and then move it out of the way. You can then see where it is and what it is without having to do any sort of icon association. You can do the same on the Y axis, if you prefer.

As much as I like being able to rotate a window on the Z axis, I still haven't found a practical use for it. But the question begs, if you rotate on the X or Y axis, the window still takes up space, so what use is it? Never forget that you can scale the other windows! I still haven't gotten over how useful that is. When you combine this with the Auto Scale feature, the long-debated "Focus moves with cursor" feature of X becomes inarguably practical.

Of course, you still get the ability to move windows around in 3d space, and you can get yourself lost on your desktop pretty easily until you master this skill. You can also set the desktop surface as concave or convex and set its degree of curvature.

Conclusions

Metisse is very young, at version 0.3.3. It is also the subject of research, so it's not likely to become production grade anytime soon, if ever. Following in the tradition of open source software, Metisse is subject to incremental improvements and the taking of time to assimilate those improvements. It brings some interesting innovations to the table, but the only thing particularly unique at this early stage of its development is the peeling of windows.

The main advantages I see to Metisse at this time are precisely due to its young age. The developers aren't just going all-out to build an art gallery or other virtual world; instead they are taking their time and studying each possibility in an incremental fashion. Since it's so young, and open source, there is plenty of room for the community to help them to determine the best way to build a three dimensional workspace that will actually provide improvements in efficiency, usefulness, and general coolness.

The main drawbacks? There is only one that I can see. By building with all of these added layers in the windowing system, Metisse barely runs on machines without a 3d accelerated driver, on my slow system it's not particularly responsive. That's easily forgivable since the nature of the project is research, but I wonder how much performance might affect that research? It's struck me as fairly obvious that even a two dimensional desktop should be taking advantage of 3d acceleration in a video card, and Metisse seems to promise that. At the very least, Metisse has already shown several ways that a two dimensional desktop can use 3d acceleration to its advantage, and I'm looking forward to many new innovations from these guys.


(Log in to post comments)

Metisse: An Experiment in Three Dimensional Thinking

Posted Sep 9, 2004 5:37 UTC (Thu) by Ross (guest, #4065) [Link]

'When you combine this with the Auto Scale feature, the long-debated "Focus
moves with cursor" feature of X becomes inarguably practical.'

That's not a feature of X, but of the window manager you are using. I
don't know who is debating it's usefulness, but I can say personally that
I rely on it every day.

Metisse: An Experiment in Three Dimensional Thinking

Posted Sep 9, 2004 8:28 UTC (Thu) by evgeny (guest, #774) [Link]

If you hover your mouse cursor over an unoccupied portion of your desktop, the scroll wheel will let you scroll among all of your virtual desktops.

I've been using this for years with FVWM.

Rotating a window on the X axis means you can rotate it until it's pretty thin and then move it out of the way.

I just double-click on a window's toolbar and it shades away; another double-click and the window's restored. Seems to me a faster way of achieving this.

Metisse: An Experiment in Three Dimensional Thinking

Posted Sep 9, 2004 20:19 UTC (Thu) by RogerL (guest, #4046) [Link]

If you hover your mouse cursor over an unoccupied portion of your desktop, the scroll wheel will let you scroll among all of your virtual desktops.

I've been using this for years with FVWM.


You have "unoccupied portions" on your desktop? I never have...
In KDE you can use the scroll wheel over the virtual desktop indicator.

Metisse: An Experiment in Three Dimensional Thinking

Posted Sep 9, 2004 21:04 UTC (Thu) by evgeny (guest, #774) [Link]

> You have "unoccupied portions" on your desktop?

Well, that's what virtual desktop is for - to keep the screen relatively uncluttered...

> In KDE you can use the scroll wheel over the virtual desktop indicator.

In FVWM, you can drag the viewport on the desktop pager with the 3rd mouse button - a la joystick, full 2D control.

Metisse: An Experiment in Three Dimensional Thinking

Posted Sep 9, 2004 9:34 UTC (Thu) by rjw (guest, #10415) [Link]

They really should switch to an architecture using XComposite and XEvie if they want to keep up with where X is going.

Metisse: An Experiment in Three Dimensional Thinking

Posted Sep 12, 2004 10:00 UTC (Sun) by oak (guest, #2786) [Link]

Yeah, one part of the slowdown could come from the use of Xvnc. HW
accelerated Render with window content "textures" coming from the
Composite double buffers would be much nicer.

First they need to solve how handle Composite double buffer updates (from
toolkit/app side) while the double buffer is needed as window texture
though...

Copyright © 2004, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds