Final Year Projects 99/00

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

As the old project book does not exist anymore on the departmental pages, I need to retrieve them from my own notes and put them here. For now here are the titles of last years projects. I'll put the specs and links in shortly.



Introduction to the "Editor" projects

This is one of three projects is about building a new and novel editor for three dimensional objects and scenes. You should look at the Model Editor Objects (263) and the Model Editor Functions (264) projects as well.

Although there are quite a few 3D editors available today (ranging from very expensive ones packaged with commercial rendering and animation packages to free ones available on the internet), they all tend to be aimed at the production of models that are static or are intended for animation purposes. Virtual environments have more flexible requirements, and thus suggest a different approach.

This project and its two companion projects examine how an editor for virtual environments may be different to an editor for "Toy-story" or "Bug's life" type animations.

The intention is to produce a high quality editor that can later be distributed as part of the MAVERIK and Deva VR systems, perhaps with extensions to allow multiple users to edit objects simultaneously or directly within an immersive virtual environment.


3D Editor - Core

Project: 262 Supervisor: AJW (Dr Steve Pettifer) Categories: SH=C

This project looks at the core functionality of such an editor. Existing editors tend to work on an object hierarchy, so that the various components of a model are either free floating and not connected to anything or form a tree-like graph. For many applications, and in particular those where you know exactly how the model is to be manipulated after it has been built, explicitly building a scene-graph into a model works fine (for example, if you are modelling a human that is later to be made to walk, then setting hierarchical relationships between the joints and bones is entirely appropriate).

In a virtual environment, where the ability to interact with objects in natural ways is important, you may not know how objects are to be manipulated in advance. In such an environment the fixed view of how an object is composed implied by a scene graph makes scene-graph based modelling unnecessarily cumbersome. A new approach is required with flexible ways of describing the relationships between components of a model that can be manipulated by a user in a virtual environment.

The aim is to produce an editor in which objects can be composited together using a new and more flexible metaphor for the relationships between components. The project will involve using our MAVERIK VR system to represent the 3d models being constructed, and will also use a graphical user interface kit such as xforms or gtk+.

REFERENCES: the AIG pages
COURSE PREREQUISITES: CS2072.
EQUIPMENT: the AIG laboratory or own Linux PC.

3D Editor - objects

Project: 263 Supervisor: AJW (Dr Steve Pettifer) Categories: SH=U, CM=U

This project provides an important capability for the editor - the module for cleanly and flexibly combining different types of objects within it. Traditionally, 3D editors work on a polygonal basis, converting all manner of shapes into a complex "soup" of polygons which can then be manipulated into the appropriate shape. This might be fine for rendering animated sequences (such as Toy-story) or still images, but when the realtime constraints of Virtual Reality are imposed, often the kind of objects produced by these techniques are too unwieldy.

There is therefore a requirement for taking objects that have been constructed in the editor and producing single representations for these objects. A number of approaches are possible, but the end result is that the editor will be able to pass a collection of objects to this system, and a single, simplified and combined object will be returned.

REFERENCES: the AIG pages
COURSE PREREQUISITES: CS2072
EQUIPMENT: the AIG laboratory or own Linux PC.

3D Editor - functions

Project: 264 Supervisor: AJW (Dr Steve Pettifer) Categories: SH=U, CM=U

This project provides interesting functionality to the editor. It looks at techniques for manipulating the objects in the virtual environment in interesting ways. Beginning with basic manipulations such as "scale", "stretch", "extrude" and so on, it will progress to more sophisticated operations such as "treat all points as though they are paper being blown by a hurricane", or "morph between these two shapes", or "melt this object".

The project will involve using our MAVERIK VR system to represent the 3d models being constructed, and will also use a graphical user interface kit such as xforms or gtk+.

REFERENCES: the AIG pages
COURSE PREREQUISITES: delete if none.
EQUIPMENT: the AIG laboratory or own Linux PC.

Deva Cluster Manager

Project: 259 Supervisor: AJW (Dr Steve Pettifer) Categories: SH=F, BM=F, CM=F

This project is about the administration of a distributed virtual reality operating system, and the array of pcs on which it runs.

The EPSRC have recently funded a research project investigating behaviour in large networked virtual environments. The project is based around our Deva and MAVERIK VR systems, and over the 3 years of the project we will build a 16 node parallel processor and 12 client stations using PC technology to investigate this area. When the Deva lab is up and running, there will be a network of 32 processors in various configurations running our experimental software. This project is about software for managing and administering those machines.

The task is to design and build a set of software tools that allows the configuration of the Deva server (the 16 processor parallel machine) and its clients (the other 12 machines) to be modified and managed sensibly. There are at least three components associated with the cluster management that can be examined in this project.

