attraction - interactions of opposing forces
attraction [-display host:display.screen] [-foreground color] [-back-
ground color] [-window] [-root] [-mono] [-install] [-visual visual]
[-points int] [-threshold int] [-mode balls | lines | polygons |
splines | filled-splines | tails ] [-size int] [-segments int] [-delay
usecs] [-color-shift int] [-radius int] [-vx int] [-vy int] [-glow]
[-noglow] [-orbit] [-viscosity float] [-mouse] [-no-mouse] [-mouse-
size] [-walls] [-nowalls] [-maxspeed] [-nomaxspeed] [-correct-bounce]
The attraction program has several visually different modes of opera-
tion, 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.
attraction accepts the following options:
-window Draw on a newly-created window. This is the default.
-root Draw on the root window.
-mono If on a color display, pretend we’re on a monochrome display.
Install a private colormap for the window.
Specify which visual to use. Legal values are the name of a
visual class, or the id number (decimal or hex) of a specific
How many control points should be used, or 0 to select the num-
ber randomly. Default 0. Between 3 and 15 works best.
The distance (in pixels) from each particle at which the
attractive force becomes repulsive. Default 100.
-mode balls | lines | polygons | tails | splines | filled-splines
In balls mode (the default) the control points are drawn as
filled circles. The larger the circle, the more massive the
In lines mode, the control points are connected by straight
lines; the effect is something like qix.
In polygons mode, the control points are connected by straight
lines, and filled in. This is most interesting in color.
In splines mode, a closed spline is interpolated from the con-
In filled-splines mode, the splines are filled in instead of
being outlines. This is most interesting in color.
In tails mode, the path which each particle follows is indi-
cated by a worm-like trail, whose length is controlled by the
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 100. This has no effect in
balls mode. If segments is 0, then no segments will ever be
erased (this is only useful in color.)
How much of a delay should be introduced between steps of the
animation. Default 10000, or about 0.01 seconds.
If on a color display, the color of the line segments or poly-
gons 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.
-radius The size in pixels of the circle on which the points are ini-
tially positioned. The default is slightly smaller than the
size of the window.
-glow 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.
-noglow Don’t do ‘‘glowing.’’ This is the default.
Initial velocity of the balls. This has no effect in -orbit
-orbit 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 resis-
tance. Values higher than 1 aren’t interesting; lower values
cause less motion.
One interesting thing to try is
attraction -viscosity 0.8 -points 75 \
-mouse -geometry =500x500
Give it a few seconds to settle down into a stable clump, and
then move the mouse through it to make "waves".
-mouse This will cause the mouse to be considered a control point; it
will not be drawn, but it will influence the other points, so
you can wave the mouse and influence the images being created.
Turns off -mouse.
In -mouse mode, this sets the mass of the mouse (analagously to
the -size parameter.)
This will cause the balls to continue on past the edge of the
screen or window. They will still be kept track of and can
-walls This will cause the balls to bounce when they get to the edge
of the screen or window. This is the default behavior.
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 tendancy to
do), but also causes balls moving very fast to tend to clump in
the lower right corner.
If this is specified, no maximum speed is set for the balls.
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 annoy-
Uses a more intelligent bouncing algorithm. This method actu-
ally 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.
-graphmode none | x | y | both | speed
For "x", "y", and "both", displays the given velocities of each
ball as a bar graph in the same window as the balls. For
"speed", displays the total speed of each ball. Default is
DISPLAY to get the default host and display number.
to get the name of a resource file that overrides the global
resources stored in the RESOURCE_MANAGER property.
Copyright © 1992, 1993, 1997 by Jamie Zawinski. Permission to use,
copy, modify, distribute, and sell this software and its documentation
for any purpose is hereby granted without fee, provided that the above
copyright notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting documentation.
No representations are made about the suitability of this software for
any purpose. It is provided "as is" without express or implied war-
Jamie Zawinski <email@example.com>, 13-aug-92.
Viscosity and mouse support by Philip Edward Cutone, III.
Walls, speed limit options, new bouncing, graphs, and tail mode fix by
Matthew Strait. 31 March 2001
X Version 11 14-Jun-97 XScreenSaver(1)
Man(1) output converted with