Through Project Looking Glass with Hideya Kawaharaby John Littler
3D has practically taken over video gaming. Lifelike, if not very pleasant, worlds exist aplenty--worlds that most users find easily navigable without any training whatsoever. Is the world of spreadsheets, word processors, and the like just unsuitable for 3D? Is it a case of "If it ain't broke, don't fix it"? Or is it that we've lacked imagination? John Littler recently talked to Hideya Kawahara about an open source 3D desktop project that he started and that Sun subsequently took under its wing.
John Littler: Let's maybe get a little history on Project Looking Glass project. How long has it been going and what was the original mission statement?
Hideya Kawahara: It has been open sourced for about one and a half years. We are grateful for the keen and growing numbers of community members we have around the technology.
The very first public demo of the technology using a proof-of-concept version was shown in LinuxWorld San Francisco back in August 2003. Time [flies].
Since then, we have spent a bit less than one year to reimplement the technology into a better code base for open source development and do further exploration of the 3D opportunity. The development is done by Sun's Advanced Development Group.
From the beginning, our mission statement has always been the following: "explore bringing a richer user experience to the desktop and applications via 3D windowing and visualization capabilities together with the open source community." So, I feel very happy whenever I see a new 3D application developed by community members on top of Project Looking Glass.
JL: Did that process mostly involve cleaning up and commentary, or was it more to do with the arrangement of the tree and like things?
Hideya: It was more like a complete rewrite. The proof-of-concept version used a Java to OpenGL binding for 3D rendering. We switched the platform from it to Java 3D, since Java 3D provides scalability and higher-level abstraction of 3D features, which helps development.
JL: Did it start out as an open source project?
Hideya: Actually, it started as a personal project, with open sourcing in mind. I spent almost one year developing the initial proof-of-concept demo. The demo generated some excitements among Sun engineers, and it rippled up to the management. Then, they proposed to evolve the technology as a company project.
Since Sun was supportive for the idea of open-sourcing the technology and creating a small team with excellent engineers with profound knowledge in 3D and window system technologies, I was happy to accept the offer. This was the beginning of Project Looking Glass.
And, as promised, Sun supported us to open-source the technology.
JL: 3D desktops seem like a cool idea just 'cuz, but most people will want functionality. What do you think are the functional uses--both now and potentially?
Hideya: In general, 3D provides us more freedom of visual expression than 2D. So, if we carefully use the additional opportunities brought by the 3D-ness in a meaningful way, I believe it has great potential. So, the issue really is to find out things that make sense.
In the project, we found some of the ideas that were received well by the users, like parking a window with angles in a 3D space, flipping a window to add notes or configure the window, a bookshelf view of all the windows, and panning and zooming out of a horizontally long virtual desktop space.
And we even started seeing similar 3D effects in major desktops, like flipping a widget in Apple Mac OS X's Dashboard, and a bookshelf-like view of windows when switching the window focus in Microsoft Windows Vista.
I think we've just begun to find out the usefulness of 3D UI features, and there are more undiscovered opportunities there.
JL: People have had trouble with this in the past, haven't they? We had VRML for the Web, for example, but it died partly because users needed powerful machines to cope with anything halfway decent, and the implementation wasn't too good either. I remember there were all sorts of problems with scaling pixmaps and the like, and the code was horrible and meant to be machine written. Did the Looking Glass project look at VRML for any ideas?
Hideya: We have many things we can learn from past approaches, including VRML, but we are doing it very carefully.
Most of research around VRML is virtual reality centric, not surprisingly. And I know many desktop environments proposed based on virtual reality. However, I didn't think it is a right approach as a first step toward a 3D desktop.
We think a desktop is a desktop, regardless of 2D or 3D. We avoided to bring the desktop into the 3D virtual reality world that could just confuse the user. Rather, we tried to bring useful 3D effects into the desktop space piece by piece. I think this focus is one of the reasons for the positive feedback we have received about our project.
On the other hand, as a 3D platform, Project Looking Glass is capable enough for us to create a desktop that provides a fully immersive virtual reality experience. This extensibility is one of strengths of this platform. So, in the future, we might choose to explore this direction too. But not right now.
JL: So there could be a "mod" community in time to come. That could be fun.
Hideya: Yes, definitely. This is one of the great things of being an open source project. I'm looking forward to seeing such communities around this technology.
JL: Performance probably isn't such an issue now that very powerful machines are in general circulation. I was impressed with the speed of the Looking Glass demos I've seen, especially when they have a Java heritage. Looking Glass can't possibly be running on top of an ordinary Java VM ... can it?! What sort of performance tweaks have you made?
Hideya: This is one of questions I'm often asked. Unfortunately the answer is a bit boring--we haven't done anything special. It is running on an ordinary Java VM that you can download from Sun. There are many people who think execution of a Java program is very slow, but it is not the case anymore. Thanks to the intensive exercise on the server side these days, Java VM has evolved a lot. Project Looking Glass is just leveraging that fact.