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


Archive for the ‘Rudy’s Blog’ Category

Breaking the Bank of Computation

Monday, September 21st, 2009

I have this idea that there are some mathematicians in my fictional afterworld Flimsy who are bent on doing some extremely demanding mathematical computations. The chief among these guys is the ghost of Charles Howard Hinton, a quirky character whom I’ve blogged about before, an early advocate of higher dimensional geometry.

My idea is that Hinton, who now lives in the Earth-based region of the afterworld, is computing such outré mathematical objects that he’s had to borrow energy from the neighboring realms of the afterworld, that is from the ghosts of Solsol and the ghosts of Bulber. And now the Solsol and Bulber ghosts are tired of waiting for their payback, and they plan to do a repo on Hinton. They’re going to siphon every living soul off Earth so as to pay off Hinton’s energy debt.

This is, in part, my satirical take on what the quantitative analysts of Wall Street did to the economy in 2008. But overcomputing is also something that interests me on its own.

Over the years, I’ve noticed that certain kinds of computations are inexhaustibly greedy, and that by dialing up certain of their parameters to values that seem not all that big, you can get a computation whose demands would overwhelm the physical world.

So what kind of computation is C. H. Hinton doing? Well, I’m going to have him computing a series of 3D fractal shapes that are based on a 27th-power polynomial equation, somewhat along the lines I described in my recent post “In Search of the Mandelbulb”

Let’s back up a step to see how gnarly his computation needs to be. What is the computational capacity of ordinary physical space? According to quantum mechanics, the smallest meaningful length is the Planck length, which, in meters, is 1 divided by 10-to-the-35th power. So the smallest meaningful volume is tiny block that is one Planck length long on each edge, and which holds a volume that’s the cube of the Planck length, that is, 1 divided by 10-to-the-105th power cubic meters.

[Note that I corrected this post on Oct 10, 2009 to accord with a comment by Fabiuz, that you can find below. Before Fabiuz I’d omitted the cubing stage.]

And the shortest meaningful time is the Planck time, which is how long it takes a light ray to travel a distance of on Planck length. Measured in seconds, the Planck time clocks in at 1 divided by 10-to-the-43rd power.

So if we assume that we might master a eldritch quantum computational technique that lets us carry out one computational operation per Planck length per Planck time, we’d be able to blaze along at 10-to-the-148th power operations per second per cubic meter.

It might actually be that our physical space is in fact doing this everywhere and everywhen…effortlessly. Just keeping itself going.

Planet Earth has a volume in cubic meters of about 10-to-the-21st power, so if we throw all of the planet at a problem, we can compute some 10-to-the-169th-power operations per second.

We might round it up to call it ten to the two-hundredth power, which happens to be googol squared—googol is the mathematicians’ old friend, that is, 10 to the hundredth power. Googol-squared ops per second!

The diameter of our observable universe is currently estimated to be about 10-to-the-27th-power meters, so the whole universe has a volume on the order of 10-to-the-81st-power meters. And if you set all of that space to computing, you’ll rack up some 10-to-the-229th-power operations per second. Less than a googol cubed.

Using the whole universe as a computer doesn’t give you a very dramatic gain over just using Earth—the reason for this is that, relatively speaking, the jump from Planck length to Earth is in fact bigger than the jump from Earth to Universe.

Now let’s think of computations so greedy that they can swamp this level of computational capacity.

(1) Use a parallel computation which is spread out across a very large number of voxels, that is, small volume cells of idealized mathematical space. You can really increase the number of voxels by requiring that you can zoom down very deep into your views of the object.

(2) Have the basic step of your computation per voxel be somewhat demanding. Have it use a higher-order formula, and have it require the formula to be iterated a large number of times.

(3) Run a very large number of these computations at once because, we’ll suppose, you’re searching through a space of all possible formulae—hoping to find the best one.

(4) And, just to keep the demand flowing, suppose that you want to update the output reasonably fast, say at a hundred times per second, so as to create a nice smooth animation.

