Latest version of FractalToy is 0.2.1 (5/11/2012):
If you need to obtain an older release, you can sometimes find them here; at least 1 or 2 past releases will be made available. Alternatively you can also check out a bleeding edge version of the source code from the SubVersion repository.
Since FractalToy is written in Java, you'll need Sun/Oracle's Java Run-time Environment (JRE) version 1.6 or later installed on your computer. You can always download the latest JRE for your operating system from here.
FractalToy only uses the standard Java Foundation Classes (JFC), and does not require any external libraries to be installed. It is also intended to be host-OS agnostic, and has been verified running under Linux, Apple Mac OS X and Microsoft Windows.
Once you've got the JRE installed and downloaded the
FractalToy-0.2.1.jar
file, you can simply launch the
program by typing the following command at your operating system's
command prompt:
java -jar FractalToy-0.2.1.jar
Alternatively if the JRE for your operating system has some graphical
utility for launching programs from .jar
archives, then you
can also use that. Under Microsoft Windows, you should be able to just
double-click on the FractalToy-0.2.1.jar
file from
Windows Explorer.
To build the source code, make sure you have Sun/Oracle's
JDK 1.6 and Apache Ant
installed on your system. Use the supplied build.xml
makefile in the source archive to build the program.
The following build targets are available:
ant build |
Compiles code |
ant jar |
Packages program into a .jar file |
ant run |
Compiles & runs program directly |
ant runjar |
Compiles & runs program from .jar file |
ant test |
Compiles & runs the test suite. Requires JUnit. |
ant dist |
Packages source code in a zipfile for distribution. |
FractalToy is currently in early development stages. This current version, despite being feature-incomplete, is still carefully tested to ensure release-level quality, however there are some known issues and bugs that will be fixed in future versions.
Here are the bugs/glitches/shortcomings that are currently known to me as of this writing:
Strange behaviour when mouse cursor goes beyond the confines of the window while drag-selecting a zoom rectangle. Usually the rectangle will keep extending in one direction while staying stationary in another.
This needs a slight rewrite of the code that handles clipping of the rectangle. The operation has so many border cases that need to be taken into account. The current way of doing this is still viable from a muscle-memory perspective (move the mouse and box still grows at constant rate).
Loss of precision once you zoom in far enough.
For speed reasons, FractalToy is coded using native floating-point arithmetic. You'll find that eventually once you zoom in far enough, the image will start looking blocky and chunky - that's because you're pushing the limits of IEEE 754 double-point precision, and that the numerical round-off (or "underflow") in calculations is causing separate points to get "aliased" together.
There isn't an easy workaround to this problem. Future development plans will likely include either the ability to switch between floating-point and arbitrary-precision arithmetic (ideally automatically as needed on the fly), or some other system that preserves underflow error.