Final Year Projects 97/98

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

In the meantime, if you are interested in finding out more about the proejcts that will be available in the AIG, specifically to do with the Deva system, please e-mail Adrian or Steve first. Click on the project names for a more detailed description









See also, the Yachting simulator Project


Introduction to Projects in VR systems architecture

If you would like any more information about any of these projects, please contact Dr. Adrian West (who will be supervising these projects) or Steve Pettifer (who designed Deva).

Virtual Reality is on the whole a little dull. Demonstrations tend to be simplistic and unimpressive (unless you get excited by three dimensional web pages), the headsets and navigation methods are crude, and the wildly exaggerated claims of what can be achieved today lead first to excitement, but then to disappointment and disillusion when it can't be delivered.

Behind the hype though serious work and interesting things are going on. VR does offer a significant step forward in our way of interacting with computers. The wonder elements aren't really due to new technology though - even at its best its just fast 3D graphics plus movement tracking - the difference and novelty is the paradigm shift at the human end; way's of using human perceptual skills that we haven't been able to engage before in computer interfaces.

You couldn't learn to juggle or ride a bicycle from a screen/keyboard interface, nor can you really get a good feeling for what the inside of a proposed building will really be like - you can look at 3D models on a screen but thats little better than seeing photo's, and its certainly whole orders of magnitude different to being there. VR peripherals of sufficient quality to work well aren't here yet, but they will be, and the potential is clear. In the mean time there are a lot of problems to be addressed.

One thing that will happen medium-term is that we'll move away from the hand coded one-off demonstrations towards full-scale VR systems. These will have many applications running together in the world, and multiple worlds that you can move between, each supporting different kinds of task. The whole thing will need to be dynamic with applications, worlds and users dynamically coming into being and being destroyed, in much the same way that applications and users come and go on a workstation. That means we need something like an operating system to provide the necessary facilities to the application/world builders.

Deva

In the AIG this is an area we have been looking at for several years now, and our current system to address it is called Deva. It's the work of Steve Pettifer who's doing his Ph.D. in this area.

There are several areas that have been identified where final year projects could sensibly contribute to this effort, and these correspond to the project descriptions below. The most recent version of this page, and any updates that get made to project information, can be found at http://socrates.cs.man.ac.uk/~deva/projects.html

REFERENCES:

There are quite a few papers that have been written about work in the group, and a number of final year projects, both past and current that provide useful background. For work in the VR systems area projects, the following are the most relevant.

  • Steve Pettifer's MSc. thesis (1996) describes the Deva Language, but is quite a large document but you can get some feel for the area by scanning through it. It's available online here in various formats, or you can go to the departmental library to look at the real thing.

  • Deva: A coherent operating environment for large scale virtual reality applications is a short paper with a very long title, recently presented by Steve at Virtual Reality Universe 1997 in Santa Clara, USA. It contains a very high level introduction to some of the reasons why we think the Deva system is good.

  • The AVIARY (our earlier system) papers are a good introduction to the overall aims of the work too, they can be found from Adrian's home page.



 
CATEGORY: Virtual Reality
SH or JH: SH
Project Supervisor:ajw
Grading: F

Deva Touchstone - a virtual world manager

You should first read the Introduction to Projects in VR Architecture above

Deva allows worlds, complete with laws (such as gravitation and the associated mass attribute) to be dynamically created. Worlds with similar laws can be derived from them, resulting in a class hierarchy of worlds. These worlds are populated with objects that may have behaviours, and be associated with applications. Movement of objects between worlds with different laws is supported sensibly. In this way applications can find a suitable home, or create one, quite straightforwardly.

It all needs to be very dynamic as we don't want to have to stop the whole system and recompile it in order to add a new object/user/world/law/application etc (like smalltalk, but a VR system can't afford the kind of performance penalty that smalltalk's implementation imposes). That being so, the universe can become a very confusing place: where did the calculator get its idea of gravity from? which laws operate in the current world - where did they come from? what objects exist here today? which world is most appropriate for my cad application? can I take my micrometer with me to relativistic world? - where is relativistic world? how do I get there?.

The project