The Booking system

Deva has a very flexible architecture, and the number of processors dedicated to running the parallel server and its clients can be varied. For example, the server can be configured to run as 1 large process over 16 nodes, or 4 smaller servers each with 4 nodes, or indeed any combination you might like to think of. A running Deva system would allocate resources dynamically as participents, worlds and applications join and leave the system. For experimental use and development however it is more convenient to dedicate processors in the cluster to specific users. Additionally, each of the client viewer processes are reasonably powerful 3D graphics stations in their own right, and we want to be able to make these available to researchers and students for general VR work whilst we're not doing specific experiments.

So one requirement of the management system is for users to book dedicated access to the cluster, according to various rules (for example, 3rd Year Project students may be allocated slots of a certain length during the afternoons, with postgraduates being given slots in the mornings). Bookings are to be made electronically via the web or email.

Software distribution and administration

This will involve building various graphical tools to visualise and configure the network and setup of the machines (for example, to install a new version of software on each of the nodes, or to examine lists of users).

Process management

Starting, stopping and reconfiguring the processes that exist and form the Virtual Reality system.

The project will involve understanding the architecture of the Deva VR system, and using C, C++ and Unix tools, as well as the GTK+ graphical-user-interface library.

REFERENCES: the AIG pages
EQUIPMENT: AIG Laboratory, or own Linux PC.

Deva Keyframe Animator

Project: 265 Supervisor: AJW (Dr Steve Pettifer) Categories: SH=U, CM=U

Virtual Environments are often rather dull places to visit, since many of the objects in them are static, or have limited behaviour or response to stimulus. Part of the reason for this is that the tools that allow you to specify any kind of movement in a virtual environment usually involve a laborious process, often involving the attaching of scripts written in simple programming languages to objects that are activated by the user.

In animation packages, objects are often moved around not by fragments of code, but by drawing curves that describe the changes to various attributes over time (these are sometimes called "envelopes"). Alternatively, "keyframe" animation is used, where an object is positioned as required at a certain position in time and space and a "snapshot" of the scene is taken. The object is then moved to its next required position, and another "snapshot" taken, with the computer then working out what manipulations are necessary to move between the two keyframes.

This project is about building a similar toolkit for specifying the behaviour of objects in a real-time virtual environment. You will be using our MAVERIK VR system, a library of functions for manipulating curves (written as two previous 3rd year projects by James Marsh and James Greenstreet), and some kind of Graphical User Interface construction kit such as xforms or gtk+.

REFERENCES: the AIG pages
COURSE PREREQUISITES: CS2072.
EQUIPMENT: the AIG laboratory or own Linux PC.

Deformable Shapes using Maverik

Project: 261 Supervisor: AJW (Dr Steve Pettifer) Categories: SH=C, CM=C

This project is about making smoothly deformable shapes in a virtual environment. Animation in virtual environments is usually based around a set of rigid objects that can be moved in various ways relative to one another. For example, in order to animate a moving arm, you would usually have a number of solid arm-parts with "hinges" at the wrist, elbow and shoulder. For many situations this kind of animation is adequate, but it is a rather simplified and restricted model. In the example of the arm, what is really going on in our own bodies is that a set of muscles and bones are changing their shape, and our skin is being stretched and twisted to cover that shape.

This project is about modelling those kinds of natural and smooth movements in real time in a virtual environment. In animation packages such as Lightwave or 3Dstudio, a technique sometimes called "bones" is used to achieve this, where a 'skeleton' is used to affect the distortion applied to a 'skin'. The techniques is not restricted just to building models of people though, and can be applied anywhere that a natural bending or distortion of models is required.

The project is based on the Advanced Interfaces Group's MAVERIK VR system.

REFERENCES: the AIG pages
COURSE PREREQUISITES: CS2072
EQUIPMENT: The AIG laboratory, or own Linux PC.

Undersea Diving Operations

Project: own Supervisor: AJW Categories: F

A simulation of undersea diving operation using Maverik. The novel challence in this project is put multiple users into the same world - one workstation per user - and investitgate the having the two divers cooperate on the task of laying a pipeline. Mark Treggoning elected to do this project, and the results can be seen here.

VR Supermarket

Project: own Supervisor: AJW Categories: BM=F

This is a project devised by Siobhan Agnew, who is doing a joint honours CS and Business management degree.

The idea is to generate a VR version of a supermarket, complete with shelves, products, shopping carts and checkouts. These can be rearranged and re-sited to experiment with the look of different layouts for the store.

Time permitting, it will be interesting to experiment with populating the supermarket with virtual people, programmed with different shopping habits and patterns of behaviour to see if realistic overall patterns of activity, influenced by the placement of goods, can be observed.


Adrian's home page