Gimpeon

Gimpeon is, depending on your point of view:

Gimpeon allows you to define multiple effects, which can then be applied to a sequence of images. Usually, the images will be single frames of a movie, which all need the same series of effects applied to each frame. However, they could also be entirely unrelated images which need some common form of preparation or correction. Unlike most (for example, filter) plugins, Gimpeon acts almost independently of the Gimp once started.

Setup

Gimpeon is released under the GPL. It is written in C++ and compiles under g++ on Linux. It has been tested with Gimp 1.2.3. The latest version is here.

To build Gimpeon, type make in the top level directory. make userinstall should then install Gimpeon in your home Gimp directory. In case you have problems with the Makefile, the Gimpeon executable belongs in your Gimp plugins directory (typically ~/.gimp-1.2/plug-ins/), and the configuration files nodeDefs.txt and outputDefs.txt belong in your private Gimpeon directory (~/.gimp-1.2/gimpeon/). Gimpeon will create other text files in this directory.

Once Gimpeon is installed, run the Gimp. Under the Xtns menu you will see an entry for Gimpeon. Selecting this will bring up the Gimpeon window.

Basics

Gimpeon operates on sequences of images, or clips. (For the moment, time in Gimpeon is measured only in frames. Each image is a separate frame.) A clip can be created from a collection of image files whose names consist of an arbitrary prefix, followed by a number, followed by a postfix: for example,
img1.gif, img2.gif, img3.gif, etc; or
m2a456zz.png, m2a457zz.png, m2a458zz.png, etc.
The final numeric portion will be used as the frame number for that image. (For the moment, Gimpeon will only recognise the last set of digits as a sequence number, so
foo23a3.tif, foo24a3.tif, foo25a3.tif
will not work.) (Note that later versions of Gimpeon will let you define clips in other ways.) You will need a sequence of images named like this to play with Gimpeon.

Gimpeon uses a clip managerto keep track of your clips. The clip manager keeps a list of one or more directories to start from, and it searches within those directories (and all subdirectories) for any clips that it can find. You can add and remove directories from the start list, or ask the clip manager to rescan a directory. (Later versions of the clip manager will notice new files, check timestamps and so on.) The first time you start Gimpeon, you will need to add one or more start directories to the clip manager.

The clip manager will show a list of clips found in the current directory. Selecting a clip will load it into Gimpeon, where the first frame in the clip will be displayed.

You use Gimpeon to apply a series of effects, or operations, to one or more clips. Most of the operations are Gimp plugins (or filters), but there are others. Each operation is performed by a node, which contains the controls for the effect, and the order of the operations is determined by the way in which the nodes are connected together. (There is no concept of image layers, as there is in Gimp - each operation takes zero or more flat image inputs, and creates zero or more flat image outputs. The effect of layering is achieved by explicitly combining multiple images.)

The sequence of operations can be specified in two ways. The first is purely sequential. Starting with an input clip, add effects to it until the desired result is reached. As each effect is added, the control panel for that effect will be added to a list, and the result of that effect will be displayed in a monitor. At any time, you can go back to an earlier effect and change the control settings, and the current image will be correctly updated. You can also rearrange, add or delete nodes, to change the effects. Once the final result is correct, add an output node to the list to save the result to a specified file. You can then execute Gimpeon to create an output image for each frame.

Alternately, you can create and edit the series of operations directly, by using the graph display. Each box in the graph is a node, which takes one or more images into its input ports (on the left hand side), and creates one or more images which are available at its output ports (on the right hand side). Manually connecting the graph gives you total control over the processing. In practice, you will probably swap back and forth between the two ways of working. In either case, once the series of effects has been defined for a single image, you tell Gimpeon to create the output clip by applying the same operations to every frame (or a selected frame range) in the original clip(s).

Some of a node's controls can be animated over time, as indicated by a button containing a tilde (~) in the control panel. (For now, an animated control cannot be unanimated.) The timeline shows the animation curves.

There are four monitors, arranged in a square, and any one, two (adjacent), or all four can be displayed at once. One monitor is active, and that one will be used to to display the results of any new effect. The contents of the active monitor can be copied to another monitor, and all the monitors will be updated as controls are adjusted, or if the current frame is changed.

Limitations, Bugs, Hints

Gimpeon is definitely not finished. This section provides a guide to working with it in its current state.

Walkthrough

Everything from here down is out of date!

To start, select Add New (directory) in the clip manager to bring up a file selector, and choose the directory which contains your image sequence(s). Gimpeon will scan that directory (and all subdirectories), and find everything that looks like it might be a clip. (It's not very clever...) Each clip found is listed.

Pressing the clip button does a number of things; it adds an input node to the flowgraph, adds the frame range for that clip to the overall frame range, and displays the image at the current frame in that clip.

Now press the Nodes button at top right. The Clips section is replaced by the Nodes section, which contains (pages of) image processing operations. Press the Colour button, and a colour adjust node will be added to the flowgraph, with its input connected to the output of the input node (which makes more sense when you see it than it does writen down). The Controls panel is automatically selected. Adjust the values on the colour controls, and press the View button to see the result. Changing the frame value (by moving the slider, or typing in a frame number) will automatically update the image. Now go back to the Nodes page, and click to add an Output node to the flowgraph.

A note on the flowgraph display; by default, nodes are connected to the previously created node, and placed to their right; except for input nodes, which are always placed on the left hand edge of the flowgraph (and of course, not connected to anything). You can move nodes by dragging on the label area, and change their connections by clicking on an input port followed by an output port (or vice versa, if you prefer). (Links may occasionally be misdrawn. Dragging a node slightly will redraw the links.)

Aside from image inputs on the left, and image outputs on the right, nodes will contain an upward pointing arrow just to the right of each image output. Pressing this button will display the output from that node. (Remember to switch to the Monitors page. This should happen automatically soon.)

Select the Controls button at the top left of the Gimpeon window. The Nodes region is replaced by the Controls region, which contains a control panel for each node. Note that each control section contains a toggle button on the left, followed by the label on the node it controls, and a button labelled View on the right. The left hand toggle reduces the controls to a single line, while the View button displays the output from the node. Using the controls, set the colour adjustments to some value. Pressing View will display the results of your adjustment. When you are happy with the effect, use the controls on the Output node to set the filename prefix to zzz (remember to hit return) and (if you like) set the directory to an appropriate place. (Leave the file extension as .sgi, because the output will be saved in SGI format no matter what you put here.)

Now to do some image processing. Select the Execute panel (top right again). At the bottom of the panel are a frame range selector, and a list of output nodes, each with a Make toggle. You should only have one output node at this stage; try adding another output node, and note that there are now two nodes in the execute list. Untoggle the Make button for the second output, just to keep things simple. (Or delete it; the controls should disappear.) Leave the Start value at 1, and set the Finish value to 2. If you now press the Excute button, the first two images in your input sequence will be colour adjusted and written to files zzz0001.sgi and zzz0002.sgi.

Coming Soon

Some immediate work to be done: Slightly longer term plans:

Have fun. Email me with comments, encouragements, or questions.

David Hodson