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