Mandelbrot-maps Extended Functions Version

Download the New Extended App - Source Code

For help/queries, email
For a more powerful Mac application see: Dark Heart Apps


Mandelbrot Maps is an extremely elegant intuitive to use viewer for Mandelbrot and Julia sets which is extremely enjoyable to play with, originally developed by Alasdair Corbett as a university project and extended here by myself aka Chris King to include a diverse variety of complex functions displaying the full intricacies of these fractals.  You can download a copy for android (compiled on Android 4.4) from the above link and sideways load it into a phone or tablet using USB or a wireless hotspot. On my Nexus 7, I downloaded ES File Explorer from the Play Store and simply double-tap the file in ES after copying it into downloads.


A Samsung Galaxy 5 running Android 6 showing the touch button (gray) to give the Julia set (inset) and the Assistant menu (blue right) giving all the options by clicking the blue menu icon and then the three vertical dots icon in the centre. Under Preferences you can select each of the different functons ilustrated below.


On our Galaxy 5 the app can be activated using MyFiles and clicking the app. With Android 6 there is no menu buttion, so you need to go to Settings > Dexterity and Interaction > Assistant menu and turn it on. This then gives the full functionality includingthe extended functions, as shown above.


Fig 0: The original Mandelbrot and Julia sets for z2+c


The functions include z2+c, z3-z+c, z4/4+cz3/3-z2/2-c, czexp(z), cCos(z) Cos(z)+c, (2z3+c)/(3z2+c-1), and cz2(z-4)/(4z-1),  A further update is planned to include the Mandelbrot and Julia sets of the Riemann zeta function. This article shows examples of the eight functions portrayed and the simple intuitive controls to explore them. Click any image to see in full resolution.



Drag with a single finger to move around the fractals. Any new areas will fill themselves in once you stop.Use two fingers to zoom in and out. Again, the fractal will re-render once you stop. To compare the Mandelbrot and Julia sets, long click a point in the Mandelbrot set or tap Add Julia on the menu. Drag the coloured circle around to change the point parametrising the Julia set. To see the fractal in more detail, tap it. The zoom level and region displayed will stay constant as you swap between the two fractals. Tap Reset on the menu to return to the default area. Dismiss the small fractal by tapping Remove Julia/Mandelbrot on the menu. If you lose track of the Julia pin, long click again or add and remove the Julia from the menu to bring it to you.


Other Menu Options and Changing Functions

Under Preferences you can choose the function being iterated, as well as the colouring scheme for each fractal, whether or not to do an initial crude rendering (a blockier first pass that gives a faster first impression but takes slightly longer overall), and whether or not to show the time for each render after it's complete. Tap Detail level to control the level of detail on each fractal. Higher detail means more iterations will be done when rendering, taking longer but giving a clearer picture. Save/Share lets you save an image of the current fractal into your Pictures folder or share it using email, Facebook, Twitter, etc.



 Figs 1 & 2: Double Mandelbrot set of f(z)=z3-z+c with two critical points showing common region in white where the Julia sets are fully connected and regions in yellow where one only component is conencted due to c being in one of the two Mandelbrot sets. In the blue region neither component is connected  as shown below in a complex example in the cleft near both boundaries.



Development of Mandelbrot Maps

