The attraction program has several visually different modes of operation, all of which are based on the interactions of a set of control points which attract each other up to a certain distance, and then begin to repel each other. The attraction/repulsion is proportional to the distance between any two particles.

The size of the balls in pixels, or 0, meaning to select the sizes randomly (the default.) If this is specified, then all balls will be the same size. This option has an effect in all modes, since the “size” of the balls controls their mass.

If in lines or polygons mode, how many sets of line segments or polygons should be drawn. Default 500. This has no effect in balls mode. If segments is 0, then no segments will ever be erased (this is only useful in color.)

If on a color display, the color of the line segments or polygons will cycle through the color map. This specifies how many lines will be drawn before a new color is chosen. (When a small number of colors are available, increasing this value will yield smoother transitions.) Default 3. This has no effect in balls mode.

This is consulted only in balls mode. If this is specified, then the saturation of the colors of the points will vary according to their current acceleration. This has the effect that the balls flare brighter when they are reacting to each other most strongly.

In glow mode, all of the balls will be drawn the same (random) color, modulo the saturation shifts. In non-glow mode, the balls will each be drawn in a random color that doesn't change.

Make the initial force on each ball be tangential to the circle on which they are initially placed, with the right velocity to hold them in orbit about each other. After a while, roundoff errors will cause the orbit to decay.

In orbit mode, the initial velocity of the balls is multiplied by this; a number less than 1 will make the balls pull closer together, and a larger number will make them move apart. The default is 0.9, meaning a slight inward pull.

This sets the viscosity of the hypothetical fluid through which the control points move; the default is 1, meaning no resistance. Values higher than 1 aren't interesting; lower values cause less motion.

Imposes a maximum speed (default). If a ball ends up going faster than this, it will be treated as though there were .9 viscosity until it is under the limit. This stops the balls from continually accelerating (which they have a tendency to do), but also causes balls moving very fast to tend to clump in the lower right corner.

Uses the old, simple bouncing algorithm (default). This simply moves any ball that is out of bounds back to a wall and reverses its velocity. This works fine for most cases, but under some circumstances, the simplification can lead to annoying effects.

Uses a more intelligent bouncing algorithm. This method actually reflects the balls off the walls until they are within bounds. This can be slow if balls are bouncing a whole lot, perhaps because of -nomaxspeed.