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


Archive for the ‘Rudy’s Blog’ Category

The Quest Rose

Saturday, September 26th, 2009

Today’s blog offering is an excerpt from the current draft of my novel in progress, Jim and the Flims. What I’m posting today is based on the notion that my characters Jim and Weena are off in the afterworld called Flimsy, visiting with the mathematician Charles Howard Hinton. Hinton is carrying out an exceedingly extravagant computation along the lines that I outlined in my recent post, “Breaking the Bank of Computation.”

Hinton’s not using a computer. He’s using a giant geranium plant that’s fueled by vast amounts of the aethereal substance called kessence. And the shape he’s studying? He calls it the Quest Rose.

My mental model for the Quest Rose is a very cool three-dimensional fractal rendered by Daniel White, and recently posted on Fractal Forums. I show a detail below, and you can learn more about it by following some of the links in my post, “In Search of the Mandelbulb.”

Okay, so here we go with the excerpt from the draft version of Jim and the Flims. Do keep in mind that this passage is only an early draft, and I’ll be editing it a zillion more times. But I’ll leave this posted excerpt as it is, as a relic. A precursor of the finished product.

Oh, I should also mention that the Flims want to send Jim to earth with a jiva egg case designed to drain Earth’s vim in order to fuel the Quest Rose project, and that Jim is currently controlled by a parasitic jiva named Mijjy that lives inside his soul.

For most of today’s illustrations, I used my macro lens and went around the house and yard looking for interestingly gnarly things.

Not talking much, Weena and I cruised out through a door in her leaf and let the tendrils sweep us down the geranium’s stalk to the looming bulge that held the Quest Rose. A little hole near the gall’s top allowed us entrance.

A wondrously surreal marvelous landscape lay inside. We alit upon a ridge of woven furrows, with a deep view across gorges, undulating hills and ranges of mountains. The space within the gall seemed to be warped to an enormous size—I couldn’t really see to the opposite side.

The flow of the nearby terrain was Alpine—peaks alternated with saddles, and a deep valley meandered off to our right. Low, swooping walls wove back and forth along the ridges of the landscape, dancing in syncopated rhythms. The slopes of the valley were terraced as if by rice paddies, with puckered craters within the level spots. The lace-edged craters held their own little worlds of shapes, with dim tunnels leading who knew how far below.

The Quest Rose was an outgrowth of the geranium plant itself, a bit like a wildly growing cancer. The material making up this extravagant outgrowth was kessence of a very fine type—translucent and delicately shaded, like the substance of those geck lizards I’d seen. Yellows shaded to greens and mauves.

The level of detail went down to the smallest visible levels—the ridge around me was lush with plant-like shapes. Something like a prickly pear cactus stood slumped beside me, and its pads were nappy with a grid of tiny snouts.

And all the time, every bit of the Quest Rose was moving, but so slowly that I didn’t initially notice it. But now the prickly-pear nudged me, and when I glanced back into the valley, I saw that its walls had steepened, and that a row of cavernous tunnels had opened up. Everything was morphing, every part of the Quest Rose was ceaselessly probing for new configurations.

Call it art or call it science, it was very easy to believe that this supreme work was tearing through inconceivable amounts of kessence in its eternal progress towards greater levels of beauty and gnarl. So much kessence that the Duke was bent on draining my home planet dry.

Remembering this, I began to doubt the value of the Quest Rose. Yes, it was beautiful, but so was planet Earth. Was not a forest or a reef as lovely as this warped and unnatural form? How was the Quest Rose being generated, anyway? What was Hinton’s game?

Weena turned her face up, as if sniffing the air, then led me down the slope of a nearby gulch. We made our way to a trellised balcony three tiers down, a gently curved ledge with fresh doorways opening up and others closing off, everything shimmering with subtle layers of hue. Leaning on the porch’s wavy railing was Hinton himself.

“Jim Oster?” he said, looking at me. He was a solidly built man with a pleasant face and dreamy eyes. He reached out his hand towards me. He had a yuel-made body like Durkle’s, and his arm stretched a little farther than seemed quite natural. I took his hand.

“Hello, Charles,” I said. “This—this is exquisite.”

“The Quest Rose,” said Hinton. “Maybe I’ve gone too far, I don’t know. I feel bad about the debts. But I keep hoping to find—it’s hard to explain.”

“How is it designed?” I asked, sitting down on the soft floor. Weena stood to one side, watching us.

“Oh, you know,” said Hinton. “Math. You don’t want a lecture. The basic idea is that there’s a parameter space of possible higher-order fractals, and I’ve set this mass of kessence to continually looking for the best one. At this moment, the Quest Rose is quite lovely, but what if we grow a mountain over there, or perhaps another valley? Should the crater-mouths be shaped like eights? The kessence figures out the options and, knowing my taste by now, the Quest Rose morphs smoothly towards the next pattern that I might like. You might say I’m tracing a search through a dimensional parameter space. Climbing a heavenly hill.”

“Don’t start tutoring him, Charles,” said Weena. “Jim’s just a retired postman. We’re sending him to Earth with an egg case of jivas tomorrow. They’ll drain off enough kessence to get the Solsols and the Bulbers off our necks.”

“That might be nice,” said Hinton mildly.

“But Weena just told me the jivas might destroy our planet,” I put in, unsure of how much authority Hinton might have here. “You wouldn’t want that to happen, would you, Charles?”

“Destroy the Earth?” Hinton smiled. “In a certain mood, I might say it would serve them right for running their universities like factories and for laying me off.” He shook his head. “But I’m joking. There’s the children to think of, the young lovers, the men and women in the full vigor of life. Of course we shouldn’t harm Earth.”

“And we won’t, Charles,” said Weena easily. “You shouldn’t worry about it at all. Your great work is more important than mere bookkeeping.”

“Well—maybe yes,” said Hinton, fiddling with a row of puckers in the floor beside his hand. “And I’d really like to add a few more parameters pretty soon. If we can get enough kessence into the plant.”

I wanted to tell Hinton that Weena was a liar. But Mijjy was monitoring me, making it impossible to say or to teep the proper words.

“What’s the Quest Rose actually for?” was the best I could manage.

“I’m waiting for something. I’m not sure what. The image of a lost love. A shape so arcane as to provoke notice by the great mind of Flimsy itself. An invocation of the hidden God? Tarry with me, Jim, and we can talk it over.”

“I’d like that,” I said. “I don’t really have much to do here. I’m kind of a prisoner right now.”

Hinton glanced over at Weena. Was that a glint of cunning I saw in his gentle eyes? “You don’t have to stay, Weena. I know you have things to do. Leave Jim. His jiva and I will watch over on him.”

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.


Rudy's Blog is powered by WordPress