Gravity set

From Wikipedia, the free encyclopedia

The Mitchell-Green gravity set (MGGS) (a fractal) was created by Fred Mitchell and Chris Green in 1992.

The gravity set is a set of points in the plane. Like the Mandelbrot set, the gravity set is defined as follows: a certain mapping f from the plane into itself is considered. If x0 is any point, if the sequence defined recursively by xn+1 = f(xn) does not diverge to infinity, then x0 is a member of the gravity set; otherwise it is not. The difference between the gravity set and the Mandelbrot set is that the mapping f is different.

In computations, one assigns colors to points according to the rate at which the aforementioned recursively defined sequence appears to converge. The production of the gravity set follows along the same lines of color assignment to points based on the number of iterations it takes for the points to escape the system. One uses the basic formula for gravitation and simple Eulerian integration as described below. Unlike the Mandelbrot set, the plane uses the cartesian coordinate system and thus it is not complex.

The conditions that are considered "escape" is arbitrarily defined, and in most of the maps presented here the escape condition is taken to be a chosen distance from the center of the coordinate system (or center of mass).

The points are iterated through a gravitational system of fixed masses placed in an arbitrary arrangement, and given arbitrary masses. The pattern of the arrangement of the fixed masses is found repeated in distorted fashion at all scales of magnification for many of the maps.

Negative masses are also allowed to be specified, and some of the maps generated have combinations of negative and positive masses.

Image:Fireflies-17-small-overview-thumb.png

Go to Fred's Fractal Gallery to see more examples.

Go to Softology to see examples produced by an Australian researcher.

Chris Green originated the idea in 1992, in an attempt to come up with something "fractal-like" which could allow the user to customize the basic shape of the set. Green and Mitchell were both employees at Commodore Amiga at the time. Green initially implemented the gravity set in Forth. Those initial images were a bit crude, but showed great promise, which spurred Fred Mitchell on to re-implement it with a dedicated program -- written in C on the Amiga, with a GUI front end -- so that he could explore this phenomenon more closely.

Mitchell discovered the incredible richness in the gravity set by manipulating the many parameters involved. Some of these maps can be seen at Fred's Fractal Laboratory.


\mathbf{a}_i = - \sum \frac {Gm_i}{{|\mathbf{r}_i|}^2} \hat{\mathbf{r}}_i where \mathbf{r}_i =  \mathbf{s}_n - \mathbf{b}_i
\mathbf{v}_{n+1} =  \mathbf{v}_n + \mathbf{a} \Delta t
\mathbf{s}_{n+1} =  \mathbf{s}_n + \mathbf{v}_{n+1} \Delta t

where:

b is the position of a Newtonian mass m
G is the gravitational constant
s is the position of a moving particle of negligible mass
a is its acceleration vector
v is its velocity vector
Δt is the calculation time step

This is a discussion of the algorithm to generate the gravity set and the MGGS software used to do it. The techniques used here are similar to those used for generating the Mandelbrot set. The iterative formula is given below. Simple Eulerian integration is used to determine the orbit of the particles. When a preset distance from the center of mass is reached, the number of iterations taken to get there is assigned a color value. The initial state of the particle is determined by its position (which is mapped by the screen), its velocity, which is usually zero (except in the Waterfall map).

In this discussion, the placed point fixed masses are referred to as "stars". "Maps" are the images produced by MGGS -- they are indeed "color maps" of the results of the iterative process.

Given a particle of negligible mass in placed initially at a coordinate in the "star system", the gravitational forces -- or rather, the acceleration due to those forces -- contributed by each star in the system is computed and summed using the gravitational formula.

Using a simple Eulerian integration process, the velocity of that particle is determined. A second integration step yields the particle's new position.

This three-step process is counted as one iteration. These steps are then repeated using the position of the prior iteration.

At the end of each iteration, the distance from the center of the coordinate system is checked. If it is over a certain limit, then the iterative process is ceased for that particle, and a color is assigned to the number of iterations it took to get the particle there. If the particle does not hit that limit before a preset maximum number of iterations are reached, the iteration is halted anyway.

The size of the time step Δt is extremely important to this iterative process, and its setting strongly affects the form of the maps. Experimentation with the delta time setting has shown the most interesting maps appear at around Δt = 2 to 7. When Δt is smaller than 1, the integration process produces more accurate results, but the product also tends to be a noisy "speckled" map that takes a long time to render. It is clear that the error involved in the integration process plays a prominent role in the results.

In some of the maps, particularly Sunrise and Pinwheel, the Gravitational Constant is set to a negative value. This would be analogous to negative gravity or electric fields. Also note that in most of the maps presented here, the gravitational bodies are arranged in a hexagon at a count of six equal masses. MGGS under Linux also allows for other arrangements of the masses, such as "spoke", "linear", and "random". There is also a custom setting where the masses can be arbitrarily placed. Moreover the position and mass of each individual star may be set manually, and negative masses for stars are allowed. Having a star system of mixed positive and negative masses have indeed produced some of the most interesting maps, such as the illustration to the right.

Zooming in on the gravity set maps reveal a fetching panoply of twists and distortions of structures at higher levels. Particularly, you can see the patterned arrangement of the stars twisted in many interesting ways. There is a self-similarity aspect, but these are not "fractals" in the strictest sense as defined by Mandelbrot. But there are some maps which would appear to pass as "fractals" under the strict definition. The varieties of the maps are endless, and is more interesting to the author than the Mandelbrot and Julia sets.

Why do these structures repeat themselves in distorted fashion at smaller scales? The reasons are not fully understood, but a possible clue is that the number of iterations it takes to eject a particle from the system is very sensitive to the initial placement of the particle and the Δt setting. The error that is compounded will affect how close particles come to a star, and the closer the particle approaches a star of positive mass, the more likely it will be ejected from the system since close proximity imparts a higher velocity on the particle.