About FAQ
Login to maintain with the FAQ database.
Besides the frequently asked questions found here, be sure to check out the postings, and their replys, at the 3Dwm-help mailing list.

InstallingTroubleshootingGeneralAbout the ProjectDevelopment

Frequently Asked Questions  

6: Which platforms will you support, then?
The core 3Dwm functionality should be possible to run on just about any operating system that supports OpenGL (preferably hardware-accelerated). As for the window system support, that is, unfortunately, quite another matter. 3Dwm gave us support for X11 -- as for the other window systems, time will have to tell.
16: Where can I find the GL library?
If you have the Mesa-devel rpm-package installed you will find the GL/gl.h file in /usr/X11R6/include/. You have to include this directory in the directories searched for include files (with the -I option when compiling) or you can copy the GL dir to /usr/local/include (which I believe is always searched).
17: Is 3Dwm hardware accelerated?
Both yes and no. Currently, the 3D hardware acceleration in Linux resides in the X-Window system, and not the kernel. Therefore, you do get hardware acceleration if you use X, but if you run 3Dwm directly on the kernel (which is possible) you'll have to settle for a pretty sluggish software rendering.
21: What dependencies do I need to install?
The dependencies needed to get 3Dwm running (with all its features) are listed on the Development | dependencies-page.
30: Can I run 3Dwm directly in the Linux framebuffer?
Yes, it *is* possible to run 3Dwm on the Linux framebuffer console without the use of X. Doing this is quite undocumented though, but involves editing the include/Polhem/Platform.hh file.

