VR Desktop Replacement
Status: Prototype, Complete
Languages/API's: C++, OpenGL, SDL, FreeType, Java, Swing
This project was developed as my final year project for my BSc in Computer Science in 2005-2006.
To research and develop a replacement to the traditional 2D desktop user interface using visual metaphors within a 3D environment.
Additionally, the project also consists of a traditional GUI application that enables users to build their own custom environments, room and object layouts, inspired by the Build game engine editing tool, but simplified with more intuitive functionality.
The project was developed using C++ and OpenGL on Linux.
The editing tools were developed using Java and Swing after gaining significant experience with these tools during my work placement year at Yokogawa Systems Center Europe B.V..
Although the project did not conclude that this type of VR environment could represent a worthwhile replacement to the traditional 2D desktop, it was valuable in the inspiration of further possible ideas of investigation. The project was successful in both of it's goal as research and as a prototype implementation of the concept, earning a 14/15 final year project grade.
This project also gave me experience in the development of user interfaces, collision detection algorithms in a 3D first-person environment using arbitrary room layouts as well as the integration of a desktop OS user-interface with existing application and thue use of third-party applications to support the solution.
VR Environment Features
Objects to support background application and commands. These applications without exiting the VR (e.g. music player).
Objects to support fullscreen and windowed application. Applications Launched in a seamless manner where the camera zooms to an object when the application is started or restored.
Objects to support file and folder selection from a specific folder. The selected file or subfolder can then be launched in conjunction with an application object (e.g. a CD representing a folder containing an album can be used with a CD player object representing a music player.
Integration with most existing windowed applications. Using a special configuration of Fluxbox and iDesk allows windows to be run at close to fullscreen. Window decoration are removed so the window cannot be resized, and a border is placed around the edge that allows the user to return to the VR environment at any time. This mechanism can also be used for multi-tasking.
VR Editing Tool Features
User can draw rooms, doorways, windows and objects in a top-down plan.
Appearance of walls, floors and ceilings can be customised with different colours and textures.
3D Objects can be placed in rooms and then linked to commands or folders.