What else does this fool do ?
Over the years, I've found much amusement in building and making
things, which is what an engineer at the end of the day
does. I usually enjoy these little projects. Some of them have
been for subjects I have done, others I have done for interest,
and others simply to avoid having to face working on my PhD.
Undergraduate projects
These are projects that I did as an undergrad - mostly for
academic reasons.
Hermes
Hermes was an attempt to design a MIPS R3000-like chip, for the
subject Computer
Organisation and Design. We worked in a group of 12, and
while I cannot say it worked completely (some of the I/O and
caching was pretty dodgy), but we actually got a small program
running (we got it to compute 16 factorial).
Da Bandwidth Booking System (DBBS)
For Software
Engineering we had to design a booking system using a formal
specification tool known as "Z". We went off on a tangent a
little with this one. We decided to stuff the existing booking
system and designed our own. As an example implementation, we
had "Arnie on Rollerblades" (don't ask).
SHANN (Scalable Hardware Architecture for Neural
Networks)
For VLSI Systems
Architecture and Design we were given a choice of something
to specify in the local hardware description language (Modal)
and then implement using the local layout tools (ingred, jigsaw,
etc.) So we decided to see how far we could get implementing
neural nets. We got the Modal specification up and running, with
4 neurons, but it was too much to design in the VLSI. So we
completed most of the VLSI design, but putting it together was
very tricky and it basically didn't work. Oh well.
UBIWEX (Unix Basic with Extensions for Xwindows)
For Object-oriented
systems development we chose to implement a basic
interpreter, a la Visual Basic for Unix. We did not get that far
in terms of implementing enough of the system for it to be
useful, i.e. we implemented while, for, if, text, beep, line,
point, but that was about it, but we got the underlying types
such as the parser working and talking to each other, and the
only reason we did not include those features was a lack of
time.
Ray Tracer
I wrote a simple ray-tracer for Computer
Graphics. Compared to what you can buy these days, it's
nothing, but it was fun writing anyway - to my surprise, I spent
hours tweaking input files trying to generate images. You can
see some results in my personal art
gallery.
Gloves
The biggest project of all: my thesis. This involved writing code for
PowerGloves, and messing around with Iris GL (the precursor to
OpenGL, a common, high-end graphics programming interface. It
also involved hacking Perl, learning LaTeX and half a dozen
miscellaneous skills.
Postgraduate
This isn't so much projects I've done for my PhD as done to
get away from it.
Botworld
For Artificial
Intelligence, we had to write a program in Prolog that
would grab bars and assemble them into a diamond shape. This
proved to be a lot of fun, especially once we got multiple bots
working together to build it.
CaMeL
CaMeL was intended to be an interface design for a distance
education program, done for Human-Computer
Interaction, a subject, which to be honest, I didn't really
enjoy, because it really was too soft, didn't give you enough to
do anything really useful with.
RoboGlove

RoboGlove was an attempt to connect a robot arm to
the PowerGlove. The robot arm used was Scorbot, a robot arm
meant for teaching. What would happen is you would wear the
PowerGlove and as you moved the glove, the robot would mirror
your actions. Some people around the lab became quite adept at
it, one person building a bridge from some blocks that we had
left lying around.
Clive
Clive is a robot that I've been building, with a lot of help
from Phil
Preston in the time I'm supposed to be spending on my
PhD.
Clive runs on some remaindered rechargeable batteries, and
consists of a number of levels. The levels are made from light
perspex, hand cut and shaped for this robot. The first level
houses batteries, a Tamiya
dual-motor gearbox, and the antennae. The antennae are bend
sensors that are most frequently used in the PowerGloves I
used for my PhD (no I did not pull apart a PowerGlove
to get at them).
The next level up houses a 6.270 board (based on the 68HC11
microcontroller) that runs a version of the C language. Also, the
charging ports for the batteries are on this level.
Clive is currently undergoing major surgery. He should be up
and zooming 'round the lab again soon. When he was
operational, he was one of the faster mobile robots.
Disassembly
Whenever Phil
has some item that is no longer useful, has ended its career,
shuffled off this mortal coil or decided to give up the ghost,
he walks over to my desk, gives me a big grin and says, "I
have some equipment that doesn't work. Would you like to
dispose of it?" He does not mean take it out to the trash. He
means disassemble with extreme prejudice.
So I pull the thing to pieces, find out if there's anything
reusable in it and put it in our junk box.
This proves to be very therapeutic, especially if you want to
do a proper job and not just smash the damn thing to
pieces. It's also a great way to learn how things work. So
far, I've disassembled:
- An Apple scanner (had some really nice optics, and a
linear CCD).
- An old HP plotter (had some nice motors, very primitive
electronics).
- A hard disk (beautiful to look at, really intricate
device).
- A tape drive.
Several people have suggested I have a knack for it. In fact
some have accused me of prematurely disassembling things ... but
there's no truth at all in that story.
waleed@cse.unsw.edu.au
Last modified: Thu Apr 16 20:33:26 EST