23: Nothing shows up in the display server!
Try zooming out... The view is initialized in the origin of the 3D space, and unfortunately, new objects are created there as well, making it impossible to view them unless you zoom the camera out. To do this, hold the Control key and move the mouse along the Y axis while pressing the right mouse button.
24: [1011614786 : General] Cannot get initial reference for NameService
You have not started omniNames, the CORBA name server. Read more in the INSTALL documentation.
25: The makefile of /server misses library reference to OpenGL library!
This is a known problem with the OpenGL m4 script. See the below URL for a fix: http://oss.medialab.chalmers.se/pipermail/3dwm-help/2001-November/000170.html
27: The tdwm-server console says it cannot find any display adapter! Why?
You need to configure the 3Dwm server to use the fbcon backend. Edit include/Polhem/Platform.hh and comment in the fbcon platform (and make sure you comment out the X one). This will hopefully soon be exchangable at run-time.
28: Error: Undefined reference to `gluPerspective'
"-lGLU" seems to be missing in your compile command. See the following thread for a possible fix: http://oss.medialab.chalmers.se/pipermail/3dwm-help/2001-September/000135.html NOTE: This is a temporary fix until I get around to writing an improved OpenGL m4 script.
29: Can I run 3Dwm directly in the Linux framebuffer?
Yes, it *is* possible to run 3Dwm on the Linux framebuffer console without the use of X. Doing this is quite undocumented though, but involves editing the include/Polhem/Platform.hh file.

2: What does it do?
3Dwm allows for easy design of computer applications with graphical user interfaces in three dimensions. Since the field of 3D user interfaces (3D-UIs) is still quite new, 3Dwm has been designed with flexibility in mind and with a policy-free user interface philosophy -- 3Dwm is not a 3D UI system in its own right, but provides all the high-level primitives necessary for building and experimenting with them.
3: What does the term 3d user interface mean?
Most people are used to working in window systems such as Microsoft Windows®, MacOS® and X11R6®. These are all essentially two-dimensional user environments, since they display all applications in graphical entities (commonly called "windows") in a layered hierarchy on your screen.
The applications, in turn, consists of menus, buttons, sliders and text fields, etc. 3D-UIs are simply the same thing, only taken to the third dimension. This means that your applications will hang suspended in mid-air (or be arranged in some other fashion) instead of cluttering your desktop. It means that the flat buttons, sliders and drop-down menus you are used to will be extended to true 3D-objects. Beyond the more trivial examples, it means that some applications may take great advantage of the third dimension and give the user a much more intuitive environment in which to work. The 2D window is replaced with its three-dimensional counterpart - the space.
5: Will I still be able to run my old 2D applications in 3Dwm?
Certainly. This backwards-compatibility is an absolute must if our users are to remain productive before software developers gear up and start producing true three-dimensional applications. However, unlike 3Dwm (a related prototype project, see below for more information), the scope of 3Dwm is broader than merely the concept of "2D-applications-in-3D" -- while this is important, it is only an extension and not the main feature of the system. 3Dwm is first and foremost a threedimensional UI platform.
7: What kind of hardware will you support?
As wide an array as possible. 3Dwm will of course run on normal desktop systems (though they should preferably be equipped with hardware-accelerated 3D for optimal performance), but 3D on a 2D screen will inevitably end up feeling a bit awkward, so the main target hardware is really true immersive environments such as CAVEs and HMDs (hence the name of the system). Development of 3Dwm is actually targetted at the Chalmers Medialab 3D-CUBE (which, fittingly enough, is part of the Chalmers Medialab Immersive Space Laboratory).
8: What's this 3D-CUBE you keep referring to?
Why, the 3D-CUBE is the pride and joy of Chalmers Medialab, a five-sided immersive virtual reality environment commonly called CAVE (short for Computer Animated Virtual Environment). Yes, it's a cube, measuring about 3x3x3 meters. Take a look at this page for some exhaustive information on the 3D-CUBE.
9: Will 3Dwm work on any CAVE?
We have no way of knowing, but, yes, theoretically it should. You will need to have multi-threaded (not multi-process) q CAVELib installed with bindings to OpenGL as well as an input device supported by 3Dwm (more information on this will follow).
10: How about HMDs?
HMD support is planned in the future, but there is currently no support at all for them. Pointers to general HMD APIs are welcome.
11: Do I have to have a virtual reality device to run 3Dwm?
No. 3Dwm also works on normal desktop systems with OpenGL installed (preferably 3D-accelerated), though you will lose a great deal of the three-dimensional experience compared to the virtual reality version. Currently, 3Dwm has only been confirmed to run on GNU/Linux, but should be fairly compatible to other UNIX:es. Contributions and platform ports are welcome. A Win32 port should be possible in the future.
20: Do you use the X-window system?
To get 3D hardware acceleration you must use X (at least, that is the case for now, we are hoping for this to change) but you can run it directly on top of the kernel.
22: What is a wearable computer?
A wearable is a highly portable computer, designed to let you perform other work, such as maintenance or assembly-work, while using the computer. Usually, a wearable is a way to have augmented reality superimposed on your normal vision, with information like blueprints or excerpts from databases.

About the Project
1: What is 3Dwm?
3Dwm is a general-purpose platform for 3D user interfaces.
4: Do you have any concrete examples of this kind of 3D applications?
There are many examples, but one area in which we might see some nice progress is 3D modelling. A 3D-UI modelling program might be created to look like a workshop which you can step into and with the modelling tools arranged around the shop. The modeller may create and modify models simply by using his cyberglove(s) or stylus to draw in the air, and can then walk around, rotate, scale and move the object at will. Another example might be a VRML-browser which allows you to actually enter the VRML world instead of viewing it through a camera.
12: Will 3Dwm come with source code? Is it free?
Yes. 3Dwm is Free Software (free as in free speech, not beer) and released under the Lesser GNU Public License (LGPL).
13: Who's currently developing 3Dwm?
3Dwm is being developed primarily by Niklas Elmqvist (programming and project coordination), Robert Karlsson (artwork, 3D modeling, web design, database coupling), and Steve Houston (programming) and Antony Suter (platform support, clienst server programming). Since 3Dwm is Free Software, we encourage people to join in on the effort to help 3Dwm progress further.
14: When will it be finished?
3Dwm is a research project being conducted at Chalmers Medialab. As such, it is quite hard to predict what difficulties we will run into and how much time it will take to solve them. In addition, the development team is currently quite small. We don't like to to make promises we're not sure we can keep, so we will not try to give an estimate of the completion time. However, the system will be freely available at all times, so anyone can download 3Dwm and see how far we've come.
15: How do I learn more about 3Dwm?
An important part of 3Dwm is documentation. We like to share our findings with other members of the Internet community in the hope that our work may benefit them in their work. Accordingly, all of our design documents and discussions may be found on the Resources page. Expect this page to be updated as time goes on.
18: What is all this thing about 2D windows in 3D!? That's no good!
We do not consider that displaying a flat desktop as a texture on a flat surface (or arbitrary geometry) is the right way to go when designing the next generation of user interfaces. However, to get backwards compatibility, or rather, 2D compatibility, you sometimes have to take a desktop and use it as a texture on a plane to have acces to a shell window, or a browser.
Furthermore, in hardware such as the Xybernaut wearable computer, the use of head-tracking could make these 2D-windows hanging in mid air a sort of flexible, virtual desktop (for example, you could place a browser above you, and access it simply by looking up, and have it float into vision).
19: What applications are there for 3Dwm?
Up till now, most work has been put on getting the 3Dwm display server to run smoothly, so there is yet few clients to connect to the server. There is however a Geoclient that loads geometry and a VNCclient that uses VNC to convert remote desktops into textures in 3Dwm.
26: What languages can I use to make my own applications in 3Dwm?
3Dwm uses CORBA, which means that you can program 3Dwm clients using *any* programming language that has a CORBA mapping. For example C, C++, Java or similar programming languages. However, at the moment, the 3Dwm testing for other languages than C++ is poor, and there exists no support libraries such as Nobel++ for C or others.

Copyright ©1999-2001 CKK. All rights reserved.
Visiting address: Aschebergsgatan 46-48, house 4. SE-412 96 Gothenburg, SWEDEN.
Phone: +46 (0)31 772 8582 Fax: +46 (0)31 772 8585

Changed: 2003/12/03 (Wed @ 22:12)