Final Year Projects 00/01

These pages describe the 3rd year projects that were on offer to students in their final year in the academic year 2000/2001.

MAVERIK 3D widgets

Project: 253 Supervisor: AJW/SRP Categories: SH=U, BM=C, CM=U

Widget sets in 2D desktop environments provide a collection of 'controls' for interacting with applications: sliders, input boxes, canvases, buttons, dials. Using a three dimensional virtual environment there's often call for similar functionality. If what you have is a 'desktop' environment where you are viewing the 3d world through a browser window, then the normal functionality of the 2d desktop is available to you. If you are inhabiting the world using a more sophisticated setup; perhaps a head mounted display, or a 'CAVE' environment (a whole room with the 3d world projected on all the walls) then there is no keyboard or mouse for you to use; any interaction must be done within the 3d world.

Some of that interaction occurs naturally with the objects that exist within the environment. So for example, the 'natural' way to move an object from one place to another is to 'pick it up' using some kind of interaction device. For other less physical interactions though, there is still often a need for some kind of 'widget set' to manipulate factors of the environment (e.g. a button to activate a transporter, a slider control to change the light level in the world).

This project involves using our MAVERIK virtual reality system to construct such a setup; a collection of three-dimensional widgets that can be used in interesting ways. The project could start by implementing 3D versions of the obvious 2D widgets (there will always be a need for sliders and buttons) and then continue to investigate more exotic forms of interaction with the environment; for example gesture based widgets or those that require two-handed interaction. The AIG lab is equipped with 2D and 3D input devices, and MAVERIK deals with much of the low level interaction with these, leaving the more interesting work of designing the widgets and interaction metaphors up to you.

REFERENCES: aig web pages
COURSE PREREQUISITES: Graphics would be very helpful (CS2072)

DEVA programmers tools

Project: 254 Supervisor: AJW/SRP Categories: SH=U, CM=C

The Deva VR system provides a novel object orientated environment for writing virtual reality applications. Rather than dealing with the issues of rendering and spatial management, Deva provides services for describing how objects behave in a three dimensional environment that can be shared by multiple users distributed around the network.

Deva's programming paradigm is a variant of the traditional class-based-inheritance style of programming used in many other object orientated languages such as Java, C++ and SmallTalk. It adds a novel twist of combining two inheritance hierarchies at run-time; one for the features of the objects, and another for the features of the three-dimensional environment that the objects exist in. The components of both these hierarchies can be dynamically changed at run time too.

As with all programming environments/languages, much of the hard work of writing anything at all is done by a set of default classes (libraries etc). Part of the trick of writing programs is knowing what functionality is provided by which class. In Deva the situation is a bit more interesting since not only could these functions be changed at runtime, but some of the functionality that an object appears to have actually comes from its existence in a particular world (e.g. our world 'gives' all its contents a 'mass' and a 'force of gravity').

This project is involves writing a tool that will interact with a running Deva system, allowing users to view the environment and its content, and to understand the logical relationship between its components. What features does this object have? Does the object have these functions itself or did they come from its environment? What would happen to the object if it was taken to a new world? (what would happen to my squash-court game if I took it to a world with no gravity or mass?).

The basic implementation of such a tool will involve building an application using the GTK toolkit, which provides sophisticated Graphical-User-Interface building facilities. There is an application called Glade that takes much of the pain out of assembling such tools. The tool will interface with a running Deva VR system, so you'll get to know the innards of the virtual reality side of things too.

REFERENCES: aig web pages

Navigation and Selection techniques

Project: 255 Supervisor: AJW/SRP Categories: SH=U, CM=U

Using our MAVERIK VR system we've experimented with a number of different techniques for moving around virtual environments and for selecting and manipulating objects inside them. Some types of navigation work better for some times of task (for example, the combination of mouse and keyboard in Quake style games seems to work very nicely for shooting bad guys, but is less appropriate for, say finding your way around a maze). This project is about implementing and experimenting with different navigation and selection metaphors for interaction with a virtual environment. For example, in some cases it might be best to emulate a 'body' type movement (much like Lara Croft in Tomb Raider) with 'look around', 'side step', 'walk', 'run' and so on. In other cases a 'point and fly' type navigation might be more appropriate where you select your destination point and the system takes you there automatically. In other situations you might want to 'drive' or 'levitate' and so on, depending on the application to hand. Similarly with selecting objects... sometimes its important to force the user to 'pick up' an object in their 'hand', other times action at a distance is much more appropriate.

In this project you will get to know the MAVERIK and perhaps Deva VR systems. There is a good background of existing techniques to get you going, and plenty of scope for innovative new techniques too, with a clear path to 'validating' these methods with users. Although graphics project are initially appealing, you should be aware that a lot of effort can be required to achieve good results - you should probably have done CS2072 so that you have some idea of this.

REFERENCES: aig web pages

Kahun City

Project: 256 Supervisor: AJW/SRP Categories: SH=C

