---
name: "glschool"
section: "6x"
platform: "linux"
package: "xscreensaver-gl"
version: "6.09+dfsg1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/glschool/6x"
---

# glschool(6x)

a 3D schooling simulation

## NAME

glschool - a 3D schooling simulation

## SYNOPSIS

**glschool** \[--display *host:display.screen*\] \[--visual *visual*\] \[--window\] \[--root\] \[--window-id *number*\] \[--wireframe\] \[--fps\] \[--delay *number*\] \[--nfish *number*\] \[--maxvel *number*\] \[--minvel *number*\] \[--acclimit *number*\] \[--avoidfact *number*\] \[--matchfact *number*\] \[--centerfact *number*\] \[--targetfact *number*\] \[--minradius *number*\] \[--momentum *number*\] \[--distexp *number*\] \[--goalchgf *number*\] \[--fog\] \[--drawgoal\] \[--drawbbox\]

## DESCRIPTION

Uses the Craig Reynolds *Boids* algorithm to simulate a 3D school of fish.  This is a lightly modified version of the algorithm that supports goal attraction.

Many different behaviors are possible by tweaking the parameters.  No sanity checking is performed on the command line params, so if you want to use negative accelerations or minimum velocity that is larger than maximum velocity or that sort of thing, the simulation will try to digest it.

It looks best with the highest number of fish that will give you an FPS of \> 25 or so.

## OPTIONS

- **--visual *visual***

  Specify which visual to use.  Legal values are the name of a visual class, or the id number (decimal or hex) of a specific visual.

- **--window**

  Draw on a newly-created window.  This is the default.

- **--root**

  Draw on the root window.

- **--window-id *number***

  Draw on the specified window.

- **--delay *number***

  Per-frame delay, in microseconds.  Default: 20000 (0.020 seconds.).

- **--wireframe \| --no-wireframe**

  Render in wireframe instead of solid.

- **--fps**

  Display the current frame rate, CPU load, and polygon count.

- **--fog \| --no-fog**

   Whether to show foggy (cloudy) water.

- **--drawgoal \| --no-drawgoal**

   Whether to show the school's attraction goal.

- **--drawbbox \| --no-drawbbox**

   Whether to show the bounding box.

- **--fog \| --no-fog**

   Whether to show foggy (cloudy) water.

- **--nfish *number***

  Number of fish.  Defaults to 100

- **--acclimit *number***

  Acceleration limit.  Defaults to 8.0

- **--minvel *number***

  Minimum velocity.  Defaults to 1.0

- **--maxvel *number***

  Minimum velocity.  Defaults to 7.0

- **--goalchgf *number***

  Goal change frequency.  Defaults to 50 (frames)

- **--avoidfact *number***

  Avoidance acceleration factor.  Defaults to 1.5

- **--matchfact *number***

  Match avg velocity acceleration factor.  Defaults to 0.15

- **--centerfact *number***

  School centering acceleration factor.  Defaults to 0.1

- **--targetfact *number***

  Target attraction acceleration factor.  Defaults to 80

- **--distexp *number***

  Distance weighting exponent.  Defaults to 2.2

- **--momentum *number***

  Momentum.  Defaults to 0.9

## ENVIRONMENT

- **DISPLAY**

  to get the default host and display number.

- **XENVIRONMENT**

  to get the name of a resource file that overrides the global resources stored in the RESOURCE\_MANAGER property.

- **XSCREENSAVER\_WINDOW**

  The window ID to use with *--root*.

## SEE ALSO

**X**(1), [**xscreensaver**(1)](/xscreensaver/1.md),\
 https://www.red3d.com/cwr/boids

## COPYRIGHT

Copyright © 2005-2006 by David C. Lambert.  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 warranty.

## AUTHOR

David C. Lambert
