When I was a grad student in Math at Wesleyan U. I hung around the Computing Center a fair amount. That was my hobby. Not hanging out - being a computer heavy. Not a hacker, because there was no internet in those days and we weren't interested in messing things up. We wanted to make fun stuff work.
The computer was a Dec System 10, or PDP-10, and had a lot of guts, a lot of power, for those days. It handled about 12 simultaneous video terminals, plus a lot of University business software at the same time. Unfortunately at the time these were "dumb" computer terminals: you could only type on them. No graphics at all. White on black background.
One part of the interesting "guts" was a, for then, very unusual, new, CRT. A tube you could draw pictures on. If, and only if, you had the time, energy, and know-how, to figure out how.
I'd had a smaller version of that type of CRT when I'd been an undergrad, at The U. of Rochester Cyclotron Lab. I was the chief programmer of the PDP-8, a tiny computer by today's standards, but $25,000 back then. I drew a valentine on it for Valentine's Day, with an arrow through it, for my girlfriend. She was impressed. I drew other things on it, about what happened when the Cyclotron Accelerator smashed atoms. For pay, for the physicists. Physics, you know.
Alex was one of the three undergrad computer whiz kids that I hung around with at Wesleyan - whom I sometimes helped out. When we weren't doing our own thing, swapping software information and reading technical computer magazines by the foot high stack, literally. Or making our own pictures on the CRT. Fun stuff. My program drew the Game of Life, on a Klein Bottle.
Alex had this really neat idea: Suppose you could make a picture of a Coke bottle, with "Coke" written on it, of course, and smoothly change that into a picture of Africa, with, what else, "Africa" written on it? So he asked me: "Woody, how can I do it mathematically?".
Easy, I said. The two pictures consist of a list of points in X and Y. Pair off the points some reasonable way, between the two pictures. Say Coke( X1 , Y1) in the first point of the Coke picture, and Africa(X1 , Y1) is the first point in Africa. Now over a series of time steps, say 5 seconds, you change Coke to Africa. Make a line in the plane between those two points, and divide it up into 5 * 60 = 300 even steps, because the computer redraws the picture from whatever points you give it every 60th of a second. Then for each 1/60th of a second, you move 1/300th of the way along that line between the Coke point and the Africa point. Viola! Five seconds later, Coke has become Africa.
Then I went out and drew him another picture to include in the set, of a girl on a Mossberg bicycle, with, of course, Mossberg on her t-shirt. About 8 other people in the computing center came up with their pictures, too. The next problem was that a lot of the pictures, including mine, had a lot of points in one area or another, and the computer was drawing them too brightly compared to the rest.
There were places where the "line" wasn't lit, like after the computer drew the "C" in Coke, it wasn't supposed to make a line to the "o". That way, it put about a hundred points in the C, 20 in the "o", and didn't have points to draw in between. But Miss Mossberg had eyelashes, with a lot of lines in them that the computer was supposed to draw in. That made too many points, hence too much light for that part of the picture. What to do? Answer: compute the length of a line that is drawn through all the illuminated points. Spread the points evenly along that line. Then there are only a fixed number of points per drawing, say 500, and everything works fine.
Alex arranged to make a movie of the completed display on the computer. It was called "Changes", and had 10 pictures that all changed into each other, using my algorithm. Today, it's called "morphing".
The next year, somebody paid for a newer, fancier small computer that could draw its own lines in hardware. A PDP-11 GT 40. Souped-up. But it wasn't completely souped. It didn't have a hardware multiplier, like the PDP-10 had, so it wasn't very good at arithmetic.
Alex got a crack at it, and had a neat way of drawing circles, using coupled differential equations. Sounds nifty, because it let him draw all types of conic sections: circles, ellipses, parabolas, even hyperbolas. Up and down, and rotated. Fat and skinny. Neat stuff! Except that the circles didn't close, no matter how many points Alex had the computer draw. "Woody, help! What's going on?". Numerical round-off, Alex.
Experience is a great teacher they say. I'd been through this before, on the PDP-8. It could multiply, but the computer words were exceptionally short. When you were working with numbers that represented fractions, like the results of Alex' equations, you had to make 2 or sometimes 3 computer words stuck on end, to make numbers that added up accurately enough to do the job - so that it looked right. At the same time, that makes more work for the computer to do, so it slows it down. You have to make the additional work be as quick, and as simple, as possible. I added 2 instructions to Alex' computer program - just 2 - and made the circles close. And the ellipses, and so on.
As the famous computer scientist Edgar Dykstra once said , "Doing a job with a BIG computer program is not a big accomplishment. Doing the job with a SMALL computer program IS an accomplishment."
Alex got his Bachelor's degree with High (or highest) honors - he was deciding which, by whether to drop a course that he only got a B in - last I heard. He then went to Stanford.