The Deva Virtual World Manger is a tool to help us keep track of it all, in effect an operators console for Deva. For this project you'd need to get to grips with the way that Deva organises the multiverse and the objects that populate it. Then it is a case of inventing interesting ways of looking at these structures, and interacting with them. There are various toolkits, such as xforms, QT, or TCL/TK available to help you organise the user interface.

In addition to the world management requirements, this tool should really make it easier to interact with a running deva system, for example to query it about the number of processors it's using, which user is connected to which body, in which world, at which workstation etc. There's lots that could be done here too. To take on this project you will need to be good at picking up new things, working with complex ideas and producing a pretty solid implementation. There's plenty of scope for producing something clever here.

EQUIPMENT:

Deva runs on the AIG's Silicon Graphics machines.

 
CATEGORY: Virtual Reality
SH or JH: SH
Supervisor:ajw	
Grading: C

Deva Spaceman - spatial management and collision detection

You should first read the Introduction to Projects in VR Architecture above

Deva runs across multiple processors and has some clever ways of handling the whereabouts of things so that it is transparent to the applications programmer/world architect, yet incurs very little performance overhead.

Though we can ship objects around the processors transparently, a current debate is how best to handle the distribution of "virtual space" between the machines; i.e. who knows what is where in the virtual worlds. This is especially important when we want to be informed when something hits something else. A naive solution could easily destroy performance, so it's important to do it efficiently with minimum to-ing and fro-ing of messages between machines.

There are ideas for how this would be best achieved, and a project this year by Richard Mayer has looked at some methods of doing collision detection. The next step is to take this further and produce a distributed collision detection mechanism for Deva.

The algorithms and modeling of distribution can be developed quite independently of Deva, which makes it easier for a project student to work on them. By the end of the project though they would have to be integrated with the working Deva system.

REFERENCES:

  • Apart from the general deva and group references, you could talk to Richard Mayer (mayerr).

EQUIPMENT:
Deva runs on the groups Silicon Graphics machines.

 
CATEGORY: Virtual Reality
SH or JH: SH
Supervisor:ajw	Grading: C

Deva Sound Bytes - Audio in the virtual world

You should first read the Introduction to Projects in VR Architecture above

It is quite clear that audio plays an important part in the user's sense of presence in a virtual world. We are surrounded by sound most of the time in our real world, and although most virtual reality work has concentrated on producing graphical representations of objects, various experiments have recently shown that we really need audio cues too if we are to feel 'at home'.

Deva currently has no support for sound at all. Although the idea of supporting sound is (rather neatly, actually) supported by Deva's general purpose environment structure, there has been no work done yet on integrating sound into the system.

The low-level driving of sound devices has been achieved with existing projects, and there are sound-related projects under the MAVERIK system, that Deva sits above. So there is plenty of scope for doing interesting things with sound at almost any level; how do users talk to each other? Should they face each other, or just be close to one another? How about inter-world communication? A virtual mobile phone? Part of this project then is to look at appropriate ways of handling the audio attributes of objects at the Deva level, and to provide useful techniques for audio interaction in Deva. It would be useful to construct an appropriate virtual world that helps to demonstrate the audio properties in action.

EQUIPMENT:

Deva runs on the groups Silicon Graphics workstations.


 
CATEGORY: Virtual Reality
SH or JH: SH
Project:	Supervisor:ajw	Grading: UF

Deva Avatars - virtual embodiment

You should first read the Introduction to Projects in VR Architecture above

Avatar is the Sanskrit (ancient Indian) word for the representation of an angel in our real world. It's nowadays used to describe the body representation of a user in a virtual world. Incidentally, the word Deva is also Sanskrit, and means something like 'angel' (even more incidentally, Avatar is also the name of a very good X-files episode).

Deva makes no assumptions about what an avatar should look like. Currently we have little lego(TM)-like men and cameras representing users in deva environments. This is ok to an extent, but there's much to do in this area.

The Project

This project description is fairly general. It could involve investigating the different kinds of avatars that could be useful in different situations, but it could also (and importantly) animating the avatars so that they have a slightly more 'lived in' feel. You might also like to think about how the user experiences their own body; can they see it if they look down? (This opens up a whole new area to do with navigation in virtual worlds, which may also be relevant here). What things is it necessary to animate, and what ways can be provided for people to express themselves and interact? It would also be desirable to allow users to create their own body descriptions, and be able to use those with the animation controls.

