1
$\begingroup$

There are many really cool fractal escape time fractal programs, but I'm yet to find one where you can enter your own equation?

$\endgroup$

3 Answers 3

7
$\begingroup$

fractint is one of the oldest programs, it has a formula interpreter.

xaos also supports user-settable formulae.

shadertoy probably has many escape-time fractal experiments on it that you can edit in your browser.

fragmentarium has 2D escape time examples, though its focus is on 3D distance estimated fractals.

These last two will require some simple programming to translate the formula into the programming language GLSL (OpenGL shader language), if you find the right example to start from that could be as simple as modifying one line of code. They can support the things I mention below, as they are really programming environments and not just simple fractal formula interpreters.

Note that some formulas require special handling (eg, searching for periodic behaviour rather than "escape" to infinity, or starting from location-dependent critical points). The (art-focused) programs I mentioned will probably display something for those cases, but it might not be mathematically meaningful.

$\endgroup$
2
$\begingroup$

While the tools that Claude points out are all very good, he also points out that "some formulas require special handling". Thus, if you really want to explore complex dynamics, I recommend that you use a more general programming language. Here's some minimal Python code that you could try out on try.jupyter:

%matplotlib inline
from matplotlib.pyplot import imshow, gcf
import numpy as np
xres = 500
yres = 500
xmin=-2
xmax = 0.6
xstep = (xmax-xmin)/xres
ymin=-1.3
ymax = 1.3
ystep = (ymax-ymin)/yres
im = np.zeros((xres,yres))
for j in range(xres):
    for i in range(yres):
        c = complex(xmin+j*xstep, ymax-i*ystep)
        z = c
        cnt = 0
        while(abs(z) <= 2 and cnt<50):  # The stopping criterion
            z = z**2 + c                # The function to iterate
            cnt = cnt + 1
        im[i,j] = cnt
imshow(im, cmap='RdGy')
gcf().set_size_inches((8,8))

Note the two commented lines that define the stopping criterion and the function to iterate. You can modify those to just about anything you want. There's really no limit to things you can explore. As you progress, you'll learn ways to speed up the code and to improve the images. Those are skills that are transferable to other applications as well. Of course, there's no reason you need to choose Python. It just happens to be a relatively accessible language to start with.

$\endgroup$
1
$\begingroup$

Also :

  • Fractalzoomer has user defined formula. It is written in Java so it is multiplatform. Here is wiki
  • It is a Mac OS X application for researchers in complex dynamical systems. It lets you explore your own functions by writing code right inside the application. Your code is compiled on the fly and lets you create arbitrary graphics.
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.