Mandelbrot Maps was originally developed as an undergraduate dissertation project by Alasdair Corbett and updated by Sky Welch. The math functions were programmed in by Chris King (see Any feedback you leave on the Google Play Store page is appreciated. If you find any bugs, please include as much detail as possible, such as the device you\'re using, what you were doing when the error occurred, and what version of Android you're running. Mandelbrot Maps is open-source software, released under the GNU General Public License (v3). The source code is linked from the Mandelbrot Maps Google Play Store page.


The Mathematics behind the Fractals

The Julia set is the set of points on which a complex iteration is chaotic. In the complement of the Julia set, the iteration proceeds in an orderly way towards attractors. The Mandelbrot set is the set of c-values for which the Julia set of the iteration z=f(z)+c is topologically connected. This would seem to be an impossible task to depict but there is a cunning trick. For f(z)=z2 it turns out that we can compute this easily, because the critical point, where the function is horizontal, like the local maximum at the top of a mountain, is the last point to escape to infinity because it is last to leave under varying c. If the Julia set of z2+c is connected for a given c, it surrounds the critical point, so iterating from the critical point can't escape to infinity. So if we iterate from the critical point for each c in the complex plane and colour by escape steps, with white if we don't escape in a given number of steps, we can depict these points in the plane, forming the Mandelbrot set, which becomes an atlas of all the Julia sets for different c-values. Outside M, the Julia is a disconnected fractal. Inside it is connected. The iteration in Mandelbrot maps depicts the Julia sets and their internal basins in white colouring only their external complement. Thus if the Julia set is connected it will appear filled in in white. One can also trace the internal orbits and colour them for most Julia sets.


For more complex functions with several critical points, we get a collection of Mandelbrot sets, whose overlapping properties reflect different ways the Julia can disconnect. Hence the cubic and quartic examples, as well as the Hermann ring, and cos(z)+c, which has repeated Mandelbrot sets very similar to the cubic example z3-z+c illustrated, have multiple critical points, and only the intersection of all the Mandelbrots is coloured white, guaranteeing the Julias are fully connected as well, with other shaded Mandelbrot regions showing partial disconnection of the Julias. The transcendental functions such as c*cos(z) and c*z*exp(z) show that many properties found in z2+c are universal.




Figs 3 & 4: The fourth degree function Int((z+1)(z-1)(z+c) or z4/4+cz3/3-z2/2-c which has critical points at ±1 and –c showing three overlapping Mandelbrot sets with a complex fourth degree Julia set below.





Figs 5 & 6: The Herman ring function cz2(z-4)/(4z-1) which gives rise to a unique Herman ring Julia set with a continuous flow at golden mean angles on the circle in the left part of the set. The Julia set below lies close to but not right at the point where the Herman rings appear.





Figs 7 & 8: The Mandelbrot set and a Julia set of czexp(z) with a single critical point at z=-1, showing quadratic Mandelbrot satellites showing some properties of the quadratic Mandelbrot set are universal. The Julia set taken from a period 3 bulb in the main body shows a lattice of period 3 Julia kernels locally homologous to the quadratic case.




Figs 9 & 10: The Mandelbrot set of c.Cos(z) again showing quadratic universality. Although it has an infinite number of critical points they induce equivalent iterations. The Julia set below again shows a quadratic kernel in the centre repeated in the lattice.




Figs 11 & 12: Mandelbrot set of the Newton's method for finding the roots of a polynomial applied to z3+(c-1)z-c=0 which as one zero at z=1 (the other two can be found by factorizing out z-1 and solving the remaining quadratic in terms of c). Using the Newton's formula we arrive at the iteration of the function (2z3+c)/(3z2+c-1). When c = 0 we have the iteration for the cubic roots of unity - i.e. z3- 1 = 0 illustrated below showing Newton's method generally finds the roots in the three deep basins but can occasionally get caught in chaos. Notice every one of the three basins intersects both the other two at every point on the boundary because of the fractal nature of the boundary.


Figs 13 & 14: The function Cos(z)+c has a regular repeating structure unlike cCos(z) above whose amplitude grows with c, but it now has two repeating critical points, one at z=0 and one at z=pi because the additive shifts of c take the maxima and minima out of symmetry. Consequently it has a repeating Mandelbrot set pair homologous with the cubic example z3-z+c with homologous Julia lattices as illustrated (below).


Figs 15 & 16 Mandelbrot and Julia images of the function z^4+cz^-2 showing baby Mandelbrots with 3=4-1 fold and 6=4+2 fold symmetries.