I’ve been thinking about three-dimensional fractals lately, so let’s suppose that’s the kind of computation we’ll use. I’ll want to look at a 3D fractal that’s twisting and changing in real time as some parameter is varied.

The familiar Mandelbrot set is based on a quadratic equation in a two-dimensional space. For our illustrations, suppose we’re interested in three-dimensional analogs of the Mandelbrot set. And, to make it funky, suppose that instead of just looking at quadratic equations, we’ll be looking at higher-degree equations as well, where the “degree” of an equation is the highest power used. A quadratic equation has degree 2, a cubic equation has degree 3 and so on.

If we pass to higher degrees, it’ll be convenient to write the degree in the form (N/2) for convenience. We’ll be using complex numbers as parameters, so that means that one of these equations has N parameters. And evaluating a polynomial of this form takes on the order of N-squared steps.

In order to really get greedy with the computations, once we specify the degree of the polynomial we’re using, we’ll want to be looking at all possible variations on the polynomial of this degree. It’s like we’d be searching for the gnarliest or the most beautiful fifth-degree three-dimensional analog of the Mandelbrot Set. And we’ll suppose that the search can be automated by doing a brute-force search and ranking the results according to some mathematical measure such as entropy.

So now let’s see how high the computational demand might run.

First of all, how many voxels per fractal? That is, how fine a mathematical grid do we want to look at? Well, let’s have a nice big cubical display, ten meters on a side, with a resolution down to the smallest visible level, say to a tenth of a millimeter. And let’s also require that I can zoom down into the fractal by a factor of a ten million (which is a series of seven ten-fold zoom steps). So that comes to a resolution of a trillion voxels per edge, and I cube that for 10-to-the-36th-power voxels in all.

And I’ll iterate my fractal formulae a thousand times per voxel, so that makes 10-to-the-39th-power steps.

Suppose I’m looking at all the possible fractals specified by let us say, a degree five polynomial that uses complex-number parameters. So, if we don’t to the trouble of eliminating terms from the polynomial and we don’t take into account the constant term, that makes a total of ten real-number parameters, and evaluating the polynomial might take on the order of ten-squared steps. So now we’re looking at 10-to-the-41st-power steps to generate one of our degree-six fractals.

And, as I said, we’ll look at a wide range of the possible fractals of this kind—again assuming that we have some background algorithm to select the most aesthetically pleasing one.

For our search through the range of all the possible fractals of this kind, suppose that we let each of our ten real-number parameters vary between -5.0 and +5.0, stepping them along rather coarsely by increments of a thousandth. So each parameter is stepped through 10,000 values. And there are ten parameters, so I get 10,000 to the 10th-power combinations of values, that is, a number of combinations that’s 10-to-the-40th-power.

Multiplying this number of fractals times the number computational steps per fractal, we get 10-to-the-79th-power computational steps in the case where we use a degree five equation. So it takes ten seconds for a cubic meter of space computing flat out to show the “best” of the degree five fractals.

And now, as I mentioned, we’ll require that the display be updated in real time while some additional parameter is being smoothly varied. I want, as I said, a hundred updates per second. But each update takes ten seconds. Fine, I’ll throw a thousand cubic meters of space at my problem. That’s just a cube that’s ten meters on a side, so my display field is just large enough to compute my image in real time.

But now Hinton wants to crank up the degree! He’s not happy with degree five.

Suppose we specify some arbitrary degree that I’ll write in the form (N/2). This is an order N/2 polynomial with complex numbers as parameters and, therefore N real-number parameters to worry about. Evaluating the polynomial takes on the order of N-squared steps, and doing this a thousand times for our preferred voxel sizes makes for (10-to-the-36th times N-squared) steps.

And we step our parameters along at that same small increment we talked about above, the number of possible fractals of this kind are (10-to-the-4N-power).

