```

```

#### NAME

```       boids - simulate a flock of android birds from Brooklyn

```

#### SYNOPSIS

```       boids -help
or
boids  [-width  integer]  [-height integer] [-num integer]
[-steps integer] [-seed  integer]  [-angle  double]
[-vangle  double]  [-rcopy  double] [-rcent double]
[-rvoid double]  [-rviso  double]  [-wcopy  double]
[-wcent  double]  [-wvoid  double]  [-wviso double]
[-wrand double] [-dt double] [-ddt  double]  [-minv
double] [-len integer] [-psdump] [-inv] [-mag inte-
ger] [-term string]

```

#### DESCRIPTION

```       Simulate a flock of boids according to rules  that  deter-
mine their individual behaviors as well as the ``physics''
of their universe.  A boid greedily attempts to apply four
rules  with  respect  to its neighbors: it wants to fly in
the same direction, be in the center of the local  cluster
of boids, avoid collisions with boids too close, and main-
tain a clear view ahead by  skirting  around  others  that
block  its  view.  Changing these rules can make the boids
behave like birds, gnats, bees, fish, or  magnetic  parti-
cles.   See the RULES section of the manual pages for more
details.

```

#### OPTIONS

```       -width integer
Width of the plot in pixels.

-height integer
Height of the plot in pixels.

-num integer
Number of boids.

-steps integer
Number of simulated steps.

-seed integer
Random seed for initial state.

-angle double
Number of viewing degrees.

-vangle double
Visual avoidance angle.

-rcopy double
Radius for copy vector.

-rcent double
Radius for centroid vector.

-rvoid double
Radius for avoidance vector.

-rviso double
Radius for visual avoidance vector.

-wcopy double
Weight for copy vector.

-wcent double
Weight for centroid vector.

-wvoid double
Weight for avoidance vector.

-wviso double
Weight for visual avoidance vector.

-wrand double
Weight for random vector.

-dt double
Time-step increment.

-ddt double
Momentum factor (0 < ddt < 1).

-minv double
Minimum velocity.

-len integer
Tail length.

-psdump
Dump PS at the very end?

-inv   Invert all colors?

-mag integer
Magnification factor.

-term string
How to plot points.

```

#### RULES

```       All of the rules have a weight option and a radius option.
The radius option specifies how close a boid need to be to
another in order for the  rule  to  be  acted  upon.   The
weight  is  used  when  combining all of the rules actions
into a single new velocity vector.

The four rules can be simply described as follows:

Centering: move towards the center of any boids in my
viewing area.

Copying: attempt to move in the average direction of
that all boids that can be seen are moving
in.

Avoidance: ``Please don't stand so close to me.''
Move away from any close flyers.

Visual: move in such a way that the bonehead
obstructing your view no longer interferes.

The four rules are then normalized and added  together  to
make  the  next velocity vector of the boid.  All radii in
the rules are in terms of pixels.

You may wish to try turning on and off different  combina-
tions of the rules to see how the boids' behaviors change.
For example, if you turn off the avoidance rule,  increase
the  centering radius and weight, and increase the viewing
angle to nearly 360 degrees, then the  boids  will  behave
like  a  pack  of  wolves fighting over the center.  Other
changes can yield similar surprises.

```

#### BUGS

```       No sanity checks are performed to make sure  that  any  of
the options make sense.

```

#### AUTHOR

```       Copyright (c) 1997, Gary William Flake.

Permission  granted  for any use according to the standard
GNU ``copyleft'' agreement provided that the author's com-
ments  are  neither  modified nor removed.  No warranty is
given or implied.

```

Man(1) output converted with man2html