This paper is in two parts - my MandelBug Project & Attraction to Shape

S.Roof, Oct 2003

Hey guys! I've made an exciting new discovery. I believe it's a new kind of attractor of sorts. Before I let the cat out of the bag, though, I need to fill you in on what happened with the Mandelbug Project. I completed coding a test version stripped of sensors and actuators, just to study the internal states first. That's how I made my discovery. I never sent you the initial project design though so I've included it in this email. It is sort of a prerequisite reading to the next email I send. I am in the process of explicating what I think the bugger is doing and will send it as soon as complete. This discovery has blown my mind. We may yet have a way to tame the savage beast chaos.  

 

MandelBug - A New Project

Swinton Roof

Nov. 2002

 

ABSTRACT

Recent studies of Mark Tilden's insect robots, or living machines as he calls them, has inspired me to begin a new project. His bots use only a handful of transistors, resisitors and capacitors to achieve life-like behaviour. Apparently it is the non-linear behaviour of a simple step function oscillator coupled to linear inputs and outputs that performs the magic. Ancillary analogue feedback from the output actuators (torque and hysterisis loads from leg motors etc.) makes the system sensitive to the environment in a very tactile but unprogrammed way. I plan to do some computer simulations of this behaviour.

INSIGHT

Such systems seem to have innate problem solving ability without training and even seem to have a short term memory for problems already solved. This is explained by some as an internal representation encoded via a dynamic analogue wave front which propagates instantaneously around the system even though specific action pulses propagate slowly.

This is a view of Tilden's basic core electronic circuit. It is called a suspended bicore.

As you can see it is very simple. The capacitors slowly charge as current flows throught the resistor. Capacitors charge as a decreasing exponential function which levels off as the voltage rises. The triangles are diode inverter transistors that flip state when the voltage reaches half its maximum. The capacitor voltage is assymptotic to this value so the inverter can never flip with ideal components. Noise is sufficient to push the inverter over its threshold eventually, however, and it fires triggering the opposite response from the other inverter which likewise has a similar duty cycle. The system has an oscillation period determined by the resistor value and outputs a square wave of varying period at the inverters.

This output can be periodic or chaotic depending on the state of the system. Feedback from linear inputs and outputs can influence the behaviour of this circuit, keeping it just on the outside edge of order into chaos keeping things interesting (assuming the circuit parameters have been appropriately tuned. Slightly unequal values seems to help!).

DESIGN

Now for my ideas of simulating this in software. I have attempted to find any mathematical analyses that might have been done on this circuit but have found only the basic voltage equations of the isolated circuit as a function of time as coupled pairs of non-linear differential equations with exponential solutions. The influence of subtle outside enviromental feedback is such a difficult problem, that I do not think much progress has made or attempted in this area. Tilden and his followers are believers in hardware and evolution so they dont spend much time worrying about that stuff.

My problem then is to do something on my own. Not having sufficient math skills to tackle this problem, I decided to use my own brand of heuristic reasoning and experimentation. I propose a complex number transfer function recursively iterated to simulate this analogue circuit.

First we have a resistor,capacitor and voltage. Basic electronics math uses a variable called impedance (reactance and reluctance) that is defined as a complex number analogue of resistance for capacitors and inductors. For a resistor and capacitor the impedance is a complex number with a form approximately like Z = r - (1/c)i where R = resistance is the real component and 1/c is the imaginary component contributed by the capacitance. Paired elements, as in the bicore circuit above, oscillate and the math behaviour is non-linear. Seems to me that the paragon of non-linear complex math is the Mandelbrot set, so I propose just using Mandelbrot recursion and letting the non-linear math sort its own self out. Thus we might conjecture that a bicore circuit would have a certain complex Z voltage that varies as Z -> Z*Z + C where C is a complex additive constant. This C is not the little 'c' for capacitance above. It is the starting constant for a Julia set and can be picked off the inner cardiod boundary of the Mandelbrot convergence map. It seems reasonable to me though that this recursive equation can reproduce the behaviour of the bicore circuit given the appropriate values.

