Skip to content

mbilotta/dpc4j

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

License: GPL v3

Default Plugin Collection for Julia (DPC4J)

Minimal set of plugins to start exploring fractals with Julia.

Contents

Currently DPC4J provides 2 number factories, 3 formulas and 4 representations.

Number factories

  • Double provides IEEE 754 64-bit floating point calculations. Functions like sine, cosine, exponential, etc. are computed simply using their counterpart methods in the java.lang.Math class.
  • BigDecimal provides arbitrary precision calculations by means of the java.math package from the standard library. To provide the missing pieces, I brought in classes from Richard J. Mathar's own work, A Java Math.BigDecimal Implementation of Core Mathematical Functions.

Formulas

  • Quadratic is the well-known Mandelbrot recurrence relation:  equation
  • Multibrot is a generalization of the previous formula where the exponent can be set to an arbitrary integer.
  • Carlson arises from the Newton's method applied to a particular quartic equation. It's named after Paul W. Carlson who used this formula to illustrate two artistic orbit trap rendering methods.
  • Burning Ship, first described and created by Michael Michelitsch and Otto E. Rössler in 1992, is generated by iterating the function:  equation

Representations

  • Escape Time is probably the first known coloring method. It is also known as Escape Iterations or Dwell.
  • MuEncy is based on the algorithm used by Robert Munafo to create beautiful illustrations like those you can find throughout its Mu-Ency.
  • Tangent Circles and Ring Segments are those two orbit trap rendering methods described by Paul W. Carlson in the same paper linked above.
  • Stalks, also known as Epsilon cross, is probably the first orbit trap algorithm ever invented. It was popularized by researcher Clifford A. Pickover at the end of the 80s.

Installation

The first time Julia runs, an error message will show:

Error shown the first time Julia runs

Keep this window open and follow these steps:

  1. Download the latest release of DPC4J (the file named dpc4j.jup).
  2. Click Install new plugins... in the error dialog.
  3. Locate file dpc4j.jup.
  4. Click Install.
  5. Restart Julia.

Installation using the CLI

Run the following:

java -jar julia.jar install dpc4j.jup

Update installation

  1. Open FileInstall new plugins...
  2. Locate file dpc4j.jup.
  3. Click Install.
  4. When you're first asked about a file name conflict, click Yes to All.
  5. Restart Julia.

Update installation using the CLI

Run the following:

java -jar julia.jar install --overwrite-existing dpc4j.jup

Building DPC4J

You need JDK 1.8+ and Maven installed. You also need to install Julia as a Maven dependency:

git clone https://github.com/mbilotta/julia.git
cd julia
mvn clean install

Then you can build DPC4J as any other Maven project:

git clone https://github.com/mbilotta/dpc4j.git
cd dpc4j
mvn clean package

Finally, to generate the JUP archive, you should use the Julia CLI:

java -jar ~/julia.jar package --license COPYING --output dpc4j.jup org/altervista/mbilotta xml/ target/dpc4j.jar

Supposing you have placed julia.jar in your home directory, running this command from the project root directory will generate dpc4j.jup.

Credits

Thanks to JPBotelho for providing a sample implementation of the Stalks algorithm in his Fractal-Megacollection.

Licensing information

DPC4J is provided under the terms of the GNU General Public License (GPL), ver. 3. Once you’ve installed the package, look at file ~/.juliafg/doc/org/altervista/mbilotta/COPYING for full license terms.

This program is distributed in the hope that will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILIY or FITNESS FOR A PARTICULAR PURPOSE. For more details, refer to the specific license.