Genetic reproduction and evolution of aesthetically pleasing fractals.
C++ C Objective-C Other
Permalink
Failed to load latest commit information.
libs/AntTweakBar Add ternary nodes Mar 28, 2014
.gitignore Updated .gitignore Dec 12, 2013
Makefile Replace dirty shared library linkage with proper Makefile components Apr 7, 2014
Queue.h Switched to mainfractal/safequeue setup Mar 20, 2014
README.md README now ten times cooler and more accurate Dec 2, 2014
bb.h End of Semester commit. This would make more sense if the bitbucket r… Dec 4, 2013
color.cpp End of Semester commit. This would make more sense if the bitbucket r… Dec 4, 2013
common.h create filter image when saving Apr 21, 2014
expression.cpp Add boolean ops Apr 28, 2014
expression.h Add boolean ops Apr 28, 2014
expressionParser.cpp Add boolean ops Apr 28, 2014
expressionParser.h Add ternary nodes Mar 28, 2014
fbo.cpp add alpha_save bool in fbo.cpp Mar 28, 2014
fbo.h Add precision point and alpha control, fit values to bar, update only… Feb 21, 2014
fractal.cpp create filter image when saving Apr 21, 2014
fractal.h Node cleanup, add print functions Mar 28, 2014
fractalEditor.cpp Switched to mainfractal/safequeue setup Mar 20, 2014
fractalEditor.h BG color control, reformatted tweakbar, limit numerical values Feb 21, 2014
main.cpp merge resolution Apr 28, 2014
mainWindow.cpp create filter image when saving Apr 21, 2014
mainWindow.h Async with loader; image saving from cmd line broken Mar 20, 2014
rng.h End of Semester commit. This would make more sense if the bitbucket r… Dec 4, 2013
tw.h Switched to mainfractal/safequeue setup Mar 20, 2014
types.h End of Semester commit. This would make more sense if the bitbucket r… Dec 4, 2013
vec.h End of Semester commit. This would make more sense if the bitbucket r… Dec 4, 2013

README.md

Genetic Fractals

A research tool studying the generation and evolution of aesthetically-pleasing fractals. It uses crowd-sourced testing along with observational patterns in the mathematical structure of attractor fractals to find optimal constants and equations.

This program is meant to be used in conjunction with Tyler Yates' Java Evolutionary GUI.

Genetic Fractals

Dependencies

    sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev libglew-dev libpng-dev

Building

    run 'make' in root folder

If you have issues linking the AntTweakBar library on compilation, follow these steps:

    1. Manually run 'make' in libs/AntTweakBar/src/
    2. Add the libs/AntTweakBar/lib folder to your LD_LIBRARY_PATH

Usage

Rendering Mode

To open the single-fractal viewer with a randomized Clifford Attractor:

    ./aesthetics

You can also provide optional infix equation representations with vars {x,y,z}, consts {a,b,c,d}.

    ./aesthetics [ -p PRECISION POINTS] [EXPR_X EXPR_Y EXPR_Z EXPR_R EXPR_G EXPR_B]
    ./aesthetics -p 100000 "sin(-1.4 * y) + cos(-1.4 * x)" "sin(1.6 * x) + 0.7 * cos(1.6 * y)" "x" "x" "y" "z"

Controls:

  • f - Toggle Fullscreen
  • s - Save image to test.ppm

Image Save Mode

In addition to rendering mode, you can call the program to draw and save fractals offscreen with optional parameters:

    ./aesthetics -save [ -p PRECISION_POINTS ] [ -s WIDTH HEIGHT ] IMG_NAME EXPR_X EXPR_Y EXPR_Z EXPR_R EXPR_G EXPR_B

Kevin Yeh and Tyler Yates © 2013 (UT Freshman Research Initiative: Computational Intelligence)