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
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
COURSE PREREQUISITES: CS2072.
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
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
COURSE PREREQUISITES: CS2072
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.
COURSE PREREQUISITES: CS2072.
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.
COURSE PREREQUISITES: CS2072.
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
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