Working in conjunction with researchers from the Manchester Metropolitan University, we have been building educational virtual environments based on an Egyptian theme. Our first environment of this kind build using Deva and Maverik has been a game called 'Senet' designed for two children and a teacher to play in a distributed VR system. The game is based in a part of 'Kahun', a model of an ancient egyptian town.

The project uses Manchester Museum Education Service as an examplar. Several pototypes collaborative virtual learning environment based around Kahun. The idea is that various artefacts recovered from the site will be placed in an authentic environment of the town of Kahun. Such environment will allow users to be themselves represented in the virtual environment as avatars. In this way children and teachers can collaborate in the shared environment to learn about the use of everyday artefacts from the museum's collection.

This project is about extending the model to include other activities of an educational nature that can help children learn about the land of the pharoes, and can also help us as virtual reality researchers learn about the requirements placed on virtual reality systems under these circumstances. The work will involve building interactive artefacts such as water carriers and brick moulders, and walkthroughs of various parts of the city.

Prototypes of some of the artefacts have already been built using VRML and Shockwave. This project begins by investigating their implementation in a real collaborative virtual reality system.

REFERENCES: See for images and further details, and also the aig web pages

Undersea Operations 2

Project: 257 Supervisor: AJW/SRP Categories: SH=U, CM=U

Simulating under sea diving is interesting because the nature of navigation and the operations that can be performed are unusual. It is particularly interesting if we try to make cooperative activities possible between divers. Some helpful components exist to assist with this. A previous project supervised by Alan Murta created a highly detailed undersea backdrop using openGL. A recent project by Mark Tregonning has studied two divers manipulating a piece of pipe lowered from an overhead crane. These are quite tantalising projects as it is clear that a lot more can be done with them.

This project aims to take the undersea diving simulation further. Particular directions include accounting for buoyancy and other forces acting upon the diver, developing the scope for shared activity (which is itself a novel direction), and facilitating the simulation of real sites such as wrecks.

The AIG's Maverik system provides a good basis for such work, and allows it to be integrated with other activities in the group. Maverik has been used successfully as the basis of several final year projects in recent years, and is a novel approach to challenges in computer graphics.

REFERENCES: See the groups web pages. These describe maverik, and have clips of the undersea environment in the gallery.
EQUIPMENT: Linux PC's, preferably with 3D acceleration.

VR Network Administration

Project: 258 Supervisor: AJW/SRP Categories: SH=F, BM=F, CM=F

Administering a network of workstations can be quite difficult simply in terms of keeping track of their status. Disks get full, machines go down, daemons stop running, hackers compromise the system and so on. One approach is to provide facilities to monitor such things, and provide textual reports of overall and individual status. (for example, see the "monitor central" facility within the group used for managing and collating backup and automatic upgrade of our machines. Though text and facilities such as email are helpful in many ways, they do not quite provide the ready "at a glance" synoptic overview of what is going on. For this a 3D representation might be best. For example, a well know example is the "File System Navigator" by silicon graphics which shows a directory tree laid out in 3D as towers, the hights and colours of which show the size and age of files. It is very easy to navigate around this and see where all the files are, where the large files are and so on. This is better than text tools in that in addition to tracking down detail, you can take in the whole situation more easily.

This project will build a facility to display the states of networked computers in an interactive, 3D world. For example, you could place a representation of each machine in the world, and use different aspects of the representation to show particular aspects of its status. Important events (such as machines crashing or running out of disk) should have some way of drawing attention to them.

The graphical environment for the project should be constructed using Maverik, which is a flexible tools for programming virtual environmnets.

REFERENCES: see the AIG web pages for background information on Maverik.

Web based planomatic

Project: 512 Supervisor: AJW/SRP Categories: SH=F, BM=F, CM=F

Planning any kind of project takes a fair amount of experience. It's often difficult enough to decide what the issues involved are, and more difficult still to arrange these in any kind of order, timewise or prioritywise. Sticking to the plan and ammending it once you've made it also takes a lot of practice. Doing this for a whole group of people working together on a project makes the whole thing yet more tricky still.

In corporate situations a 'grand plan' is often handed down from on high, and it is up to the individual employees to work with that. In research situations it is rather different, since absolute goals are not necessarily known in advance. Getting the right balance between defining meaningful set of milestones and restricting the work so much as to eliminate creativity is quite an art. Many of the planning tools available are rather prescriptive about their way of planning, and assume a rigid structure that we've found incompatible with our research methods. On the other hand, trying to keep a plan together without some kind of tool seems difficult.

This project is about building a tool that would help a group of researchers build a plan of work, and monitor their progress against that plan. The idea is that it is web based, allowing access from anywhere in the world that has web access. Users can add 'projects' and 'goals', 'milestones' and 'events' to the system, and can view 'at a glance' timelines, to-do lists and so on. There is also scope for synchronising the system with personal digital assistants such as the Palm Pilot or the Psion Organiser.

Skills: programming skills, either experience or ability to pick up a language such as C, Perl or Python. Basic knowledge of html.

Adrian's home page