Hypercube is my experiment in a true 3D user interface (UI). I am attempting to write a fully functional, robust user interface to take advantage of 3D.
My current plan is to make this more an experiment involving programming to answer some questions:
- Is a 3D user interface feasible? (ie, does it truly offer advantages over current 2D UIs?)
- If so, can it be made easy to use? Could the average person (with little to no computer experience, or someone used to Windows) sit down and find it easy enough to use with little to no help?
- What alternate hardware (existing or not) do we need to provide a better 3D UI?
A more complete list of what I would like to see in a 3D UI is available.
Currently I am still in the early stages of writing code. I am doing very little (essentially no) design or overall planning. I have lots of ideas, and I want to experiment with this. It is not expected that the first version will be a general-use program; possibly no one besides myself will ever use it. There are some screenshots available, though; and a more detailed explanation of my progress.
I have a few related resources, too. I occasionally write down some thoughts on UI design. There is also a page of papers related to Hypercube, and 3D UI.
Hypercube will be released under the GPL, but at the moment there's not all that much code to show off, plus it's mostly uncommented, and a bit unorganized. When I've got something decent which other people might actually want to see, I'll post a tar.gz file of the code. If you're really interested, feel free to mail me and ask for a copy of the code. I'll be glad to give you a dump of what I have.
If you have suggestions, comments, flames, etc, go ahead and send them to me; I'd like to hear what other people think about this. Statements such as "You're insane!" or "This will never work!" will probably be ignored; I realize how incredibly ambitious this is. If I accomplish even half of this, it won't be for years. Some things which would speed up development, such as using a pre-made 3D engine or joining the 3Dwm team I've considered. However, this is an experiment for me, and a learning experience. I also don't want to spend all my time learning how to use another engine or getting up to speed on someone else's code only to run out of time before school and end up abandoning it. I also want as much control as possible over the code, so I can design it how I want, and add the features I need in the best way possible.


