substrate — Grow crystal-like lines on a computational substrate


substrate [-display host:display.screen] [-foreground color] [-background color] [-wireframe] [-max-cycles cyclecount] [-growth-delay delayms] [-initial-cracks numinitial] [-max-cracks nummax] [-sand-grains numgrains] [-circle-percent circlepercent] [-fps]


Lines like crystals grow on a computational substrate. A simple perpendicular growth rule creates intricate city-like structures. Optionally, cracks may also be circular, producing a cityscape more familiar to places for which city planning is a distant, theoretical concern.

Ported from the code by j.tarbell at


substrate accepts the following options:
-wireframe (Default: False)
Don't draw sand-painting colored effects, only make a wireframe.
-max-cycles cyclecount (Default: 10000)
Maximum number of growth cycles before restarting. The higher this is, the more complex the art.
-growth-delay delayms (Default: 18000)
Delay in ms between growth cycles. More delay, slower (but smoother and less CPU intensive) art.
-initial-cracks numinitial (Default: 3)
Initial number of cracks in the substrate
-max-cracks nummax (Default: 100)
Maximum number of cracks in the substrate at a single time
-sand-grains numgrains (Default: 64)
Number of sand grains dropped during coloring. More grains cause a denser colour but use more cpu power.
-circle-percent circlepercent (Default: 0)
The percentage of the cracks will be circular.
Display the current frame rate and CPU load.


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.


J. Tarbell <>, Jun-03

Mike Kershaw <>, Oct-04