EQUIPMENT:

Deva runs on the groups Silicon Graphics workstations.


 

CATEGORY: Virtual Reality
SH or JH: SH
Project:	Supervisor:ajw	Grading: UF

Deva Meta-world - the world of worlds

You should first read the Introduction to Projects in VR Architecture above, and also the Deva Touchstone project above.

One of the many ideas behind the design of deva is that it will provide a ongoing environment for building and interacting with virtual worlds; that is you shouldn't have to reboot the system and throw all the users off every time you want to make a change to the universe (read Vurt by Jeff Noon -- apparently 'jerking out' of virtual reality is a nasty experience).

The Touchstone project is to design something that effectively forms the operator's console to a running deva system. Ideally however, some of the functions available at this console, such as world design and management, should be available within the virtual world itself (and in fact, some may be much better suited to this 3d environment).

The project

You will need to understand Deva's metaverse structure to work with this project. The idea is to build an environment for visualising and interacting with the other environments in the system.

The project can range from constructing a number of different worlds, with different properties, (an escher staircase world as in the picture opposite, would be one nice example) and a higher level world that demonstrates ideas for how to navigate around everything, to a general 3D world in which all environments in the Deva system, and their associated laws and objects can be navigated and manipulated.


EQUIPMENT:

Deva runs on the groups Silicon Graphics workstations.




CATEGORY: Virtual Reality
SH or JH: SH
Project:        Supervisor:ajw  Grading: F

Deva VRML2 parser

You should first read the Introduction to Projects in VR Architecture. VRML2 is fast becoming the defacto standard for describing virtual worlds. Based (not surprisingly) on VRML1, which was a pure geometry description language, VRML2 makes some attempt at describing the dynamics of virtual environments, and allows web browsers equipped with the appropriate plugins to view and interact with simple 3D worlds and their inhabitants on the internet.

Our VR system, Deva, really needs some way of parsing VRML2 world descriptions. Extracting the geometry information from such files should be a fairly simple task, however converting the relatively primitive behavioural information into something that Deva can make use of requires a bit more imagination and thought.

This project will involve you understanding a little about the Deva system, as well as our new VR kernel MAVERIK.




CATEGORY: Virtual Reality
SH or JH: SH
Project:        Supervisor:ajw  Grading: F

Implementation of the Deva language

You should first read the Introduction to Projects in VR Architecture above. The Deva system is based on a design philosophy and language described in Deva: Beyond the metaphysics of virtual reality by Steve Pettifer.

Although a prototype compiler was built during that research, it is far from being a fully working model and there is much work to do on it if it is to be succesfully integrated with the rest of the Deva system.

The language is object orientated, and resembles SmallTalk80 in many ways. Taking on this project could involve many things, ranging from implementing a 'translator' for the existing language into C++ which can be executed by the Deva operating system to redesigning the language en toto if you find better ways of describing virtual environments.

To take on this language you should have some experience of using compiler tools such as lex and yacc, and should preferably know something about object orientated programming too. A knowledege of C++ would be helpful but not essential.


Here is one project not related to VR architecture, but its one Adrian is keen to see attempted anyway.

 
CATEGORY: simultation
SH or JH: JH or SH
Project:	Supervisor:ajw	Grading: F

yacht navigation simulation

There are quite a lot of intersting things associated with yacht navigation - tides, winds, leeway, drift, compass deviation and magnetic correction, points of sail, and so forth, and it takes quite a bit of practice to become confident in navigation. It would be very useful to make a tool that lets you practice these things, without actually getting wet. For example, you could make a 2D map, with a simulated yacht on it. Use some real tidal tables etc to simulate the real environment, and to let people navigate it around. There are commercial products that let you practice yacht navigation, but it's always nicer to write your own - then you have a lot more control over how it works.

To write such a thing you need some sort of graphics package. Tools such as TCL/TK look quite promissing for this as they give you quite high level access to graphics features.

Equipment:

Any workstations that support the appropriate tools. - e.g. suns.

Adrian's home page