Wayland 3D Compositor with Oculus Rift and Razer Hydra [video]
youtube.com
youtube.com
If you doubt it, try setting your monitor to something other than its native resolution and coding for a while using the interpolated resolution. I'm afraid text in floating 3d windows on vr sets is going to look like that for a long time to come.
I'm still going to try, dammit.
Code: https://github.com/evil0sheep/qtwayland-motorcar-compositor
Thesis: https://github.com/evil0sheep/MastersThesis/raw/master/thesi...
Defense Slides: https://docs.google.com/presentation/d/1svgGMxxbfmcHy_KuS5Q9...
I've spent quite a deal of time thinking about how you make a 3D interface actually work for usability, and its interesting to see some of those ideas implemented in this example (allowing 3D views to either pop out in the workspace, or be pushed back into their own world).
I don't want to say "put window A on the lefthand side of the desktop and put window B on the righthand side of the desktop." Instead I want to be able to say "put A to the left of B in when mode X" or "put C on top of D when performing task Y."
It's simply much more natural and more intuitive to tell the computer where your focus should be (or if the focus should be split equally between 2 or more windows), and then defining all the peripheral windows that should appear around the focused window. Ideally these wouldn't even separate windows, but simply a rectangular stream of pixels from the buffers of your choice, so that the same application could be multiplexed to layout modes. This would basically be tmux for windows/apps in 3D space.
A prolog-like declarative language with relations and predicates for describing windows and how they are organized relative to one another under variable conditions would be awesome. Type one command to switch to the window you want to have focus in the center of your screen. Once that window is in place, bring into focus the last used "mode" for that window, with all the peripheral windows coming in from behind you or zooming in from the back (time machine style, but with your primary focused window held constant). Then you can activate switching between modes with another key stroke combination.
What we have here seems like an extrapolation of what we have now, which may prove fruitful if we have nothing else to go off of (and is the nature of incremental progress). If I had many more monitors I'd place a class (or any other abstraction) on every screen, so maybe every class will have its own 2D plane of text and they'll be organized semantically & dynamically in 3D space. Also resolution here needs to be really really high. Idk, just interesting food for thought.
The way I could see it working though (without a significant change in OS UI) is by arranging your 2D desktop across multiple virtual 2D screens in 3D space, ie a bank of monitors angled towards you. You could use a conventional keyboard and mouse to navigate the 2D space (with perhaps mouse movement assisted or replaced by hand/head/eye tracking), and drag windows between screens, set programs to open on certain ones, with full screen clipping to screen edges - all basically as many OSes do already.
But because they're virtual, you could resize, split and merge screens, curve large ones, have ones which float in front of your vision to use for toolbar windows and HUDs. You could even use existing technology like VMs or VNC to use multiple OSes at the same time.
Mount your keyboard and mouse to a swivel chair which tilts, and you could comfortably have a 360 degree working area (assuming you can touch type) 4 or so screens deep, which would put traders' setups to shame (and at a fraction of the price). Throw in some panoramic backgrounds and you can move your office to a forest or a beach. Take it further you could even set up some sort of virtual office, being able to virtually get up from your desk and visit the workspaces of remote-working colleagues and friends to collaborate.
The exciting thing is that none of this is a massive leap from where we are now, and it would map pretty seamlessly to the software and UI we already use. The main thing holding it back would seem to be the resolution of 3D goggles, but with 4k rising, even that can't be too far off.
Shut up and someone take my money already.
http://c2.com/cgi/wiki?JaronLanier
http://www.jaronlanier.com/vpl.html
http://c2.com/cgi/wiki?BounceLanguage
http://www.art.net/~hopkins/Don/lang/bounce/bounce.html
http://www.vrs.org.uk/virtual-reality-profiles/vpl-research....
http://www.nic.funet.fi/index/graphics/misc/siggraph/courses...
https://w2.eff.org/Misc/Publications/John_Perry_Barlow/being...
So you have things which are attached to your head, things which follow position relative to your body, and things which follow your absolute position in the world.
Most people would work in body-space, and maybe have several different overlays they switch between for that.
On top of that, you probably need the concept of the private, shared and public objects in all these spaces - you can interact or allow people into a limited view of your 3D environment.
I think we have to start off by simulating a desk and two fixed size monitors so the user understands the metaphor, nail that experience and then evolve from there.