Click covers for info. Copyright (C) Rudy Rucker 2021.


Early Days of Creative Programming

[ I will be speaking on some of my experiences involving software at Garum Day, an event in Bilbao, Spain, on Feburary 16, 2011. Part of my talk, and today’s post, will derive from the “Computer Hacker” chapter of my memoir, Nested Scrolls: A Writer’s Life, due out from PS Publishing in April, 2011, and Forge Books in Fall, 2011. ]

My new hacker friend John Walker was a founder and the CEO of a booming Sausalito corporation called Autodesk, and in 1988 he asked me if I’d be interested to come work for him. Autodesk had done very well with their drafting software, and they had a big surplus in the bank. Walker wanted to explore some radically new kinds of software products.

Autodesk’s core business was a product called AutoCAD, an electronic drafting program used worldwide by architects and industrial designers. Walker didn’t want me to work on that. Instead he was starting a small Advanced Technology Division, headed by Eric Lyons, and, for the moment, me and one or two other guys.

My first project was to produce some cellular automata software with Walker. He was an insanely talented programmer. He worked at the level of a grand master in chess, or at the level of a mathematician at the Institute for Advanced Study. Over Autodesk’s one-week-long Christmas break, Walker wrote an assembly language program that eliminated any need for a special card such as the so-called cellular automaton machine I’d been carrying around.

My role in this was to create some sample CA rules for our new software to run, and to write a manual explaining it all. I got deeply into the task. Walker and I and finished our project over the course of several months. When we were done, we’d produced a slick, boxed software package called CA Lab: Rudy Rucker’s Cellular Automata Laboratory, which sold for about $50 and went on the market in 1989. In those pre-Internet days, some people were actually willing to buy software of this kind on disks. I did demos of it at a number of computer trade fairs, always having to parry the same old question.

“What’s it good for?”

“You stare CAs for hundreds and hundreds of hours and they eat your brain, okay?”

We sold a decent number of copies, and Walker had the idea that we could develop a whole line of software packages for hackers to enjoy. These packages were meant to be like books, but interactive, illustrating new aspects of science. Walker wanted to call the line the Autodesk Science Series.

The second package in the series was James Gleick’s Chaos: The Software, designed to let users play with some of the programs mentioned in Gleick’s best-selling book Chaos.

What was the chaos craze all about? Chaos is another new idea whose true origins lie in computer science. We all know about simple, deterministic processes that do something utterly predictable—like a cannonball flying along a predetermined parabola through the air. We also know about completely messy natural processes, such as the crackling static we might hear on a radio.

Chaotic processes lie midway between the extremes of predictability and randomness. On the one hand, a chaotic process doesn’t settle into any kind of dull and simple pattern. On the other hand, a chaotic process isn’t actually random. It’s generated by some fairly simple and deterministic law of math or physics.

There’s a certain overlap here with Charles Bennett’s notion of logical depth . A chaotic pattern is logically deep in that it’s generated by a concise rule that uses a long computation in order to produce the patterns that you see.

The hard thing to grasp about a messy-looking chaotic process is that it is in fact deterministic. If, for instance, you set about computing the successive digits of pi, you’ll always end up with that same number sequence, 3.1415926… So all the digits of pi are in some sense predetermined. But yet—and this is the subtle point—the digits aren’t predictable, at least not predictable by any rapidly-acting rule of thumb. Yes, someone like Bill Gosper can compute the billionth digit of pi, but he needs to run a powerful computer through quite a few cycles in order to come up with the answer. There are some good modern formulae, bu there’s no quick and dirty pencil-and-a-scrap-of-paper shortcut for finding the billionth digit of pi. It’s going to take you about a billion steps, no matter what. Pi is gnarly, pi is chaotic, pi is logically deep.

In his bestselling Chaos, Gleick talked about some mathematical systems that were known to generate chaotic patterns. Among these were the Lorenz attractor and the Mandelbrot set, and we put simulations of these into the Autodesk Chaos software, along with some other funky things.

Working on this second Autodesk program all through 1989 and 1990 was a lot harder for me than working on CA Lab had been. The big difference was that this time Walker didn’t step in and write the bulk of the code. Instead I worked with another Autodesk programmer, a knowledgeable and irascible guy called Josh Gordon. Truth be told, my own programming skills were still pretty rudimentary. I was in over my head. And Josh was never shy about telling me this. But somehow we struggled to a conclusion and in 1991 we shipped this second product, too.

Later, on my own, I’d write a third science series program called Artificial Life Lab, which would be published as a disk with a book in 1993, not by Autodesk, but by the low-end Waite Group Press in the North Bay. I might mention that, annoyingly, the Waite Group refused to pay me my royalties on the Japanese edition of the book.

The three software packages that I worked on, CA Lab, Chaos, and Artificial Life Lab, are all long out of print by now, but you can download them for free from my website. Note that eventually we had to change the name of CA Lab to Cellab. A company called Computer Associates was threatening to sue us for infringing on their sacred trademarked initials CA. As if cellular automata hadn’t been around much longer than them!

6 Responses to “Early Days of Creative Programming”

  1. Mark Dow Says:

    A minor quibble about:

    “There’s no quick and dirty pencil-and-a-scrap-of-paper shortcut for finding the billionth digit of pi. Pi is gnarly, pi is chaotic, pi is logically deep.”

    Finding the Nth digit of pi is surprisingly not gnarly. Bailey, Borwein, and Plouffe (1995) showed that it can be found O(N) steps with O(logN) memory.

    http://www.math.hmc.edu/funfacts/ffiles/20010.5.shtml

    This does not mean that finding all digits of pi up to N is not gnarly, and it is.

  2. Brett Harder Says:

    Just read Chaos actually, it was a gripping book to say the least. I’ll have to download the software for it now. I have to say Rudy, you’re really developing an eye for photography. Those pictures are incredibly hypnotic.

  3. Rudy Says:

    Mark: You’re right, I tend to overlook this result, and should take it into account, if only obliquely. For curious readers, the original paper by Bailey, Borwein, and Plouffe is online here.

    I should explain that when I think of a real “shortcut” method, I have in mind something that runs in time O(log(N)), which is the kind of speed-up we get by doing arithmetic with positional notation instead of a tally system. I worked out something of a theory about this in an appendix to my tome, The Lifebox, the Seashell and the Soul.

    So I’d still say that Pi is logically deep, or “unpredictable” in the sense that I use those words. This said, I need to recast the way I present this here to satify the more well-informed readers such as yourself, and to this end, I did a slight edit to the post above.

  4. Steve H Says:

    Rudy, there’s a double-barreled cannon at the Athens, Ga courthouse which was designed to fire two balls at once, connected by a chain. It didn’t work very well, and it’s easy to see why. If it had six barrels and all the balls were chained together and actually fired at the same time, it might be a good example of a chaotic process instead of a kludge.

  5. Alex Says:

    I’d like to see some CA software that takes my calendar data. Converts it into one-dimensional binary cellular automaton, then apply Wolfram’s classification scheme to see if something gnarly is likely to happen. That would be fun. Sort of like the The Dice Man…

  6. erros xbox 360 Says:

    I truly loved reading your post. Thanks!


Rudy's Blog is powered by WordPress