[ANN] Fatou.jl : Easily share Julia fractals



This package enables users of Julia lang to easily generate, explore, and share fractals of Julia, Mandelbrot, and Newton type. The name Fatou comes from the mathematician after whom the Fatou sets are named.

Definition (Julia set): For any holomorphic function on a complex plane, the boundary of the set of points whose result diverges when the function is iteratively evaluated at each point.

Definition (Fatou set): The Julia set’s complement is the set of fixed limit points from holomorphic recursion.

Definition (Mandelbrot set): The set of points on a complex parameter space for which the holomorphic recursion does not go to infinity from a common starting poin z_0.

Definition (Newton fractal): The Julia/Fatou set obtained from the recursion of the Newton method z \mapsto z - m\cdot f(z) / f'(z) applied to a holomorphic function.

This package is supported on versions 0.5 to 0.7, and the newest release for 0.6 and 0.7 now relies on Reduce for symbolic computations with the Newton scheme.

See the wiki for many more detailed examples. Here is one of my own discovered examples

plot(mandelbrot(:(e^(-z)+cos(c)+im*sin(c*z)),∂=[-π,π,-2,2],n=700,N=80,cmap="jet",iter=false,p=-0.3) |> fatou, bare=true)


This is my favorite fractal made with the Fatou package so far, I was completely surprised by what kind of crazy images you can make with this, using the function e^{-z} + \cos(c) + \sqrt{-1}\cdot\sin(c\cdot z) .

Also, if somebody has a good suggestion about how to make this package independent of PyPlot, while still retaining the same color maps that are available from PyPlot, then I am open to ideas and suggestions.

It would be awesome if other Julians could post some of their own discoveries made with this package.


Cool package! I’m a bit confused about the Mandelbrot image in the wiki though. Usually the Mandelbrot set is colored on the outside of the set using the number of iterations required to escape. But I’ve never seen the Mandelbrot set colored on the inside before. What metric are you using to do this?


That’s a great question, yes normally the inside is not colored, but that is boring to the eyes!

You can find out the default information for mandelbrot in the help system

help?> mandelbrot
search: mandelbrot

  mandelbrot(::Expr;                    # primary map, (z, c) -> F
    Q::Expr     = :(abs2(z)),           # escape criterion, (z, c) -> Q
    C::Expr     = :(exp(-abs(z))*n^p),  # coloring, (z, n=iter., p=exp.) -> C
    ∂    = π/2, # Array{Float64,1}      # Bounds, [x(a),x(b),y(a),y(b)]
    n::Integer  = 176,                  # horizontal grid points
    N::Integer  = 35,                   # max. iterations
    ϵ::Number   = 4,                    # basin ϵ-Limit criterion
    iter::Bool  = false,                # toggle iteration mode
    p::Number   = 0,                    # iteration color exponent
    m::Number   = 0,                    # Newton multiplicity factor
    seed::Number= 0.0+0.0im,            # Mandelbrot seed value
    x0          = nothing,              # orbit starting point
    orbit::Int  = 0,                    # orbit cobweb depth
    depth::Int  = 1,                    # depth of function composition
    cmap::String= "")                   # imshow color map

  Define Mandelbrot basin in Fatou

and you can in fact use any of your own metrics for it via the keywords.


To answer this question specifically, Fatou has essentially two different plotting modes controlled by the iter boolean keyword. In the example you referenced, the coloring function e^{-|z|}\cdot n^p is used with the limit values of z, which causes a coloring value that also varies on the inside of the set.

However, if you want to get the traditional iteration count display of the Mandelbrot set, then you need to set the iter keyword to true as such

mandelbrot(:(z^2+c),n=700,N=20,∂=[-1.91,0.51,-1.21,1.21],iter=true,cmap="gist_earth") |> fatou |> plot


Then the coloring scheme works as you typically expect it. The title of the plot tells you what kind it is.