|========================================================================|
| plasma2 v2.11 (2006-01-02)  GIMP plug-in generating plasma clouds      |
| Copyright (C) 1996 Stephen Norris <srn@flibble.cs.su.oz.au>            |
| Copyright (C) 2001-2004 Yeti (David Necas) <yeti@physics.muni.cz>      |
|========================================================================|

Plasma2 is an improved version of an old GIMP plug-in Plasma by Stephen
Norris generating cloud-like images known as `the plasma fractal'.  The name
plasma2 is probably subject to further changes---it just has to be
distinguished from the original Plasma plug-in since it's not PDB-level
compatible.


Installation
------------

Requirements: Gimp 2.2.

Untar the tar file (well I guess you've got that far already), then in the
directory thus created type

      make install

to install the plug-in to the system-wide plug-in directory, or

      make install-user

to install it to your user plug-in directory.  You can uninstall it later by
`make uninstall' or `make uninstall-user', respectively. When something goes
wrong, try modify the Makefile or, if you are really desperate, the source.


Usage
-----

This plug-in installs itself in the Filters/Render/Clouds menu as `Plasma2'.

It renders the famous plasma cloud fractals.  All Plasma2 options are either
self-explanatory or extremely crypitc.  You don't need to know what they
mean, just try to change them and you will see.

For the curious, a brief explanations follows:

* Horizontally tileable.
* Vertically tileable.

  These options cause the image to be tileable, horizontally and/or
  vertically.  The result is different from running `Make Seamless' filter on
  the image, because no averaging (leading to blurry image) is needed.

* Coloring method.
* Gradient.

  For RGB images, you can choose between generating independent Red, Green
  and Blue plasma channels, identical Red, Green and, Blue channels
  (resulting in a grayscale image) and coloring the image with some gradient.
  For grayscale images, only grayscale output is possible, of course.  It is
  also possible to take the independent Red, Green, and Blue channels from
  a gradient in so-called `Gradient remix' mode.

  Note applying the gradient later, using `Map to gradient' filter, gives
  slightly worse results than doing the same directly in Plasma2, especially
  in case of gradients with very smooth or very abrupt color transitions.

* Noise distribution.

  As you can guess, the whole thing is generated by adding some noise to an
  originally smooth surface in color space.  The noise distribution
  determines probabilities of different deviation amplitudes.  However, in
  case of Plasma2, it doesn't influence the image appearance as much as one
  may think.

* Noise amplitude (log).

  This is just the reference noise amplitude.  The only interesting thing
  about it is that the scale is logarithmic (so you can change the amplitude
  in range of approximately five orders).

* Scaling function.

  Distant points of the image are completely uncorrelated.  However, close
  points has to be correlated somehow, otherwise we would get just
  uninteresting noise.  The scaling function determines, how the noise
  amplitude decreases when you scale down.  The `depth' parameter is
  (something like) logarithm of the scale.  `Fractint-like' is what is used
  in all plasma fractal generators in the world, except the original Stephen
  Norris Plasma plug-in, which used a completely different function, so I
  named it after him ;-)

* Scaling parameter a.

  This is the variable `a' in the Scaling function expression.  For
  Fractint-like scaling function, `a' is related to Mandelbrot's presistency.
  For Norris-like scaling function, it's just a knob.


Some details you don't want to know
-----------------------------------

Fractint plasma:

  To generate what Fractint genrates as `plasma', set:
    Scaling function = Fractint-like
    Scaling parameter a = 1.0
    Noise distribution = Uniform
  You can still play with Noise amplitude, as in Fractint.  The exact mapping
  from Noise amplitude to Fractint Plasma Grainess is not know to me.

Stephen Norris's plasma:

  To emulate original GIMP Plasma plug-in, set:
    Scaling function = Norris-like
    Scaling parameter a = 1.0
    Noise distribution = Uniform
  You can still play with Noise amplitude, as in the original plug-in.  The
  exact mapping from Noise amplitude to Plasma Turbulence is not know to me.

Fractalness and Hausdorf dimension:

  To get a true fractal, you have to set:
    Scaling function = Fractint-like
    Scaling parameter a = 1.0
  Then the resulting image can be interpreted a `surface' having dimension
  between 2.0 and 3.0.  When a > 1.0 the resulting dimension is 2.0 and all
  other settings (including when Scaling function is not Fractint-like) lead
  to objects with dimension 3.0 (though images rendered in finite resolution
  may look pretty smmooth).

  It's quite easy to compute Hausdorf dimension when it is between 2.0 and
  3.0, provided that scale of the third axis (brigthness) is defined somwehat
  (Hausdorf dimension is a metric property and thus depends on it, but it can
  be remapped to some `normalized' scale).  I just didn't foresee you would
  want to know it ;-)

  In case of RGB images viewed as `surfaces' in 5D space, the dimension is
  between 2.0 and 5.0, but I didn't study this case much (it should be
  similar).

Noise distributions:

  Why I chosen uniform, Cauchy and one-side exponential and not distribution
  XXX?  As you know, due to Gauss law of big numbers, sums of all
  `reasonable' distribution would tend to Gauss distribution---if the
  contributions were not getting smaller and smaller.  Practice shows, it
  doesn't much matter whether we use Gauss, uniform, triangle, or whatnot
  distribution, even in our case.  This is however not true for Cauchy
  distribution (it doesn't obey Gauss law of big numbers at all---because of
  infinite second order momentum) and exponential distribution because it's
  too asymmetric to have a chance to converge to something similar fast
  enough. So they give interesting results [read: images] and I added them.

  In newer version a `cubic tails' noise distribution was added with well
  defined (zero) mean value (like uniform), but infinite dispersion (like
  Cauchy).  Its name expresses the fact its tails vanishes as 1/|x|^3.

Scaling functions:

  Fractint-like is the good, fractal, exponential scaling (provided a == 1)
  and Norris-like is simulation of the original plug-in (provided a == 1).
  They just have to be present.  I added the parameter `a' to have something
  more to play with.  It has more-or-less no mathematical reason.


Authors
-------

The original Plasma plug-in has been written by Stephen Norris
<srn@flibble.cs.su.oz.au>, with improvements by Eiichi Takamori
<taka@ma1.seikyou.ne.jp> and Tim Copperfield <timecop@japan.co.jp>.
Some ideas, and perhaps some code, too, have been recycled by
Yeti (David Necas) <yeti@physics.muni.cz> in Plasma2.

Report bugs to <yeti@physics.muni.cz> (please include `plasma2' or `plasma'
in subject).

Web: http://trific.ath.cx/software/gimp-plugins/plasma2/


Copying
-------

Plasma2 can be copied and/or modified under the terms of GNU General
Public License.  Please see COPYING for details.
