So you think that GPU accelerated 3D GUIs are the exclusive domain of OS X and Vista? Common assumptions about Linux desktops lacking eye-candy and attractive facades are to be made moot once and for all, with the introduction of next-gen Linux graphics libraries, such as XGL, the new hardware accelerated windowing system from Novell.
If you use Linux anywhere but the command line, chances are you spend a lot of time staring at X, whether you realise it or not. X is the windowing subsystem for Linux, managing the core components needed to provide the user with a GUI, such as cursor position and interaction, window size, shape and contents, and much more.
Desktop environments such as Gnome and KDE provide their own widgets (interface elements) to layer on top, but both environments rely on X in order to do their windowing. This means that any significant enhancements to the graphical features of either desktop must be made within the limitations of the core X Windows system.
Which brings us to XGL. Novell has continued their exceptional work in the Linux realm by producing XGL, which provides modern 3D accelerated rendering and features to X Windows via OpenGL.
The hardware acceleration is extremely impressive in terms of what it manages with the resources it's given. I've tested the Live CD distribution Kororaa on a variety of video cards, with surprising results. Obviously, the vendor-overclocked GeForce 6600GT I normally use to review games ran it smoothly, but the same positive results were achieved with a GeforceFX GO 5200 in a laptop, and an Intel Extreme onboard card in a desktop machine. No ATi cards were available for testing at the time.
So what do you get? The first things you'll notice are the "smooshy" windows, which are just like normal windows but with elasticity, so moving them around makes them warp dynamically. Windows are no longer tracked as being rectangles, so developers can finally get to work on that septagonal interface the world needs yesterday. And the little touches, like the way that menus pop out from their homes and come to a gentle, bouncing stop, are truly beautiful.
Compiz, which Novell released at the same time as XGL, is an extension to the system to provide compositing features. And are they used within XGL? Boy howdy. Drop shadows everywhere, transparent title bars on windows, an Expose clone which looks better than Expose and, my personal favourite, holding down ALT and using the mouse-wheel will cause the active window to fade in and out. Very handy when you have a progress bar that you need to check, but don't want to be switching windows all the time.
As for the 3D features, the main one is demonstrated when you switch desktops. Each desktop is rendered onto the face of a cube, so when you switch desktops you spin the cube to the face you are after. Very much a gimmick, but an undeniably cool one.
At first, these features are mainly going to be used for eye-candy. While not a bad thing by any means, the initial applications of the technology will do very little to convince serious power users to try it, and even less to encourage developers to utilise it. Over time, however, people on both sides of the divide will hopefully think up some uses for the technology which aren't just for show.
Some people might say that this is just a cynical attempt by Novell to draw attention from Windows Vista, which has been derided as XP-cum-Linux with a facade ripped off from Apple. This is probably partly true, but my attitude towards this sort of corporate chest-beating is that it's good for the ecosystem as a whole, because it stimulates competition and growth. If Microsoft looks at these technologies and sees a threat, then they'll work harder.
Ultimately, XGL is a great piece of technology, and demonstrates that hardware accelerated interfaces aren't the sole province of the billion dollar corporation. And, while XGL Gnome under Kororaa might not be as pretty as full-blown Aero Glass, it certainly opens your eyes to the possibilities.
Novell's XGL release (includes video demos)
How to run XGL on openSuSE Desktop Linux 10.1