Miscellaneous Tools


Generates random grayscale ellipses in a new layer.

The background of the layer is 50% gray, and ellipses contain a linear gradient.

  • In ellipses with a size above average, the gradient goes from 50% gray to white
  • In ellipses with a size below average, the gradient goes from 50% gray to a lighter gray proportional to the ellipse size, e.g. the gradient in a half size ellipse will go from 50% gray to 75% gray. In other words, if the layer is used as a bumpmap, all the ellipses smaller than the average will have a height proportional to their size and produce the same slopes.

When two ellipses overlap, the lighter tone is kept.



The percent of area covered by ellipes


Whether the ellipses can overlap or not.

Average size

The average diameter of the ellipses, in pixels. The ellipse flattening is done while preserving the ellipse area, so this value is the geometrical mean of the two diameters of the average ellipse.

Size variability

The variability of the ellipse size, which is the spread of a log-normal distribution.

  • When 0, all ellipses will have the same size.
  • When 10, ellipses produced will usually range from one third to three times the average.
Average flattening

The average flattening of the ellipses, in percent.

  • 0 is a perfect circle.
  • 90 is a very flat ellipse
Flattening variability

The variability of the ellipse flattening, which is the spread of a gaussian distribution.

  • When 0, all ellipses will have the same flattening.
  • When 10, the flattening values between 0 and .9 are about equiprobable.
Average tilt

The average tilt of the ellipses from the horizontal, in degrees.

Tilt variability

The variability of the tilt, which is the spread of a gaussian distribution.

  • When 0, all ellipses will have the same tilt.
  • When 10, all tilt angles are about equiprobable.

Usage notes

The output of this script should be seen as a map that can receive further transformation

  • Threshold to replace gradients by more "binary" values
  • Curves, to change the shape of the gradients

There are many ways to use the output:

  • Bump map
  • Displacement map
  • Color map
  • Alpha channel


Fills a new layer with random strokes of the current brush until the required density is reached.



The percent of area covered, alpha-weighed

Usage notes

The output of this script is a new layer overlapping the current layer.

If the brush is an image pipe, the various images are used as designed


Autocrops all linked layers in the image. It appears in the menus as Image/Autocrop linked layers and has no parameters.


Deletes the selection in several layers. Edit/Clear layers/All affects all layers, while Edit/Clear layers/Visible only affects visible layers. There are no parameters.


Repaint pixels in the currently set foreground color with the currently set background color using the proper color blends for the anti-aliasing pixels. It appears in the menus as Colors/Replace foreground by background and has no parameters.


Fills spaces in a grid with random colors from a list or from the active gradient. The script iterates over successive points with the given X and Y steppings, does a fuzzy-selection starting at that point, and fills that area with a random color. The fill can occur on the same layer, or on a new layer which is inserted below the grid. The current layer when the script starts is assumed to be the one holding the grid.

The script is started by the Filters/Render/Fill grid with random color... menu.


Origin X & Origin Y

The starting point of the iteration (typically the center of the top left grid space).

Step X & Step Y

The stepping for the iterations, typically the same as the grid step, or a multiple of it.

The colors to use.
  • In "list" mode, these colors are specified in HTML format (#rrggbb), with or without the leading hash, and separated by spaces, semi-colons, or new lines. The HTML notation for a color can be obtained from Gimp's color selector. The color can also be in the #rrggbbaa format where the "aa" part indicates opacity (from '00' (full transparency) to 'ff' (full opacity)).
  • In "gradient" mode, the input is the number of colors to obtain from the current gradient by uniform sampling.

Selection threshold

The threshold used for the fuzzy selection.

Use new layer

If yes, the fill is applied to a new layer inserted below the grid layer. Otherwise, the fill is applied on the grid layer.

Grow selection

The amount to grow the selection before applying the fill. This is mostly useful in conjunction with the fill on a distinct layer.

Usage notes

  • This script assumes a square pattern for the grid. Some grids (hexagons, circles) do not fit this model, but can usually be seen as a combination of two or three square patterns. They can then be filled by consecutive runs of the script, changing only the Origin X/Origin Y values.
  • There are no iteration points outside the layer. This may lead to unfilled areas on the layer borders, if there are "open" areas. A specific run of the script with different Origin X/Origin Y values can be used to fill these.
  • Best results are obtained with transparent grid areas, and fill applied in a new layer with a one or two pixels selection growth.
  • If there is an active selection when the script is started, the fill will only be applied if the iteration point is within the selection, but the existing selection will not be combined with the fuzzy selection for performance reasons (the rationale being to restrict the fill to the areas that are within the selection to reduce execution time).  The original selection can be applied manually over the results.


Spaces or spreads layers across the selection.

  • In "Spread mode", spreads the layers evenly across the selection boundaries.
  • In "Space mode", arranges the layers with the specified spacing between their edges

Spread mode:

Typical usage:

  1. Mark the span boundaries with the rectangle selection (actually any selection will do, the script uses the bounding rectangle of the selection, and if there is no selection, it uses the canvas bounds)
  2. Make the required layers visible
  3. Pre-position the layers (they only need to be in the required left-right or top-down order, as indicated by their left or top boundaries)
  4. Apply one the scripts versions (in Image/Arrange layers/Spread)
Usage notes
  • There are no options for this mode, but four different versions, so that each can be assigned to its own keyboard shortcut.
  • Since the total spacing cannot always be divided exactly into the number of required spaces, some spaces (leftmost or topmost ones) may be one pixel wider than the others.
  • The script only considers layer boundaries and not layer contents. You can have the boundaries match the content using "Autocrop layer".
  • If the selection is smaller that the total size of the layers, the arranged layers will overlap, but the selection cannot be smaller than the larger layer in the considered dimension.

Space mode:

Typical usage:

  1. Make the required layers visible
  2. Pre-position the layers (they only need to be in the required left-right or top-down order, as indicated by their left or top boundaries)
  3. Apply one the scripts versions (in Image/Arrange layers/Space)
  4. In horizontal (resp/ vertical) spacing, the leftmost (resp. topmost) layer is aligned with the left (resp. top) boundary of the selection. The selection doesn't need to encompass the layers.
Usage notes
  • A negative spacing can be used to obtain overlap.


Tiles your image with images of equivalent luminosity, from a set you provide as a stack of layers in a Gimp image. The tile size is determined by the size of the tiles you provide.

The script is started by the Filters/Artistic/Tiles from luminosity... menu.

The only parameter is the image that contains the tiles to use.

Usage notes
  • The size of the tiles provided determines the size of the tiling.
  • If the source image is a color image (RGB or indexed), its luminosity (as determined by the 'Luminosity' options in the Desaturate tool) is used. The luminosity of the tiles is evaluated in the same manner. The luminosity of a grayscale image being its gray value, the image can be desaturated by other means before using the filter.
  • Using tiles with letters is a possible way to produce "ASCII-art".
  • See the "sample" directory in the download section for some sample tile files.