# Fractals/mightymandel

mightymandel is Mandelbrot set explorer made by Claude Heiland-Allen. Here one can find unofficial docs about it

# Features

* draws parameter plane of complex quadratic polynomial with boundary of Mandelbrot set
* License GPL3+
* perturbation technique with series approximation.
* GPGPU based on OpenGL 4 ( "my GPU is much faster than my CPU ")
* writen in C ( C99) with full src code available
* multiprecision

## Plane description

Claude Heiland-Allen[4] uses center and radius for the description of parameter plane.
Radius is defined as "the difference in imaginary coordinate between the center and the top of the axis-aligned view rectangle".
So plane is described by 3 numbers:
* center_re
* center_im
* radius
where center = center_re + center_im * i

# Installation
## Requirements

* opengl for GPGPU
** version 4.1 (supports 3.3 as fallback without perturbation, limiting zoom depth dramatically)
** libraries : gl, glew, glfw3,
* multiprecision ( library MPFR)
* rt
* programs:
** gcc
** make
** bash
** sed
** git
** pkg-config
** ts ( for test suite, see /src/test.sh ) Use in Ubunty : sudo apt-get install moreutils
** doxygen ( for doc)
** for video :
*** AVConv - Automatic video converter
*** FFmpeg
One can check it with ldd :
or look at /src/Makefile :

### Debian packages

On Debian Jessie, this suffices to install everything you need to compile:

## Getting the source

First time :
To update src run ( from program directory):
Then one can build the program.

### Remote repository

the result :

### Version

Example output :

## Building

Got to the mightymandel directory :
and make :
or, in case of problems :
or edit Makefile and add extra flags, but then you will have problems after updating source.
One can also build and run test suite

### Errors
#### glfw

Download and install glfw:
Ubuntu 14.10 ( utopic ) has packages for glfw3 ( but CUDA packages are only for LTS version of Ubuntu , it is now 13.04)
Next error :
add to makefile ( on Ubuntu 13.10 64-bit) :

### check
# Running

Go to the program directory and :

## Version

example result :

## Examples
### mm

One can run ( from program directory) example parameter file fp32.mm using :

### par

Now mightymandel does not load native fractint par files. They need to be transformed to ppar files.
How to preprocess Fractint par file ?
* Split txt file ( with parameters for many images ) into single image files ( with 7 lines of original file)
* splite line with many parameters into lines with one parameter per line ( replace space into newline)
* add ppar extension :
* remove all par files without :
** "type=mandel" ( mightymandel can draw only mandelbrot set )
** "corners=" or "center-mag="
Comment : "pre-processing script removes the input without asking, which is a bit rude! And it doesn't support merging lines ending in \ " Claude
Here is split2ppar.sh by Claude

### ppar

Preprocessed par files are in /examples/ppar directory. Use :

## test

One can run test suite :
Example output :
See also :
* content of csv file int test directory
* images in test directory

## Benchmark

See file BENCHMARKS in program directory for more details

### Check hardware

* type and version of the Central processing unit ( CPU )
* type and version of the graphics processing unit ( GPU )
* version of the video card device driver ( DRV ) and which version of OpenGl it supports
Example output :

### Run benchmark
# Images

Galleries :
* in commons there is a category : commons:Category:Fractals created with Mightymandel
* official online doc gallery

## comment

To extract comment from ppm file :
or
example output :
and from png file :

## colors

* white = exterior of Mandelbrot set
* black = boundary of Mandebot set ( using DEM )
* red = glitches
* yellow = RGB(255,178,0) = known interior of Mandelbrot set
* blue = uncalculated

# Documentation

* official online

## How to contribute ?

If path file was not created try :
then email the .patch files to Claude

# References

* ↑ License GPL3+
* ↑ Perturbation glitches
* ↑ General-purpose computing on graphics processing units in wikipedia
* ↑ Git repository
* ↑ The OpenGL Extension Wrangler Library
* ↑ OpenGl in C
* ↑ The GNU MPFR Library
* ↑ librt library
* ↑ README for mightymandel
* ↑ Fractal Forum - mightymandel
* ↑ and Ubuntu
* ↑ Package: glfw3 (3.0.4-1) [universe]
* ↑ how-to-add-an-extension-to-all-files-via-terminal
* ↑ CPU in wikipedia)
* ↑ GPU in wiki[edia
* ↑ Video card in wiki
* ↑ Device driver in wikipedia
* ↑ OpenGl in wikipedia
* ↑ online official doc gallery
* ↑ stackexchange question : How to extract comment from ppm file?
* ↑ official online doc