So, all in all, if we go to a degree of the form (N/2), it takes (10-to-the-36th times N-squared times 10-to-the-4N-power) steps to generate all variations of the 3D fractals of this degree.

So if Hinton wants to look at fractals of degree 35, that means an N value of 70 parameters. So then our number of computations needed to show the best of these fractals is 10-to-the-36th-power times 70-squared times 10-to-the-280th-power. That means our product is going to be a number between 10-to-the-319th-power and 10-to-the-320th-power. Well over a googol-cubed.

ZZZT! System overload.

For, remember, Earth can only compute about a googol-squared operations per second, and the whole visible universe can only handle 10-to-the-229th-power!

Time to have a talk with those Solsols and Bulbers about borrowing googol-squared computations per second…

My Story Arc

Saturday, September 19th, 2009

I think I already mentioned that I recently finished a rewrite of my memoir, Nested Scrolls: The Memoir of a Cyberpunk Philsopher. Here’s a bit from the very end of the book, and some photos I took recently around the SF Bay Area.


[A back entrance to Three Mile Beach north of Santa Cruz.]

When my father was on his last legs, he said, “What was I so worried about all those years? What difference did any of it make?”

Like many writers, I spend an inordinate amount of time fretting about the relative success of my works. But I also work at being grateful for what I have. After all, the vast majority of people don’t get published at all. My books are printed and find a substantial audience; I get money and respect in return. I’m lucky to have the ability to write.


[Guy riding on a cart pulled by a kite, Ocean Beach, San Francisco]

And, thanks to the chapter I wrote about society as a kind of computation in The Lifebox, the Seashell and the Soul, I’ve finally came to accept that writers’ sales obey a scaling law that’s technically known as an inverse power law distribution. You’re not getting lackluster book advances because someone is actively screwing you. It’s the scaling law.

The scaling law applies across the board—to the populations of cities, the number of hits on websites, the heights of mountains, the number of friends that people have, the areas of lakes, and the sales of books. There’s no getting around it. Thus, if you’re the hundredth-most popular writer, you earn a hundredth as much as the most popular one. Instead of a million dollars, you get ten thousand bucks. That’s how nature is. It’s not anyone’s fault.


[Pumpkin crop on Wilder Ranch farmland, north of Cruz.]

Even if the financial rewards are modest, I revel in the craft of writing. I like being able to control these little realities where things work out the way I want. It’s no accident that so many of my heroes leave the ordinary world for adventures in fabulous other lands. In just the same way, I move my mind from the day-to-day world into the fantastic worlds of my books. I make art because it feels good to do so.

Writing is hard, and after each book is finished, I wonder if I’ll be able to write another. But I keep coming back And I’ve got painting as well—another path to creative bliss.

It’s been deep and intense, here inside this cosmic novel.


[With Jon Pearce by a yonic rock formation, near Strawberry Beach, north of Cruz at this Google Earth location.]

When I started writing my memoir, Nested Scrolls, I was wondering what my life has meant. But now I see that’s not a question I’m in a position to analyze. I’m inside my story, not outside of it. What does a flower mean? A waterfall?

This said, as a writer, I can think about my life’s structure, about the story arc. I see a few obvious themes.

I searched for ultimate reality, and I found contentment in creativity. I tried to scale the heights of science, and I found my calling in philosophy and in science fiction. I was a loner, I found love, I became a family man. I was a rebel and I became a helpful professor. And I never stopped seeing the world in my own special way.

It’s been a wonderful trip.

In Search of the Mandelbulb

Tuesday, September 15th, 2009

This post is an update about a project I’ve been working on for twenty years. I recently did some work on it with Mathematica, and I’ve posted my latest version of my work both as a Mandelbulb 7 Mathematica notebook, and as a Mandelbulb 7 PDF File. I post these files not so much because I’m finished, but rather because I’m sick of working on it, and I’d like to share the gain and the pain. This post presents most of the material.

