Stuart Golodetz - DPhil-Related Work

About Me

Having studied for a BA in Computer Science at Oxford University, I have subsequently stayed to pursue a doctorate (the aim is to creep up on it unawares...). This site is intended to document my past and current research.

Current Work

At present, I am working on the computer modelling of hair. Modelling short hair is a problem which has been fairly well researched, although more remains to be done. Testament to this are the fur effects in many modern animated films. The modelling of long hair, on the other hand, is particularly difficult and remains a research problem. It is to this latter problem that my efforts are being devoted.

My first approach modelled hairs as splines, and collisions between hairs as collisions between bounding chains of cylinders fitted to the splines. The head was modelled as an ellipsoid. Anyone who's interested in the details may wish to browse through the half-finished paper below or the slides of the talk I gave about it to the Spatial Reasoning Group. It's worth bearing in mind, however, that whilst some of it's quite interesting, the overall approach doesn't work terribly well (if it had done, it wouldn't have been my "first" approach). Aspects of the paper are also somewhat inaccurate (it was a work in progress). Caveat lector.

My new approach is far simpler, but more effective (as it should be, in other words). It models hairs as chains of points (but renders them as splines), doesn't bother with inter-hair collisions (you can't see them anyway) and focuses instead on the dynamic simulation of the hair. It looks better and runs an order of magnitude faster. I'm pleased with it :) It's still not fast enough (although it does run in real-time), or realistic enough, but it's a lot better than it was before. The method I'm using generalises to allow me to create hairy meshes. In particular, I have simulated a long-haired penguin using this technique.

The ultimate goal of my research this year is to port the existing Java code base to C++ for use in a version which will run on the new Cell BE processor (the one Sony are using in the PlayStation 3). The idea is to enter an IBM-run competition and thereby make some use of the work I've been doing. If I have time, I would like to add a vehicle for the penguin to move about in. Due to a slight humour bypass, I am labouring under the delusion that making the penguin look like Bodicea riding along in a chariot would be funny...try not to disabuse me of the notion :)


Hair flowing in the wind
Beryl the long-haired penguin in windy conditions
Our heroine in slightly calmer conditions
Beryl and her collision mesh


The Beryl model is based completely on a tutorial from Blender 3D: Noob to Pro on Wikibooks. (I make no pretense of being any good at modelling. In fact, I'm using a penguin specifically because there was a tutorial for that.)

Future Work

In a monumental change of tack, I'm hoping I can switch to doing something more serious for the rest of my DPhil. Specifically, I'm interested in doing geometric modelling work on kidney cancer. Whether or not working specifically on kidney cancer (as opposed to working on other types of cancer or doing heart modelling) will be possible remains to be seen at present. It's something I really want to do, though.


As a DPhil student, I have written very little of import. Readers are, however, welcome to look through the various things I've written in case any of it's at all useful. My project report from last year has fairly useful sections on BSP trees and how to do CSG with convex objects, among other things.

A 3D Map Editor (Undergraduate Project Report)

Modelling Hair Collisions Using Spline-Based Cylinder Chains (inaccurate)

Modelling Long Hair Using Spline-Based Cylinder Trees (accurate but out-of-date)

Parallelized Real-Time Dynamic Simulation of Long Hair over Arbitrary Meshes (accurate and up-to-date)

Hair Modelling and Beyond (Transfer Report - work in progress)