navi_wide_blnk

Time Lines: Segment Recreation

Last update: July 12, 2024

In July of 2024 I decided to try using Houdini to recreate a segment of wire-frame animation from "Time Lines", a 2½ minute film I made way back in 1981.

The animation was made at Simon Fraser University using an Evans & Sutherland Picture System II, front-ended by a DEC PDP-11.

I had access to the system thanks to an after-hours course titled, "Art & Computers", that was established and taught by Jerry Barenholtz.

It was my first hands-on experience with computers, but the keyframe animation software, "GRAX", (written by Jerry) was relatively simple to learn.

The film was made by recording one frame at a time with a 16mm camera pointed at a B&W high-resolution monitor, and controlled by the PDP-11. Years later, the film was (poorly) transferred to ¾ tape, and years after that, digitized as a .mov file.


Here's the 29 second excerpt from the movie that I planned to recreate in Houdini. (The music is by John S. Gray).

source: 640x480 with audio

The animation of the 3x3 array of squares is just a linear interpolation between 8 keyframes positioned in 3D space.

The first step was to match Houdini's camera position and focal length to the camera used in the old animation. This was done by trial and error while translating and rotating the array of squares to match the keyframe positions in the original animation.


comp_keys_B.jpg

New (white) keyframes over old (blue)

Eventually, I got everything to match, (close enough, anyway).

The last step was to render the linear interpolation between the new keyframes using the frame durations from the old animation.

It looked good.

source: 640x480 no audio

Except... except...

The animations weren't really matching up, and what happened to those nice bendy, curvy sections present in the old animation?

source: 640x480 no audio

WTF! It's just a simple linear interpolation between keyframes! Right?


It drove me crazy, and I spent a couple of days trying all kinds of things like; using various interpolation types, giving each x, y, and z transformation it's own interpolation method, re-building the geometry, etc.

Finally, I noticed something.

In the new animation, when an element travels from the foreground to the background, it appears to move faster when close to the camera, and slower when far from the camera.

This was the correct behaviour I've come to expect from years of making 3D animations.

step_new.jpg

However, the old animation was doing something different, and not behaving like that at all. It looked as if it's interpolation steps were of equal distance... in screen space.

step_old.jpg

SCREEN SPACE?

Perhaps the Evans & Sutherland system I used in 1981 was converting all the 3D keyframes to 2D screen space BEFORE doing the animated interpolation.

This would make sense. Since it was a real-time system, a short-cut like that would definitely speed things up.

So, to test the idea, I needed to convert the geometry elements from their 3D keyframe positions to 2D screen space.

There are probably many ways to do it, but I went with this snippet of VEX code, (posted on the Houdini forums by "BabaJ"), to add normals pointing to the camera at each point in the geometry...

    matrix Op_Matrix;
    Op_Matrix = optransform('op:../../cam1/');
    @N = (Op_Matrix * (@P - @P)) - @P;
    

Then, I used a Ray SOP to project the points onto a plane placed in front of the camera...

source: 960x480 no audio

It worked! The linear interpolation between the new keyframes located in screen space matched the old animation.

Yeah!

source: 640x480 no audio

BTW, the "jitter" visible in the old animation is due to it being output at 24 fps. The new animation is rendered and output at 30fps.


And now, for your viewing pleasure, the 2024 digital remaster of an excerpt from the 1981 film "Time Lines"...

source: 960x480 with audio


The experience made me wonder if the default behaviour of the Evans & Sutherland PS II was to convert everything to 2D screen space before animating the geometry.

But, the little research I did confirmed that these systems were powerful and would have no difficulty displaying and animating geometry in 2D or 3D space.

In fact, according to "DG", a friend who recently scanned an archived copy of the reference manual, "... it looks like it had 3D matrix multiplication and perspective calculation in hardware, so it would have been able to animate lines in 3D easily".

So, I've come to the conclusion that the "GRAX" software did the conversion to 2D space before interpolating, or it activated an option for the E&S system to function that way.

Either way, it may not have been accurate for 3D motion, but one positive side-effect was the way the geometry curved as it moved between keyframes. I kinda liked that.


Another positive side-effect of converting everything to screen space beforehand is that all the lines (tubes) could be set to the same width before rendering with Houdini.

I've done 3D wireframe animations in the past where the thickness of lines (tubes) had to be increased as they moved away from the camera. I didn't miss having to do that again.


And finally, it's hard to accept (for me, anyway) that the gnarly ¾" recording of that 29 second excerpt from "Time Lines" is all that remains of the original 2½ minute film.

Damn it!