Skip to content

asclines/ReadySetFractals

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ready Set Fractals

Ready Set Fractals aims to create a simple way to design, generate, and explore Mandelbrot and Julia Set Fractals. By providing a simple yet extensive interface, this project aims to give the user a variety of options when it comes to generating a set fractal and exploring it. While not all of these goals have been met yet, they will be. Check out the features section below to see what is done and what is coming up.

Showcase

To see what awesome fractals have been generated by this project check out the showcase in the wiki!

Features

Current

  • Generate julia set fractals
  • Generate mandlebrot fractals
  • Output image is a BMP image
  • Image color can be B&W or RGB colors

Future

  • Be able to handle Multi-GPU
  • Expand coloring to a HSV model to give more options for the coloring of the fractal
  • A web interface / GUI for creating and viewing the fractals
  • Multi-OS compatibility

Requirements

Currently this project has only been testing on Linux systems, but work is being done to make it work on all systems. System Requirements:

  • CUDA 7.5
  • NVIDIA graphics card
  • NVCC and a C++ compiler (NVCC should come with CUDA 7.5)

Installation

To install the standalone program to generate a fractal on a Linux machine, it is recommended to use the makefile included in the project. make install will install the program at which point it can be run with ./program

Usage

The program has two methdods of accepting user input for fractal settings, from a text file and as options when calling the program from the command line. A quick note on how the program sets the preferences for the fractal. First, the program looks at the setting file for preferences. Second, the program looks at the command line options, these options will ovveride anything set in the text file. This is done to make it easier to make slight changes to the fractal on the fly as the command line arguments are all optional.

Using text file

The program loads the user preferences from settings.txt The settings file is formated such that for each line there is a key/value pair in the format key=value with no spaces. The settings.txt looks like this:

image-dimension=1024
image-radius-xy=1.5
image-graph-x-offset=0
image-graph-y-offset=0
image-color-option=2
image-in-bw=0
max-iterations=500
escape-range=2
fractal-type-value=1
constant-real=-0.74543
constant-imag=0.11301

The left side of the '=' should not be altered. The user can change the right side of the '=' to generate different fractals. While this isn't the final goal for how to adjust the fractals, its the current way to do it without having to rebuild the program each time the fractal is to be changed.

Using command line

In addition to using the text file, the user can adjust the fractal settings from the CLI using this command. ./program [-f type] [-d dimm] [-e escape] [-m iterations] [-r radius] [-x x_offset] [-y y_offset] [-c color] [-I imaginary] [-R real]

##Libraries Here is a list of all external libraries used to make this program.

History

This project was initially a class assignment in a Mathematics course I took at Texas Tech University. The assignment was to write a program in CUDA that created a Julia Set Fractal image. I have since taken that assignment and extended its capabilities.

Credits

My teacher for inspiring me to create this.

License

See LICENSE