The Mandelbrot set M is defined in terms of a plane map mandelmap[z,c] which takes z into z*z + c. We add plane points by adding their Cartesian components—this is easy. Multiplying plane points (in particular computing z times z) is done by pretending the plane points represent complex numbers. A problem in defining a 3D Mandelbrot set is that there is no good 3D analogue of complex numbers, and therefore there’s no obvious best way to “square” a 3D point (x, y, z).


[Bozo the Mandelbrot set!]

Various other ideas have been tried for finding the platonic 3D bulb, such as using quaternions. The quaternion approach gives taffy-like structures lacking the warty smooth quality we seek. Daniel White discusses the quest and some of the approaches in his web page about his search for the Mandelbulb.

What do we want? A “Mandelbulb,” a root-like object that’ s like a big sphere with a dimple in the bottom and with bulbs on it, and further warts on the bulbs. I wrote about this object in my 1987 science-fiction short story “As Above, So Below,” which I’ve just placed online for reference. [Note that this story is not to be confused with my novel of the same name.]

The Cubic Connectedness Map

I’ll mention here as an aside a completely different approach to looking for a 3D Mandelbrot set. The idea is to take a 3D cross section of a 4D fractal called the Cubic Connectedness Map, which was first investigated by Adrian Douady, John Hubbard and John Milnor.

In a nutshell, if k is a complex number, we define Mk to be the set of complex numbers c such that both k and -k, when plugged in for z, lead to a finitely large sequence of iterates in the map z = z^3 – 3*k*z + c. The set of all Mk in k-c space forms the four-dimensional Cubic Connectedness map or CCM.

I created some software for finding 2D cross-sections of the Cubic Connectedness map in the Autodesk CHAOS program, see my remarks at https://www.rudyrucker.com/oldhomepage/cubic_mandel.htm Note that you can download the Windows CHAOS program here as well.

I think I got the idea for the CCM fractal from the technical papers: Adrian Douady and John Hubbard, “On the Dynamics of Polynomial-like Mappings Bodil Branner and John Hubbard, The iteration of cubic polynomials Part I, and The iteration of cubic polynomials Part II: Patterns and parapatterns . Whew!

Another of the surprisingly few links on this rich topic is an article by the Swedish amateur mathematician Ingvar Kullberg, “The Cubic Tutorial,” concerning a plug-in that generates these images with the popular Ultra Fractal software.

Shown above is a detail of the Mk you get when k = -0.4055 -0.1135 i. The detail is the image is in the area centered on (0.12, 0.87) in the c plane. I call this guy “Fafnir” after the famous dragon.

By incrementing up and down through the k parameters, I had gotten the impression that by “stacking” some of these 2D slices while varying a single real-number parameter, such as the real part of k, we could get a nice 3D Mandelbulb, and I still can’t quite believe this isn’t true. But Paul Nylander recently rendered a run that looks discouraging.

I still have some slight hope that Paul’s rendering algorithm might be in some way not be quite what we want, or that, perhaps we need to do something other than simple stacking of 2D cross-sections in order to find the Mandelbulb within the CCM.

By the way, another great math-graphics hacker Billy Rood had a shot at this “stacking” algorithm, also without being able to find the Mandelbulb we’d hoped for.

A Spherical Coordinates Algorithm
A different way of thinking of complex number multiplication is to express (x,y) in polar coordinates (norm,theta). In these coordinates, multiplying two complex numbers means multiplying their norm-values and adding their thetas. This is readily generalized to traditional 3D spherical coordinates. A point can be represented by a triple (norm,theta,phi), where phi is the azimuth elevation above the xy plane, and theta is the polar theta of the point’s projection onto the xy plane. And then multiplying two of these numbers means multiplying their norm-values, adding their thetas, and adding their phis.

