I finished a new painting, “In the Lost City of Leng.” It goes with a novella of the same title that I’m working with my writer friend Paul di Filippo. It’s kind of a sequel to H. P. Lovecraft’s greatest tale, “At the Mountains of Madness.”
“In the Lost City of Leng” acrylic on canvas, March, 2017, 40” x 30”. Click for a larger version of the painting.
The story is about some adventurers who find their way into a tens-of-thousands of years old city beneath the ice and snow of an obscure plateau in Antarctica. And some of the down-sloping walls of the hallways are adorned with friezes that describe the history, science, art, and culture of the “Elder Ones” or “cukes” who lived there. The cukes were all be exterminated by some train-car-sized slugs known as shoggoth. So in my painting, we see a couple of explorers, totally unaware of the waiting shoggoth below…
The main thing I was doing for that week or ten days was revising an old program of mine called Capow. It shows smoothly changing (or continuous valued) cellular automata (called CAs for short). Shown above is an image that Capow made for me. I like to say this is an aerial photo of the ruins of the lost city of Leng on the high Antarctic plateau by the Mountains of Madness. By a gift from the muse of synchronicity, the image contains a shape like the outline of a penguin head. Yep, I’m firing on all cylinders, bwah.
“Capow showing the “2D Grid – Gnarly Computation (pattern).CA” file. Click for a larger version of the image.
Supposedly Capow was developed for scientific and technological purposes, and I even wrote a formal paper about it, “Continuous-Valued CAs in Two Dimensions,” at the Santa Fe Institute in 1999. But what I really do with it is to create and watch gnarly edge-of-chaos lava-lamp-like realtime tweakable light-shows, based on 1D and 2D continuous valued cellular automata modeled on linear and nonlinear wave equations, on reaction-diffusion rules, and on user programmable rules. Time to get ill.
I have two web pages about Capow. The older Capow home page, with some references and a bit of history. And the new and more streamlined GitHub download page for Capow. I’d always wanted to put something on GitHub, which seems ultrageek and techie.
If you’re a Windows user, download the program, I’d advise you to load up that “2D Grid – Gnarly Computation (pattern).CA” file, and start to play. It’ll eat your brain. Dig the Norwegian (?) art deco quality of the next image.
I’m planning to do a series of CA paintings now—with the “simple” expedient of hand-copying prints of some of my fave CAs with my crude daubing. Should make for some nice abstract paintings. The hard thing about abstracts is to find a sufficiently off-kilter image that isn’t just the first standard scribble I might come up with. So this where my CA friends can come in.
What is a CA anyway? They’re based on so-called CA rules, which have the form of a tiny program which is, in effect placed into each cell of a 2D grid. I show these cells as pixels on your screen. The cell grid updates as fast as it can, maybe a few times a second, depending on the size of the grid. In the update, each cell or pixel looks at the continuous range of colors of the eight nearest pixels (the ones touching the sides and the corners of the pixel). And it applies its “rule” to this info in order to calculate its new color.
The old “game of Life” is a type of cellular automaton, but a kind of limited one, in that each of the grid cells for Life has only one on-or-off bit in it. But in Capow, each of the cells has one or two decimal numbers in it. We call the Capow rules “continuous-valued CAs.” Way gnarly.
What’s my hat doing in here? I’ve been on an oldtime fedora hat kick this winter, I got two new ones.
With the CAs munging my brain.
I still go out in the hills anyway. Had a great ride in Almaden-Quicksilver Park last week. This is a spot I rode to on June 3, 2004, right when I retired from teaching CS at San Jose State, already more than twelve years ago, wow. Lifebox self-archivist that I am, my Journals 1990-2014 book is online, and here’s a sampled quote from it relating to that particular day.
I’m retired, it’s vacation, I’m glad. I’m in Almaden Quicksilver Park, sitting at a picnic table beneath an oak high atop a long ridge that I biked up. Writing these notes on a folded-in-four sheet of paper from my pocket.
Today feels like a turning point, me going off bike-riding alone on a week day. Still processing the fact that I’m retired. Edging into a new phase of my life. Autumnal, ripe, brimming over.
The meadows are dry, summer gold with empty seed cases like pennants on the grass stalks. The oaks are green and vigorous, a bit dusty-looking already. Billions of chaotic oscillations in the grasses and the leaves, indeed this page is sun-dappled with shifting shadows. Quiet.
A woodpecker taps now and then. They’re such slow workers most of the time. You rarely hear the conventional jackhammer rat-a-tat.
Drifting down from the north is the muted roar of San Ho. But I’m facing towards a big valley of parkland, including the Guadalupe Reservoir and Mount Umunhum (means “hummingbird” in the Ohlone Indian tongue).
It’s so good for me to get out into nature. Away from the news, which creeps in everywhere now, into Twitter, Facebook, email, nearly every web page, and, of course, the news apps that I can’t quite stop looking at. Feh.
Also especially good to get out if I’ve been programming. I was spurred to do a new Capow release by seeing an interesting GitHub page about a somewhat similar kind of continuous-valued CA program called Ready, written by the Golly Gang, who are also associated with a fast Game of Life program called Golly. But it’s Ready that caught my interest. If you scroll down the Ready page, there’s some good images and great videos. I spark of that familiar competitive drive, and wanted to keep my program still in the game. So I decided to make a 2017 build of Capow, which is originally from 1998, and was last rebuilt in 2007.
The advantage of Capow is that it’s written in C++ for just one specific platform, and it’s optimized to run fast, and it’s interface is designed for clicking and playing. Ready, on the other hand, has the huge plus of being multiplatform, that is, there’s versions of it for Unix, the Mac, and so on. And it has a more scientific interface. But it runs very slow.
Mainly I wanted to up the “resolution” or number of cells that my Capow can run in its 2D CA rules. The thing about CAs is—they can soak up as much computational clout as your computer has. Make your grid twice as big, and you have four times as many cells. Put decimal numbers into your cells instead of little integers, and you’ve got another speed hit.
But in order to rebuild Capow, I needed to download a (surprisingly!) free Microsoft Visual Studio 2015 compiler to rebuild the code. A rusty laser cannon of a tool…or at least when faced with my ancient code. When you use old code there’s the issue of what hackers (old word for programmers) call “bit rot.” That is, the new compiler doesn’t approve of some of your old code and will throw warnings and cryptic error messages your way.
There’s a slot machine quality to trying to building a running program from code. Over and over you click the build button in your so called IDE (integrated development environment), over and over you get errors—and you fix them. Over and over you run the program, see things you don’t like, go back and change the code, push the build button, get new errors and fix them, push the build button and run the program, see new flaws and fix them, push the build button and—and so on. Like a bathrobed geezer with a walker in a Vegas casino working a slot.
Eventually I got to something that seemed good enough to share. Not something perfect by any means—that would require a whole new fresh start. But good enough.
And now I’m logging time, off and on, in the happy land of CAs. The images I’m showing you in this blog post don’t really do the program justice. All those spirals are merging and turning, and you can ding the screen with the “touch cursor” and the patterns shift. In the old days I used to love to look at these images when I was high—and now I find that I don’t even have to be high to look at them, they get me high on their own because, dude, those are images of my actual brain that I’m looking at.
Yeek! As I say, it’s also good to get outside.
But there is one more thing I want to mention about the Capow images, and this is the fact that so many diverse kinds of CA rules end up making swirling spiral scrolls. I call these Zhabotinsky patterns, after the biochemical Belusov-Zhabotinsky reaction-diffusion or activator-inhibitor reactions known to make such patterns in petri dishes or, for that matter, in the skins and hides of animals, and in the shells of invertebrates. Zhabos for short. If you up a Zhabo into three-dimensions, you get something shaped like a mushroom cap. Zhabos are everywhere. In the swirls of water, in the shapes of beans and fetuses, in lichens, in air currents. You can find a discussion of this online in the “Flickercladding” section of my non-fiction book The Lifebox, the Seashell, and the Soul.
Onward up the hill of life!
To meet the cubic-wave-equation bubbles in the sky?
Or no, maybe what I want is the real sky. Hard to decide—but, after all, I don’t have to choose. We can have both. The reality and the dream, the seek and the gnarl.
March 11th, 2017 at 7:14 pm
Yowza!
Always enjoyed playing with CA! Once you have experienced glider guns, there’s no going back.
So while reading through your latest posting, I’m mindful of some questions. They revolve around aspects of your work: prose, paintings, photos and programming. Damn, they all start with ‘p’, don’t they? Anyway, I use these same tools to approach problems and issues from four different directions and it always helps to give new insight into the situation. I also use simulations but, that doesn’t start with a ‘p’ so who knows?
Think about some topic you are faced with solving: a plot for a story, etc. When I get stuck on a problem, I take a walk and if the answer is not forthcoming, I try one of the other methods – simulate the problem, write some code, draw some schematics or flow charts, do something different to take the mind back a step from the swamp or thornbush and see a path around it. “Oh, look! If you step to the side over here, you can see what was holding things up and also see other possible paths forward.”
Pretty soon, I’m off down the path towards solving the problem and finding out what the next problem is. Your paintings look to me like they possibly help you see your characters and plots in somewhat the same way. Or not. Who knows?
Keep on keeping on, Rudy!
March 21st, 2017 at 5:25 pm
did you look at doing it in javascript?