critical - Draw a system showing self-organizing criticality
critical [-display host:display.screen] [-foreground color] [-back-
ground color] [-window] [-root] [-mono] [-install] [-visual visual]
[-delay seconds] [-random boolean] [-ncolors int] [-offset int]
The critical program displays a self-organizing critical system that
gradually emerges from chaos.
critical performs a simulation on a two-dimensional array of integers.
The array is initialized to random values. On each iteration, it draws
a line to the array position with the greatest value. It then replaces
that location and the eight neighboring locations with randomly-
The lines are initially random, but over time a chaotic self-organizing
system evolves: areas of the screen which happen to have lower values
are less likely to be updated to new values, and so the line tends to
avoid those areas. Eventually, the histogram of changes approaches the
power-law curve typical of such systems.
The simplest documented self-organizing system is the one-dimensional
equivalent of critical.
I heard about this algorithm second-hand: apparently there was an arti-
cle in Scientific American describing it sometime in 1997.
critical 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
Number of microseconds to wait after drawing each line.
Whether to use randomly selected colours rather than a cycle
around the colour wheel.
The maximum random radius increment to use.
How many colors should be allocated in the color ramp (note
that this value interacts with offset.)
Length of the trail: between 5 and 100 is nice.
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.
X(1), xscreensaver(1) xscreensaver-command(1) xscreensaver-demo(1)
Copyright (C) 1998 by Martin Pool.
Permission to use, copy, modify, distribute, and sell this software and
its documentation for any purpose is hereby granted without fee, pro-
vided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in sup-
porting documentation. No representations are made about the suitabil-
ity of this software for any purpose. It is provided "as is" without
express or implied warranty.
Martin Pool <mbpAThumbug.au>, 1998-2000. Based in part on the
XScreenSaver code by Jamie Zawinski <jwzATjwz.org>.
X Version 11 4.21 (01-Mar-2005) XScreenSaver(6x)