So squaring a complex number in the plane passes from (r, theta) to (r*r, 2 theta). And in spherical 3D coordinates, (r, theta, phi) becomes (r*r, 2 theta, 2 phi). This is an idea I spent a little time on in 1988, and recently I came back to it again. Details are in that Mathematica Mandelbulb Version 5 notebook of mine I mentioned at the start of this post. One encouraging thing about this approach is that we can be sure that the set we get will have a familiar Mandelbrot set as its intersections with both the xy plane and the xz plane…for in the xy plane, phi is identically zero; and in the zy plane, theta is identically zero.

Here’s a test run, done by crudely splitting space up into voxels and marking the spots that are inside the intended Mandelbulb.

In 2007, a similar approach was used by Daniel White, who posted about his search for a nice 3D Mandelbrot shape on his website mentioned above, and on the fractalforums site, a site where the elite meet to geek.

And White coined the world “Mandelbulb” for the image we seek.

As I mentioned, the gifted computerist Paul Nylander blogs about “hypercomplex fractals” at his Bugman site. Here he shows a rendered image of a White Mandelbulb that, as White already noted, doesn’t look like the smooth bulbous shape we’d dreamed of. It’s close, but it has the taffy/whipped-cream/spun-glass excrescences that we want to sand away.

What Next?

One problem might be that there’ s an imparity in how we get the two angles, theta and phi, in the spherical coordinates, in that theta is an “argument” angle in the xy plane and phi is an azimuth elevation above the xy plane. They aren’t really the same types of angles. So maybe it’ s not surprising that simply doubling those angles doesn’t produce a smooth bulbous 3 d Mandelbulb. It would be nice if the angles were more similar in nature.

To make this happen, we might define both angles as azimuths like phi…or define both angles as arguments like theta, I have a little more about this in that Mathematica notebook I mentioned…but these approaches don’t seem to work.

Another problem could be that, when we double two angles we’re in some sense moving the point too violently. Perhaps you should be multiplying the angles not by two, but by some weighting factors mul1 and mul2 which might depend on whether, say the point is closer to the xy plane or to the xz plane.

Meanwhile…we’re still waiting for the Mandelbulb to touch down!

The Eighth Power

Dan White, Paul Nylander, and David Makin have been investigating a different approach. We go with the spherical coordinates version of the 3D Mandelbrot set, but instead of squaring the number in each iteration, we raise it to, say, the eighth power, that is, we raise the radial length the eighth power and multiply the theta and phi angles by eight.


[8th power 3D Mandelbrot, rendered by Paul Nylander]

Other powers give nice results too—at present it seems as if the crud only shows up in the squaring version. Or perhaps the views we have of the higher powers aren’t sufficiently detailed to show some lurking crud. But latest zooms are looking good.


[Close-up of the 8th power 3D Mandelbrot, rendered by Daniel White.]

White comments: “In this gold pic, see how the sine wave style curves of the 2D mandelbrot translate to ‘egg carton’ type shapes, and also how the background in the gold pic is ‘smoother/flatter’ than the foreground. Often, parts of the 2D mandelbrot do exactly the same when the iteration level is low enough (the end of stalks round off).”

I have some more material about these ideas in my later post, “Breaking the Bank of Computation.

The History of Flurb

Friday, September 11th, 2009

I mentioned that I’ve been busy revising my autobiography, Nested Scrolls: The Memoir of a Cyberpunk Philosopher. As part of the revision, yesterday I wrote up a little history of my webzine Flurb. Here’s that passage, which is relevant as Flurb #8 went live this week—and is off to a strong start, with five thousand visits in the first two days.

By the way, you can click on any of the Flurb covers below to see the issue in question.

http://flurb.rudyrucker.com/1/index1.html
Issue #1, Fall, 2006
http://flurb.rudyrucker.com/2/index2.html
Issue #2, Winter, 2006
http://flurb.rudyrucker.com/3/index3.html
Issue #3, Spring, 2007

Issue #4, Fall, 2007

Issue #5, Spring, 2008

Issue #6, Fall, 2008

Issue #7, Spring, 2009

Issue #8, Fall, 2009

