/vanilj

Vanlij is a mandelbrot explorer.

Primary LanguageGoThe UnlicenseUnlicense

WIP

This project is a work in progress. The implementation is incomplete and subject to change. The documentation can be inaccurate.

Vanilj

Vanilj is a mandelbrot explorer written in go. It's name is a reference to "vanilla dreams" which is an awesome Swedish cookie.

Inspiration

sub.blue

sub.blue old blog

orbit traps

Installation

go get github.com/karlek/vanilj/cmd/vanilj

Generate an image

$ vanilj -z 500 -cr 1.5018 -ci 1 -i 200 -t random -width 500 -height 300 -o "1.png"

Flags:

  • cr: Real value offset from origio to zoom in on.
  • ci: Imaginary value offset from origio to zoom in on.
  • i: Number of iterations performed.
  • t: Which color scheme to use, valid options are ["random", "pretty", "smooth", "pedagogical"].
  • z: Zoom value. How many magnifications to make on the center point.
  • o: Output filename.
  • width: Width of created image.
  • height: Height of created image.

Examples

Pedagogical uses only five colors and cycles between them to represent the rate of divergence.

Pedagogical representation of the Mandelbrot set

Pretty uses a gradient of colors proportional to the number of iterations. This will make the image softer and more aesthetically pleasing.

Pretty representation of the Mandelbrot set

Random creates a unique gradient each time, with a number of colors proportional to the number of iterations.

Random representation of the Mandelbrot set

Smooth uses the "Normalized Iteration Count Algorithm" which removes the bands of colors with a smooth gradient. The bands can be observed in the Pedagogical representation.

Smooth representation of the Mandelbrot set

All images were created with:

$ vanilj -cr -1.5018 -z 1000 -i 800

API documentation

Public domain

I hereby release this code into the public domain.