LWN.net Logo

Development

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.

Comments (6 posted)

System Applications

Database Software

PostgreSQL 8.0.0 Beta 2 Uploaded

The beta 2 version of PostgreSQL 8.0.0 is out with numerous bug fixes. Testers are needed.

Full Story (comments: none)

phpMyAdmin 2.6.0-rc2 is released (SourceForge)

Version 2.6.0-rc2 of phpMyAdmin, a web-based MySQL administration tool, is available. "Here is the second release candidate for version 2.6.0. Thin[g]s are going well, version 2.6.0-rc1 was tested a lot (with more than 45700 downloads)."

Comments (none posted)

PostgreSQL Weekly News

The September 7, 2004 edition of the PostgreSQL Weekly News is out with the week's PostgreSQL database news and events.

Full Story (comments: none)

Wrong-Errors Bugs: A New Class of Bug? (O'Reilly)

Dan Tow uncovers a new type of database bug on O'Reilly. "In this article, I propose the recognition of a new class of bug, a class that is not generally considered a bug at all. Specifically, I propose that errors such as attempted conversions of unconvertible values or division-by-zero should appear only when absolutely necessary, when any execution plan conceivable would encounter the error. An SQL statement that returned an unnecessary error (an error that would not result from every conceivable path to the data) would be guilty of this new class of bug, a wrong-errors bug."

Comments (none posted)

Libraries

libannodex 0.5.67 Released

Libannodex version 0.5.67 is available with bug fixes. "libannodex is a C library providing a simple programming interface for reading and writing Annodex media. Annodex is an open standards based technology that extends the World Wide Web's hyperlinking, searching, and compositing infrastructure to time-continuous data, enabling video surfing, searching for clips of audio and video files using ordinary Web search engines, and on-the-fly composition of a video on a Web server from previously annodexed clips."

Full Story (comments: none)

Web Site Development

mnoGoSearch 3.2.21 released

Version 3.2.21 of mnoGoSearch, a web site search engine, is out. Changes include improvements to the blob mode, sorting search results in URL order, database driver optimizations, and bug fixes. See the History document for details.

Comments (none posted)

Xaraya 0.9.10 released (SourceForge)

Version 0.9.10 of Xaraya, a web content management solution and application framework, is out. "In this 0.9.10 Beta release we see further consolidation and stabilization of the code base and much enhanced functionality. There is also a move towards a concentration on performance and usability enhancements which are evident in the feature list for this release."

Comments (none posted)

Miscellaneous

GParted 0.0.4 released

Version 0.0.4 of GParted, the Gnome Partition Editor, is out. Changes include copy and paste of partitions, an operations list, bug fixes, and more.

Full Story (comments: none)

Desktop Applications

Audio Applications

First beta of Aqualung announced

The first beta release of Aqualung, a music player for GNU/Linux, is available. "Aqualung is a new music player for the GNU/Linux operating system. It plays audio files from your filesystem and has the feature of inserting _no_gaps_ between adjacent tracks."

Full Story (comments: none)

qjackctl 0.2.10 released

Version 0.2.10 of qjackctl, the Qt GUI for the JACK Audio Connection Kit, is available. Changes include the addition of a pre-shutdown script, better JACK shutdown operation, an ALSA driver Duplex mode, a priority and setup control spinbox, and more.

Full Story (comments: none)

ReZound 0.10.0 Beta released

Version 0.10.0 Beta of ReZound, a graphical audio file editor, is available. "It has been a while since the last release. The major changes include: libSoundTouch support (pitch and tempo change actions added), Adaptive Normalize, new audio output code (towards JACK correctness), some speed optimizations, more status bars, stability fixes, Spanish translation, and other fixes." The release notes have more information.

Comments (none posted)

Desktop Environments

KDE CVS-Digest (KDE.News)

The September 3, 2004 edition of the KDE CVS-Digest is out with the following summary: " KDevelop has a new project builder. KMail now supports kwallet for mail account passwords. Krita adds KJSEmbed scripting support. KOffice now supports Indic."

Comments (none posted)

Electronics

gEDA News

The latest new releases from the gEDA project include snapshot 20040828 of the Icarus Verilog compiler, development snapshot 20040903 of PCB, the printed circuit board CAD package, and more.

Comments (none posted)

Games

Planet Zephulor 0.9a

Version 0.9a of Planet Zephulor is available from the PyGame site. "Planet Zephulor is a side scrolling platform arcade game under development. Currently the game spans 15 levels."

Comments (none posted)

Graphics

Crystal Space 0.98r004 released (SourceForge)

Version 0.98r004 of Crystal Space is available. "Crystal Space is an Open Source and feature rich 3D Engine which runs on Linux, Windows, and MacOS/X." Changes include the maturation of the new renderer architecture, skeletal animation support, a VOS networking plugin, bug fixes, documentation improvement, and more.

Comments (none posted)

GIMP 2.1.4 Development Snapshot (FootNotes)

Development Snapshot 2.1.4 of the Gimp has been announced. "Using the newly introduced progress bar API, the progress bars that used to pop up while creating thumbnails or running a script are now embedded into the Script-Fu dialog or the File Open dialog respectively. A new preview widget for plug-ins has been added and quite some plug-ins are already ported to the new widget. Finally an end to trial and error for finding the right blur radius or the proper edge detection algorithm."

Comments (none posted)

Instant Messaging

Gossip 0.7.8 released

Version 0.7.8 of Gossip, an instant messaging client for GNOME, is available. "This release fixes an issue where you have a global proxy set but you don't want to use it for Gossip. Ross Burton was fast to answer a call for help and added a setting in the account dialog to disable the system proxy."

Full Story (comments: none)

Interoperability

Wine Traffic

The September 3, 2004 edition of Wine Traffic is online with the latest Wine project news.

Comments (none posted)

Music Applications

Introducing Soundtank 1.0.0

Initial version 1.0.0 of Soundtank, a LADSPA host, is out. "In this program, you can use any LADSPA plugin with a pitch control as a softsynth; multiple instances handle polyphony and MIDI control is handled through user-customizeable Event Maps. As a perk, I have included a command to automatically create Event Maps, ensuring you instant gratification."

Full Story (comments: none)

Office Applications

Free (as in "free speech") access to Microsoft Exchange

The Brutus project has been announced. "The Danish Open Source company OMC has released Brutus. Brutus is a free development framework distributed under the GPL that offers access to all of MAPI and therefore to all versions of Microsoft Exchange from 5.5 onwards. Brutus is a complete wrapping of all of MAPI into a (large) set of CORBA interfaces."

Full Story (comments: 2)

GanttProject 1.10 released (SourceForge)

Version 1.10 of GanttProject, a Java-based Gantt chart planner, is out. "New features include export to new formats (XFig, CSV), management of role sets (now it is possible to define application-level roles and share them in different projects). UI improvements (new plastic theme, multiselection), WebDAV bugfixes."

Comments (none posted)

Office Suites

ooo-build 1.3.3 announced

Build 1.3.3 of OpenOffice.org has been released. "This package contains Desktop integration work for OpenOffice.org, several back-ported features & speedups, and a much simplified build wrapper, making an OO.o build / install possible for the common man. It is a staging ground for up-streaming patches to stock OO.o."

Full Story (comments: none)

PDA Software

Gnome Pilot 2.0.12 & Gnome Pilot Conduits 2.0.12

Versions 2.0.12 of Gnome Pilot and Gnome Pilot Conduits are available with bug fixes and improved translations.

Full Story (comments: none)

Guikachu 1.5.2 Released

Version 1.5.2 of Guikachu, the GNOME Resource editor for PalmOS projects, is out. Changes include bug fixes, I/O error handling improvements, support for GCC 3.4, updated translations, and more.

Full Story (comments: none)

Digital Photography

F-Spot 0.0.2 released

Version 0.0.2 of F-Spot, a photo management application for GNOME, is available. Changes include a full screen slide show mode, a preview popup window, new grouping options, thumbnail icon editing, and more.

Full Story (comments: none)

RSS Software

Imendio Blam 1.4.0 announced

Version 1.4.0 of Blam, an RSS reader for the GNOME desktop, is available. "This release features automated periodic updates of the news feeds as well as a notification when unread items exists. A couple of sorting bugs has been fixed and support for marking all entries in a channel as read has been added."

Full Story (comments: none)

Web Browsers

Independent Status Reports (MozillaZine)

The latest Mozilla Independent Status Reports are online "Brian King writes in with this week's Independent Status Reports, which cover Mozilla-Delphi, LookAhead, Autofill, bioFOX, and more."

Comments (none posted)

Firefox Extensions Guide (MozillaZine)

MozillaZine mentions a new online Guide to Firefox extensions. "Gsurface wrote in to tell us that Flexbeta has posted an in-depth guide to a number of the well known, and not so well known extensions available for Mozilla Firefox. It covers close to 30 different extensions, including web developer tools, full application add-ons, existing feature enhancements and more."

Comments (none posted)

Mozilla Links Newsletter

The September 6, 2004 edition of the Mozilla Links Newsletter has been published. Take a look for a long list of Mozilla browser articles.

Full Story (comments: none)

Miscellaneous

gnubiff 2.0.0 released

Version 2.0.0 of gnubiff, a mail notification application, is out. Changes include an HIG 2.0 compliant interface, auto-detection of mailbox format, bug fixes, and more.

Full Story (comments: none)

Languages and Tools

Caml

Caml Weekly News

The Caml Weekly News for August 31 - September 7, 2004 is out with numerous Caml language articles.

Full Story (comments: none)

Java

Parsing and Processing Large XML Documents with Digester Rules (O'ReillyNet)

Eugen Kuleshov writes about Jakarta Digester on O'Reilly. "In-memory XML representations such as DOM can be impractical for large XML files, for which different approaches are needed. As Eugene Kuleshov shows, Jakarta Digester offers a lighter, event-driven alternative."

Comments (none posted)

Building Highly Scalable Servers with Java NIO (O'Reilly)

Nuno Santos introduces Java NIO on O'Reilly. "The support for I/O multiplexing is a new feature of Java 1.4. It builds on two features of the Java NIO (New I/O) API: selectors and non-blocking I/O."

Comments (none posted)

Annotations in Tiger, Part 1: Add metadata to Java code (IBM developerWorks)

Brett McLaughlin writes about Java Annotations on IBM's developerWorks. "Annotations, a new feature in J2SE 5.0 (Tiger), brings a much-needed metadata facility to the core Java language. In this first of a two-part series, author Brett McLaughlin explains why metadata is so useful, introduces you to annotations in the Java language, and delves into Tiger's built-in annotations."

Comments (none posted)

Lisp

LTK 0.8.6 released

Version 0.8.6 of LTK, The Lisp Toolkit bindings for Tk, is out. "The major change in this version is a reworked communication subsystem between Lisp and Tk".

Full Story (comments: none)

SBCL 0.8.14 released

Version 0.8.14 of Steel Bank Common Lisp is available. "This version features improved debugging facilities and documentation, and performance improvements."

Full Story (comments: none)

PostScript

GGV 2.7.99 released

Version 2.7.99 of GGV, the Gnome Ghostview PostScript previewer, is available. "Getting anxious prior to the upcoming release, the latest incarnation of Gnome Ghostview features an brand new desktop file that lists it as capable of displaying application/postscript mime type (Ray) and an updated, bug-fixed version of the recent-files code (Mark)."

Full Story (comments: none)

Python

Python 2.4, alpha 3 released

The alpha 3 version of Python 2.4 is out for testing. "In this release we have PEP-292 string templates, a new syntax for multi-line imports, and a large number of other bug fixes and improvements. See either the highlights, the What's New in Python 2.4, or the detailed NEWS file -- all available from the Python 2.4 webpage. This will hopefully be the last alpha in the Python 2.4 cycle - a first beta will follow in a few weeks."

Full Story (comments: none)

A Python Quick Reference to Useful Commands (O'ReillyNet)

O'Reilly has published some useful Python resources. "Plucked from the pages of Python in a Nutshell and Learning Python, 2nd Edition, these excerpts, available for download as a PDF (55K), offer a quick reference to useful Python commands, covering methods, common file operations, and much more. Print it out to keep by your keyboard as you program."

Comments (none posted)

Dr. Dobb's Python-URL!

The September 7, 2004 edition of Dr. Dobb's Python-URL! is online with the latest Python news and article links.

Full Story (comments: none)

Ruby

alt.lang.jre: Take a shine to JRuby (IBM developerWorks)

Michael Squillace and Barry A. Feigenbaum explore JRuby on IBM's developerWorks. "JRuby combines the object-oriented strength of Smalltalk, the expressiveness of Perl, and the flexibility of the Java class libraries into a single, efficient rapid development framework for the Java platform."

Comments (none posted)

Tcl/Tk

Dr. Dobb's Tcl-URL!

The September 7, 2004 edition of Dr. Dobb's Tcl-URL! is out with another weekly dose of Tcl/Tk article links.

Full Story (comments: none)

XML

XML &DocBook: Structured Technical Documentation Authoring (Linux Journal)

Machtelt Garrels looks at DocBook on Linux Journal. "DocBook is an XML Document Type Definition or DTD. It is a subset of XML particularly suited for but not limited to the creation of books and papers about computer hardware and software. DocBook is well-known in the Linux community and is used by many publishing companies and open-source development projects. Most tools are developed for the DocBook DTD and are included in most Linux distributions. This allows for sending raw data that can be processed at the receiver's end--wherever applications able to interpret XML directly are available."

Comments (none posted)

Converting XML to RDF (O'Reilly)

Bob DuCharme shows how to convert XML to RDF on O'Reilly. "I had written a stylesheet called aws2rdf.xsl, but the more I thought about it the more I realized that such a stylesheet needed very few dependencies on the Amazon Web Services DTDs, and that it could convert a wide variety of XML to RDF. So, I revised and renamed it to xml2rdf.xsl, and we'll look at it here."

Comments (none posted)

Screenscraping the Senate (O'Reilly)

Paul Ford pulls data from the web pages of the US Senate in an O'Reilly article. "In this inaugural article of Paul Ford's new column, Hacking Congress, he introduces his plan to create an RDF description of the U.S. federal government. He starts by collecting data on U.S. Senators and converting it to RDF. Future columns will focus on the House of Representatives and the Executive branch."

Comments (none posted)

Tip: Send multiple Web services requests from XForms (IBM developerWorks)

Nicholas Chase works with multiple web services requests using XForms. "A typical HTML form only lets you submit to one URL at a time, which makes it difficult to retrieve information from multiple Web services. This tip shows you how to use XForms to solve that problem by using multiple submissions from a single form."

Comments (none posted)

Debuggers

Valgrind 2.2.0 is available

Version 2.2.0 of Valgrind, a tool suite for debugging and profiling x86-Linux programs, is out. "2.2.0 brings nine months worth of improvements and bug fixes. We believe it to be a worthy successor to the previous stable release, 2.0.0. There are literally hundreds of bug fixes and minor improvements. There are also some fairly major user-visible changes".

Full Story (comments: none)

IDEs

New SCons Eclipse plugin

Lothar Werzinger has written a new plugin for Eclipse. "This plugin allows to build C/C++ projects with the SCons build tool."

Full Story (comments: none)

Page editor: Forrest Cook
Next page: Linux in the news>>

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