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)