TITLE: The Time Machine
NAME: Aaron Gage
COUNTRY: USA
EMAIL: agage@csee.usf.edu
WEBPAGE: http://www.csee.usf.edu/~agage
TOPIC: Gadgets & Odd Devices
COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT.
MPGFILE: amgclock.mpg
ZIPFILE: amgclock.zip
RENDERER USED: 
    POV-ray 3.0 for Linux

TOOLS USED: 
    Photoshop, XV, mpeg_encode, Lightwave 5.6 for credits and poster

CREATION TIME: 
    Over 950 hours CPU time; AA thresh of 0.01, with radiosity

HARDWARE USED: 
    i486DX2/66, Pentium Overdrive 83, each with 32MB RAM, Linux OS

ANIMATION DESCRIPTION: 


        Here we see a clock, crafted out of polished metal and mounted in a
wooden frame.  Every hour, a device powered by the clock begins a
familiar journey...but unfortunately, there is a little snag.

DESCRIPTION OF HOW THIS IMAGE WAS CREATED:

        First off, let me mention that the whole "Brain in a Box" idea was a
combination of many things, ranging from Deep Thought from the "Hitchhiker's
Guide the the Galaxy" (which got as far as deducing the existence of income tax
before they managed to switch it off) to my own experience with computers and
AI, such that they usually have to totally reinitialize when they lose power.
Any analogies that anyone makes to humans or to human society are entirely
coincidental :)

        The entire animation was modelled on paper or directly with POV-ray.
This means that all of the gears, once I figured out an accurate clock
mechanism, had to be placed and lined up by hand.  vrotate() helped me position
the gears relative to each other, but I did have to rotate each gear until the
teeth lined up.  This may have been the most time-consuming aspect.

        The pendulum and escapement, which regulate the motion of the entire
clock, move as a function of the animation clock.  Once I figured out how to
get them to work through two seconds of real time, I just set up a
modulus function so that they would repeat.  The length of the pendulum, the
working of the escapement, the gear configuration, and the motion of the gears
are all correct from a physics perspective, though the system might have
too much friction to work in the real world.

        My ultimate goal was to create a complex mechanical device, using
some surface features to make it look like carefully crafted yet imperfect
handiwork.  The fact that the clock itself moves correctly seems to suggest
that the gears are solid (and not just formulas in an overworked 486), which
pretty much makes it all worthwhile for me.

        I left myself one month to render this animation (for a total of over
650 computer hours) but that really wasn't enough, given my two 486-class
machines and the surfaces I used in the animation.  The bounded_by {} keyword
saved me a lot of time, though for the frames that show the Brain doing its
thing, I found an interesting feature in POV-ray.  I am familiar with the
continued trace flag, and have used it before, but with animations, it
turns out that POV-ray will happily continue on every frame, even with the
internal animation loop.  So for a number of frames where the top is unchanging
and the bottom is not, I rendered the top once, interrupted POV-ray,
copied the top half over the entire range that it would be valid, then let
POV-ray fill in the bottom of each one, so that every frame is still unique.
This tactic halved the time it took to do the frames I applied it to.
The total render time was still about a thousand hours, or 44K BogoMip hours.

        As for the tools I used, the texture on the Brain in a Box object was
done in Photoshop (by just randomly dragging color across the window, then
adding a number of filters).  The wallpaper outside the clock was taken from
my Toys animation, but it, too, was originally done in Photoshop.
XV was used for the bump map on the bottom of the pendulum; I used POV-ray to
create a heightfield for the bump map, but in order to make it wrap around
nicely and repeat seamlessly, I decided to crop it in XV.  I also used
XV to convert the movie poster to JPEG.  mpeg_encode, once again, was used to
make the final render, using a frame sequence of IBBPBBI.  I used Lightwave
very sparingly; it was used for the movie poster (since twisting the words
around and coloring the edges differently is very easy in LW), and I used
it to add a copyright notice at the end of the animation.  All of the frames,
even those which Lightwave added to, were first done in POV-ray, so Lightwave
was only used for post-production, and even then only for copyright purposes.

        I regret not being able to use POV-ray 3.1 for this animation, because
no Linux version existed while I was doing my modelling.  I also realize that
there are a few technical errors, mostly since I did not have the CPU time
to go back and redo many frames.  In fact, for about twenty seconds of the
animation, I was unable to see how the frames looked when animated until I
was totally finished.

        The included ZIP file should contain everything I used to create
the animation.  Since this was done in one take, gear.pov describes all 1498
frames.  I found that POV-ray 3.02 for Windows has trouble editing files
longer than 1170 lines, so I made gear2.pov and gear2.inc by cutting gear.pov
into two pieces.  Enjoy!

VIEWING RECOMMENDATIONS: 
    MPEG-1 stream, 320x240, 30 fps, 24 bpp.