And here's the excerpt from Nested Scrolls...

Although I’m often able to sell my short stories to science-fiction magazines, it’s a fair amount of trouble for very little pay, and my stories do sometimes bounce back. In 2006 I hit upon the idea of starting my own online science fiction magazine.

I’d recently written a story with my old SF pal Paul Di Filippo, a tale called, “Elves of the Subdimensions.” I was in a rush to get the story published so that I could put it into an upcoming anthology of my stories—it’s generally considered wasteful to anthologize a story of yours that hasn’t already been published.

There wasn’t time to get “Elves of the Subdimensions” into one of the major print magazines, but when I tried one of the existing online SF webzines, they had the temerity to turn our story down. And that’s when I decided to start my own webzine. I mean—why should I court rejection from strangers who weren’t even going to pay me, just in the hopes that they might post my story online?


[Paul Di Filippo]

I’d started blogging by then, and I knew enough about the web to be quite sure that I could design and organize an online magazine. And given that my blog was getting quite a few hits by now, I’d be able to steer a respectably large audience to the zine. And my son Rudy was running an Internet Service Provider business called Monkeybrains, so I could get the server bandwidth for free.

What to call my webzine? The name jumped out at me from a line Paul had written in our joint story. The elves, who live in the subdimensions (whatever the heck that means), are discussing the oddities of our human world.

“The high-planers ingest sweet chunks of their worldstuff!”
“They use picture boxes to learn their hive mind’s mood!”
“Of flurbbing, they know not!”

Yes, my webzine’s title had to be Flurb. I liked the Mad Magazine sound of the word, and its vague feel of stumble-bum incompetence. If pressed, I might define “flurb” as a verb meaning “to carry out a complex, non-commercial artistic activity,” and “flurb” as a noun might mean “a gnarly artwork that’s incomprehensible to the average person.”

This definition even appears in the Urban Dictionary, although it’s competing with an alternate defintion of a “flurb” as an obsessive role-playing fan.

I started by asking my SF writer friends for contributions, and, as the issues went on, I branched out from there, first turning to writers that I knew less well, and then starting to read contributions sent in by strangers. You can see an overview of all the authors so far in Flurb‘s Cumulative Contents page.

I have a fairly clean design for the zine, running a colorful border down along the left side of each story. For the borders, I use patterns that I create with Capow, the cellular automata software that I’d developed on with my students at San Jose State—I use a fresh pattern for each story.

I also illustrate the stories with photographs that I’ve taken. I like photography a lot, it’s instant transrealism. When photography goes well, you’re appropriating something from your immediate surroundings and turning it into a loaded, fantastic image. I’ve been taking photos for fifty years by now, and I’m still excited about it.

For use in Flurb, I make a pool of my best recent photos, and then I choose the individual illustrations from the pool very quickly, almost at random, in adherence to the old Surrealist principle that the human mind is capable of seeing any two things at all as going well together.

I’ve come to enjoy the interactions with my Flurb authors, and I’ve just published issue #8. At this point, we get about sixty thousand visits per issue. And no money at all is involved. I don’t charge people to read Flurb, nor do we carry any advertising, nor do I pay my authors. I try to treat them well, they get a little publicity out of it, and they get to keep all rights. It’s a sideline for all of us.

I like to think that Flurb is a kind of clear-channel border-radio station for SF. As a personal matter, having Flurb as an outlet has freed me to write some stories that are so quirky and non-commercial that I wouldn’t have done them otherwise. For instance I wrote a story called “Tangiers Routines,” about William Burroughs having sex with—and being in some sense eaten by—the early computer scientist Alan Turing. A lot of people liked this gnarly tale. But I could never ever have published it for a large audience in any locale other than Flurb.

Editing an issue of Flurb twice a year is a slight distraction from my writing—but writers are always looking for distractions. Eventually you miss writing enough to want to do it again.

...end of excerpt from Nested Scrolls.


Rudy's Blog is powered by WordPress