Z would be a complex number 'input' for the bicore neuron (nervous neuron in Tilden's terminology) and C would be an internal constant parameter of the node.

Now the bicore circuit also uses an inverter diode which gives a step function as the capacitor charges. To me this is nothing more than a steep sigmoid function that goes both ways - up or down depending on it's current state. This can be simulated easily also with the traditional neural net exponential sigmoid.

Mathematically, I thus think I can replace the entire bicore circuit (nervous neuron node) with two complex numbers and a sigmoid function recursively iterated to simulate the behaviour in time. The hardware circuit is analogue, but the output voltages make a step function so it seems reasonable that discrete iterations can mirror the analogue circuit. Below is an illustration of what I will call a znode which is a complex number based analogue of Tilden's Nv neuron.

Now, Tilden uses several of these Nv nodes connected together as the nervous system of his insect bots. Some might be connected to sensors like photodetectors. Others connect to motors or actuators to control afferent responses like leg motion etc. The challenge at this point is to design an effective system that relates to it's environment in a mobile-acquisitive-selfprotective kind of way i.e. a living, surviving, intelligent bot with tactical problem solving abilities. This is a tall order but clever design by Tilden and others seems to accomplish this. I intend to do something similar in software.

First let me discuss the enviromental design goals. If my enviroment is computer screen space, then I propose that pixels emit light in varying color and degree as acquisition energy for my soft bot sensor nodes and that colored pixels also furnish a mechanism for encoding structure into the terrain. Spatial motion can thus be coupled to terrain structure to provide feedback into the output nodes. When I have designed and built a Mandelbug as I'll call it, I can simply let it loose on top of some screen real estate and see what it does. The experiment should be interesting one way or another.

What kind of nervous znode net topology is desired? Taking the lead of the B.E.A.M. 'living machine' bot- researchers I propose a simple spinal loop as the prime structure i.e. a torus. The basic bicore circuit is a circular affair to begin with, as is iterated recursion, so why not. We want to get away from all that linear hierarchial stuff anyway. The prime structure will thus be a head, spine, and tail node which then feeds back into the head recursively. This prime spinal circuit forms the non-linear framework from which the peripheral nodes hang. The affair should be bi-lateral of course so we'll hang dual znode sensor or actuator neurons off each spinal node in some fashion or other.

Since we're using Mandelbrot dynamics as our model, why not go whole hog literal and use the convergent edge of the set itself as our structural model. It's bilateral and toroidal (if you observe the emergent trajectories) so why not.

 

In the plot above, I have rotated it in the complex plane by 90 degrees so plus 'x' values lie above the horizontal axis and imaginary 'y' values are left and right. I turned it this way only out of personal preference, but it is important to point out that the bilateral symmetry results from the imaginary components of the complex numbers while the head and tail directions result from the real number components. The toroidal curves are iterated trajectories that result from different starting points along the inner cardioid curve of the Mandelbrot convergence map. This is the basis for my 'Mandel Brain' discovery a few years ago.

Note that the bilateral symmetry occurs when for each Z(x,y) there is a Z'(x',y') where Z' = conjugate(Z). We will use this fact to distribute spinal znode signals to the peripheral actuators. Below is the core proposed spinal circuit. It will be the recursive framework to hang the exterior bilateral znodes on. Each node has an X in it to indicate that it will be a major plexus of input/outputs

 

Here are the basic forms of the transfer equations for the core circuit without inputs & outputs:

Zh = Zh*Zt + Ch -> Zs = Zs*Zh + Cs ->

-> Zt = Zt*Zs + Ct -> ... repeat

Now add in the peripheral nodes:

SL and SR are the left and right sensor nodes. They feed directly into the head node H. H feeds into the left and right front legs. If the left front leg gets Zh signal then the right front leg gets conjugate(Zh) as it's signal. The two front legs then feed their combined signal into the spinal plexus which distributes its output to the rear legs in similar fashion. The rear legs then fuse output at the tail plexus, which then feeds back into the head node.

Now consider the above circuit as flow of information. Suppose our zbug seeks pixel energy i.e. it is phototropic. If SR senses a greater energy on the right side, it's signal will be greater than SL so its complex output vector will be longer and the final output of Zh will reflect this. As conjugate(Zh) goes to the right leg though it is reversed so the right leg motion is negated while the leg leg is motivated and the zbug turns right. This motion is reprocessed and transmited via the spinal plexus Zs to the rear legs so they can coordinate with the front ones. The tail node then accumulates all the above process and returns it to the head for re-evaluation in terms of new inputs that occur as a result of the previous actions. It is not obvious that zbug will do what we expect, but it seems apparent that there will be at least a cogent way of interacting with its environment.

The next problem is to establish the complex parameter C for each node. Imagine the above zbug circuit superimposed on the cardioid of the Mandelbrot map.

 

 

We can simply pick each complex constant C off of the Mandelbrot map. Those locations guarantee interesting behaviour that is this or that side of convergence. By moving toward the inner black region we can force convergent behaviour. Movement of the parameter toward the outside pushes the iterations from order into chaos.

A final piece of the design is to determine how to convert back and forth from real world inputs/outputs. The sensor input signals can simply start as say a unit vector with direction given by the angle a scanned pixel makes relative to the sensor. It can then be multiplied by the intensity of the pixel. The leg actuator nodes are a bit trickier.

We need a mechanism that translates into motion of the bug as a whole. Assume that a given motion of the leg twists the bug about its axis. This should only be true if the leg is down and touching the floor so we need to consider leg lift in addition to travel forward and reverse. These two real world puts can be extracted from the complex number output as the real and imaginary components. The degree of each component will determine its effective stance. Viewed on end each leg then sweeps out a circle of possible action forward-back and up-down like the oars of a boat. We will come up with an algorithm to translate those motions into twists and ultimately effective motion of the whole body. We might want to add in variations in terrain as a feedback that affects efficiency of motion also.

@@@

As of now, implementation is in the early stages. My discovery is forthcoming in next email or so.

 -------------
Swinton

Attraction to Shape

Swinton Roof

Dec. 2002

 

"I admit it. I'm attracted to shapes ... especially the non-linear ones. But ohhh those shape-shifters. Now that's a different beast!" ...rasputin11

I've made an exciting new discovery - a new kind of attractor. This attractor emerges from a special type of interacting process that can spontaneously self-organize into unified shapes and indeed will tend to do so. These shapes are attractor basins that appear to be stretched out into curvilinear one-dimensional continuums. I believe I may have discovered the core mechanism of semiotic unity itself. This paper will attempt to explain what I mean by shape attractors and semiotic unity.

This new kind of attractor is in fact, a super-attractor. This new kind of attractor is not a super stable rest point toward which state orbits quickly converge though. Instead the orbits lock immediately and precisely onto the attractor continuum itself, even given random starting conditions. This is why I call it a super-attractor. How a discrete recursive process can lock onto a curvilinear continuum is the real mystery here. I believe I have stumbled on a way to bridge the gap between discreteness and continuity and without invoking infinities.

I made my discovery during the initial stages of what I call the Mandelbug Project. The reader will hopefully have read my initial report on this project. This project was an attempt to model Mark Tilden's insect robots using networks of nodes whose activity functions are based on the iteration of complex numbers. Results indicate that I may have found a recursive process with profound implications. First though, I think it is important to clarify why I think 'unity' is such an import idea and how what I have done relates to this.

@@@

What do I mean by semiotic unity?

Well, we accept without thinking about it that a symbol can only refer to one thing at a time. The symbol itself is a thing and the thing it refers to is a thing. Now we can potentially break the thing referred to down into pieces, but not so with the symbol. We might break its external representation (ex. typographic picture or stamp) into pieces, but the essential symbol itself must remain inviolate. Any change in its structure changes it into some other symbol or entity. We might expand or modify the referential meaning of say 'book' to include electronic books, but if we change 'book' to 'bok' we have an altogether different beast. On the other hand, if bok is just a typographic error or perhaps say some other language for 'book' then the meaning hasn't changed.

Somehow or other, our minds make a unity out of symbolic relationships that is a sort of logical atom. This atomic premis, so to speak, is open ended in that the representation and the referent may be modified, but the primary association between the two has a unity that is invariant across these changes. This unity has a halo that extends around each end of the relation also. We cognize particular representations like the letter 'a' for instance as unified shapes. The same holds for the things referred to also. They partake of 'thingness' because they inherit unity from being bound to the referential symbol.

The foundations of logical discourse in mathemtatics is pre-immanently concerned with binding of variables in relationships. The axioms of a system indeed seem to be the original rules of binding. Self-reference and abstraction can cut across these bindings sometimes, though, and produce semiotic disaster. The exclusion principle of semiotics requires that a symbol mean only what it means. It cannot contradict itself. Confusion is the result if it does. Mathematics thus has to be cold,hard and precise to get the most rigor possible from its symbols. It seems to get into trouble when the symbol statements become self referential. General semiotic process is fluid and more subject to overlap and transgression not to mention multiple associativity but in general the same principle still holds. Consistency is a requirement on some level, and consistency can only result if there is a unity.

One problem with unity is that it cant just be a point or even worse empty. That is an extreme degeneracy of the concept of unity. We want to understand unity of the many. How does a plenum become one? That is what this essay is about. It turns out that while self-refential process can be destructive, it also just might be the core mechanism behind unification. Self-organization by recursive process is the essential idea. Now self-oganization in turn seems to result from attractors.

Attractors tend to be abstract unrepresented entities which act as if they were some metaphysical force wrapping things around themselves. They are a direct implicit product of parameters or initial conditions or boundary conditions. Whatever the source, they exert a convergent force on the process to come to some sort of equilibrium or periodic simplification of states. A plenum of states thus simplified tends to what one might loosely call a distinct and special unity. Some people just call it attraction to order. We want to study this sort of order in greater detail here.

The hallmark of recursive non-linear process is chaos and attractors. Attractors organize, but can they unify? Attractors, simple and strange are mostly just isolated points about which non-linear process swarms. Can we have an even more organized higher-order unity?

First I need to rehash a conventional view of attractors to establish why what I have discovered is indeed remarkably different. This will require some in depth exploration of the dynamics of how recursive process operates close to the edge of chaos. Hopefully the reader will endure this journey. I promise a rather interesting payoff in the end.

@@@

Review of the Standard Type of Attractors

Since my project involved the Mandelbrot set, let's confine our discussion to a process with 2-dimensional state variables. Each state variable in this process will have an x and a y component i.e. it can be represented by a complex number. Our process in this case is going to be a simple one step recursive equation - the Mandelbrot generator Z = Z*Z + C.

The Mandelbrot set is a global convergence map for all the possible individual Julia sets implicit to it. Each 'index' or 'locator' point on the Mandelbrot represents a complex constant 'C' that iteratively applied and remapped to each point Z in the complex plane yields a map of that particular unique Julia set. The iterative equation is Z = Z*Z + C, where Z is any point in the complex plane and C is the constant that identifies the particular Julia set. When Z is set to zero and C is chosen as any point in the plane we get the full blown Mandelbrot. The Mandelbrot thus indexes all the Julias.

Below is an illustration of the Mandelbrot, a particular point on it's edge and the associated Julia convergence map.

Now the above is merely a convergence map. Each point represents a test for convergence result from (in this case 30 iterations) a series of recursive iterations of Z = Z*Z + C for that particular starting point.

If we want to understand attractors, though, we need to look at the actual iterated values and how they move or jump around as the recursion proceeds. I chose the constant C above at the point where the y-axis crosses the inner cardioid of the Mandelbrot. The cardioid curve is useful because it guarantees points somewhere close to the critical edge of the set. It thus yields interesting Julia sets. The edge is critical because points on the inside tend to have convergent iterations while those on the ouside are divergent. Points close to the edge tend to be undecidable. The actual representation is of course finite and heuristically decidable by using a fixed cutoff value for decision purposes.

When a series of iterated values are said to be convergent they tend to circle or orbit about what is called an attractor. Below is an illustration of the first 5 iterations of C for the above Julia. The white lines are drawn to each successive point. Notice that the basic orbit trajectory is triangular but that the recursion does not return exactly back to its starting point. Some constants do yield exact returns, some don't.

Notice that the above orbit appears to be attracted to or circling (in triangular fashion) about a certain point. Next is shown a sampling of 30000 iterations given random starting Zs for the given C above. The attractor now stands out in glorious color but the actual iterations are obscured. Keep in mind though that the individual orbits are point by point following paths very similar to the inital structure above.

Below is the same attractor superimposed on its Julia. The Julia is a map of how each starting point behaves about that singular attractor. Every point in the black region gets trapped around the attractor. The set is sort of like the envelope for escape velocity around a gravitational potential with unusual shape.

The important thing to keep in mind now is that this attractor is a fixed solitary point and that the orbits or trajectories in a summary sense are a smear of discrete points. Thus we have a fixed constant C with a fixed attractor and a lot or carrying on around that attractor with no direct path straight to it. Different constants yield different Julia sets with different attractors.

Actually the situation is more complex than it appears though. There are many attractors above that get obscured by the central image. They basically lie hidden in the whorled arms of the central attractor. In addition if the convergence map above is done at higher iteration levels more structure of the Julia is seen to correspond to the many attractors. The problem is portraying this in a visible way because many different chaotic orbits at high iterations tend to obscure each other. The beast chaos represents its way to us very often as randomness because the myriad highly organized chaotic orbits obscure the real dynamics.

One simplification is to notice that the initial 5 iterations for C above (white lines) dont quite come back around to meet exactly. This offset in relation to total angle around the central attractor gives a clue as to the periodicity of the orbit. If the angular deviation from exact radial symmetry is rational the orbit will in general achieve (angular)closure at some point and the period will depend on this value. If it is not rational, we have aperiodic orbits (chaos). This is the standard idea behind the period doubling route to chaos. Now, if we move C just a little left of the y-axis to a place where it returns after 3 iterations, we get a period 3 situation. This simplifies the structure and reveals three attractors that tend to be obscured like those above.

This picture appears more complex but the dynamics are really simpler. The overall Julia appears more complex but it is only because I increased the iteration depth to a much higher level. The previous plot would be even more complex at these iterations. The first thing to notice is that the first five iterations from the constant C now join back closely to establish period 3 orbits and the secondary orbit attractors lie close to the points of the triangle. The central attractor is still there but more of the inner dynamic now lays revealed.

[ADDENDUM]
Oops, I just discovered in one of my books a better way to illustrate attractors. Should have thought of it myself. By simply plotting the last iterate in a long series of iterations (100+), one can be assured the point is pretty much at the location of an attractor. Below are the maps of attractors for the two Julias we discussed:

 

 

As you can see, the second period-3 situation is indeed simpler. Note that each point in the above maps is an individual attractor. Also as we will see, the attractor boundaries are fractal!

Other constants C yield different potential angular periodicities on the path to chaos. Some are five pointed stars. Some are even square. Actually there are infinitely many attractors scattered about in every(?) Julia. It is just difficult to pinpoint and explicate them. That's why I chose the above simplifications and coloring tricks.

Orbits about an attractor can be super-stable, periodic, or chaotic. Super-stable orbits quickly converge to a fixed point. Strange attractors have orbits which chaotically trip from one basin to another. The above period 3 set of attractors can be modeled physically with an iron pendulum suspended between three magnets. It is a strange attractor and the final resting position is indeterminate even if the bob starts close to one particular magnet.

It may be difficult for the reader to follow where I am going with all this but I assure him I am only trying to establish some general behaviours that apparently apply to conventional attractor systems that are fractal. I'm now going to talk about this behaviour from a more global perspective.

The general area around an attractor is called an attractor basin. The boundary of an attractor basin is a curious thing. In general, points inside the boundary are convergent and trapped by the attractor. Points outside the boundary are divergent and escape the attractor. The attractor then acts as a repellor. Points on the boundary, though, can go either way. The boundary is not equicontinuous.

What if there is more than one basin of attraction? If there are more than two, the boundary has to be divided up in some way and it cannot be one continuous border like it can be between two attractors. A sort of pie shaped division occurs and the boundary fragments fractally. In general, for any neighborhood about a point in a basin boundary, there is a point belonging to each and every one of the other basins, no matter how small the neighborhood is. Also in general, there are infinitely many basins of attraction fractally distributed about the central pre-image. In some cases the resulting boundary is connected. In others it turns to 'fractal dust'.

It seems to me that an attractor boundary is like having a set and its complement overlap. This is a logical conundrum. Part of the problem is that sets in and of themselves say nothing about position unless they are metric. Once we include metric relations, topology must surely be dragged in and the topological structure of a fractal attractor boundary must be unimaginable. For points from two different mutually exclusive domains (i.e. repeller vs attractor basin ) to coexist in the same metric space (the boundary) there must be something real fancy going on!

It thus appears that the 'Mother Nature' of Math chooses the best of a difficult situation. She seems to abhor vacuums and singularities, so what to do? It's like a game where she has to touch all spots on the board at the same time while standing in one awkward position. Fractal dispersion is her solution. All in one and one in all. The catch is that continuity has been lost. We can no longer produce a shrinking neighborhood that captures points belonging to one category only and the points cant be sequentially interpolated (in any direction) the way they can with a continuous function. Connectivity still remains in some Julias, but in others, even connectivity is lost.

Thus we arrive at a very general definition of a Julia set. A Julia set is the boundary of all the attractor basins. It is also described, I believe, as the closure of all the repellors. An apt description is to say also that it is an event horizon within a phase-state description of a discrete non-linear dynamic process. The convergence map plot of a Julia set,thus represents a critical edge for states in a non-linear system. From a distance it looks complex but neatly definitive. The internal dynamics,however, are exceedingly unpredictable and sensitive to initial conditions. The structure at high resolution is fantastically fractionated and distributed even down to unconnected fractal dust in some cases.

Complex system behaviour can arise from simple beginnings. In addition, the system states can coalesce or fractionate as they trip over the ragged event horizon lurking within.

@@@

At last, we have covered the mathematical skull druggery needed to get where I am going in this paper. Before long we will get to the really neat discovery. To recap from the start, I mentioned unity and wondered what it was in a semiotic sense. I also mentioned my work with a complex number model for a non-linear insect robot. What's the connection? Also, what does unity have to do with all that mathematical attractor stuff?

Well, first, I find it attractive to think that attractors in some way attract things about themselves and cause things to coalesce in some unifying fashion. We have seen from the internal dynamics of attractor basins that this is true only from picturesque point of view. The awful ugly truth is that there exists a horrendously complex bifurcative distributive nightmare going on at deeper resolutions. The unity thing seems to hold only from a statistical point of view.

Now if one is going to design a device with some intelligent, useful, rational behaviours, statistics is not good enough. You dont want its internal states to go off the deep end if a single resistor varies a nano-ohm in value. Unified behaviour in the face of noise is needed. Yet one still needs variability, adaptability, novel behaviour etc. There has to be some kind of balance and homeostasis amidst interesting dynamics.

Semiotic unity has a similar problem. If symbolic unity is achieved in a brain, how does it do it? A brain is a fantastically complex non-linear system. What enables it to avoid fractally treacherous and chaotic event horizons that rip up any possibility of a unified coalescence of the state vectors. And how does it do it yet still remain flexible and novel? Some sort of critical edge would be good for decise decision making, but conversely, we can't have every minute change affect a system with hair-trigger sensitivity. Symbols have to retain a certain fixed identity yet still connect adaptively to novel changes.

The foundations of mathematics has a similar problem. Recursive statements lead to inconsistency and lack of completeness. Attempts at unified foundations for symbolic systems thus becomes fractured by holes and fork-ed tongued truths. Mathematics, the bedrock of rationality, stands on the brink of bifurcative nonsense. Recursive functions and algorithms in computer programming are notoriuosly difficult to debug and in some cases impossibly so perhaps.

AI has a similar problem. Hierarchial hardwiring is brittle and non-adaptive to any small variation. Rule based decision making becomes chaotically attracted to random results. Neural nets are notoriously difficult to train and remain locked in on their specific training. Recursion is usually avoided in their design to enable learning in the first place. Therefore if one thinks that artificial (or even natural) intelligence is rooted somehow in self-referential process, how does one proceed.

My answer was to simply experiment and see what I could cook up. My MandelBug Project was based on this.

@@@

The Experiment Begins ...

Recall the transfer equation I decided to use for MandelBug...

Recall also the network connectivity and placement of the constants.

I eventually modified all of the above as I experimented, but the general design was still there. I intentionally left out the external input/output functions for the sensor and actuator nodes, though, because I wanted to study the internal states of the system first. I reasoned this would be like letting the bug sleep and perchance to dream. If I could get interesting behaviour then I might consider putting it all together and build a world for it to move around in. It turned out that this setup was more like a wild ride in a sensory deprivation tank than a peaceful slumber.

Let me put a little more perspective on what I was doing before demonstrating results. When I instantiated Mandelbug, I initialized all the internal Z activations to random complex numbers bounded by the box (-1.0,-1.0) to (+1.0,+1.0). The C constants were my parameters which I varied experimentally. Since this was a non-linear dynamical system, the way to study it was simply to follow its activation states over time. Also note that since I was using a sigmoid squashing function, all internal states would lie within the bounding box above i.e a 2X2 box centered on the origin of the complex plane.

To clarify the different node states I plotted each plexus level in a different color. The 2 front legs, for example, plus the leg plexus were plotted in red. This allowed me to visually separate out what each part of the system was doing. I could then tweak each plexus to get interesting behaviour. Each node itself was a colored circle to give its location according to its C constant. The plots thus give all the states and parameters of the system at a glance. Every bit of it is there visually. This was a reall boon for experimentation.

Now phase-state plots have a time dimension. I compromised on this issue by simply letting the system keep plotting on top of itself as it cycled through time. The visual depiction is thus one in which the time slices have all been flattened onto the spatial plane. This gives a time averaged picture, but one can also see it in action while it's plotting. Unfortunately I can only give you in this paper, time-averaged shots which were arbitrarily stopped at some point in Mandelbug's life.

If one followed my discussion above on plotting Julia orbit trajectories to establish attractor boundaries, he can see that it is the same thing - simply plotting successive states of a discrete non-linear system. The system here, though, is a network of Julia generators so to speak. The network geometry was problematic for me and involved lots of programming compiler updates to change the connectivities. I pretty well explored that in as many combinations as I could. The constants were more easily adjustable on the fly using a dialog box for parameters.

One other issue involved whether to evaluate nodes in a feedforward kind of way or assume parallel instantaneous processing. I ended up choosing the latter as it simulated real world processing better, and indeed the plots did lock in on patterns more quickly using this mode. To implement it requires extra effort though as one has to set up mirror states to store everything temporarily until all have been evaluated. One then has to go back and swap everything out. This lets each node evaluate equally at the same phase-state time with all the other nodes - concurrent processing if you prefer.

@@@

First Results

You may be curious as to what I was looking for. Well, the easy answer is anything that suggested a pattern or attraction of some sort or other. Random states would be no good at all. On the other hand I didn't want the system to converge quickly to some fixed state either. Mandelbug had to live and breathe. I did want it still born or psychotic either.

First results were disappointing. To show you what I was up against, recall the Julia set above. It produces beautiful convergence maps. What about setting it up to simply plot state orbits though? Here's what you get with the time-averaged view I was proposing for Mandelbug, except it's the Julia above.

As you can see, it doesn't look promising. And it wasn't. Here are some samples from my early tests.

After endless tweaking of parameters, I was able to coax out some patterns. There is interesting detail not easily seen in the above pics, but in general, either the system quickly converged to small areas or it exploded into chaos.

Remembering Stuart Kauffman's work on networks, I figured that I should limit connectivity to 2 or 3 connects per node. I even experimented with full connectivity, but Kauffman's research was validated. Networks with more than a few connects per node always tend to chaos or flat steady state. They are just hypercritical.

I began fiddling for hours at a time trying to get parameters, transfer equations, sigmoid values, connectivity etc. just right and eventually I managed to produce system behaviour like below:

This struck me as potentially very interesting, but the system was so critical to set up. The slightest change in any parameter would throw the whole thing into chaos again. This surely couldn't be the answer. Attractors and fractal boundaries are so sensitive to intial conditions, I began doubting my sanity for even starting this project! Tilden's robots display problem solving and very short term memory, but I began to suspect it was a kind of optimistic hoax. Yeah sure, he could get them to walk around, but a simpler zero transistor system could do the same. Tilden claims that the linear feedback to the system from the external world is what tempers the non-linear dynamics. He might be right, but I was skeptical.

I abandoned the project. It was just too daunting. demoralized, I began reading Berlinsky's book, "Advent of the Algorithm". This refreshed my mind and set me free from the MandelBeast for a while.

@@@

Holy Jeepers!

After resuming the project I stumbled on what I had been looking for! A small change in the transfer equation did the trick. Here are a some of my results.

The interesting thing is that the attractors are on a curvilinear continuum now. If one watches the behaviour of the system as it plots states in real time he can see that the state points jump around these closed loops in dicrete positions far apart from each other. Curiously though, the states cycle and create a closure that advances just past the last closure along the curvilinear continuum. It is an amazing thing to watch.

The assymetric plot above is especially interesting and suggests that any and all shapes are possible. Intriguing is the idea that one could plug external action routines into the outer nodes and have a mandel-bug AI that moved around and interacted with it's enviroment in a unpredictable but coordinated way.

Unfortunately I ran out of steam on this project due to health issues (surgery) and lack of any response from friends to this idea. The project stays in limbo until someone expresses interest in further work with this idea.

Swinton (Oct 2003)