vines man page

(kudzu for X and SunView)


vines - draw vines on your X or SunView screen


vines  [-c  |  -v  N | -e | -E] [-H] [-C | -f | -t N | -r] [-D] \
    [-G N] [-b N] [-i N] [-l N] [-s N] [-R N] \
    [-L file] [-S file] [-P file] \
    [[-F] [-x] [-d D] | [-w] [-d D]] \
    [-h | -?] \
    [-g N]


vines draws vines (you know, wandering plants made up mostly of stems and leaves) on your X11 or SunView screen. By default it draws in black and white, but color options (spring and fall) are provided. The vines can grow across the top of your screen and down the side (the default, called ``edge mode''), down from the top of your screen until they reach the bottom, or start from the center and wander all over the screen forever.

For color displays, you should try both the spring (-C) and fall (-f) options. You can also go for total insanity:

    vines -c -G 98 & ./vines -c -G 98 -C & ./vines -c -G 98 -f &
This will start three separate vine programs growing in center mode (which keeps wandering your screen until you kill it); one of the vines is shades of gree, one is fall colors, and one is black and white. Setting the growth rate (-G) to less than 100 insures this won't bog down your system. Other basic configurations include
    vines -c -s1 -C -l35 -b3 -R1      #very realistic, small leaves
    vines -c -s5 -C -l20 -b20 -R36    #medium leaves, still nice
    vines -c -s10 -C -l10 -b30 -R36   #attack of the killer kudzu!
The technicolor option (-t N) uses random colors. It will use as many colors as it can, up to the number you specify (up to 256), or the limits of your colormap, whichever comes first. This is fun to play with; you can run it with a value of 1, for a single leaf color (which changes each time you run vines), play with a small number of colors, or go for broke with 256 colors.

Finally, you can create custom palettes for use with the -P option. A palette can contain any specific set of colors you desire (up to 256 colors).


-c : grow from the center of the screen

This mode continues running until you terminate vines program. The vines will eventually consume the whole screen.

-e : grow across top and down edges

This is the default mode. When the vines reach the bottom of the screen, they end.

-E grow along all edges of the screen

Similar to -e but also grows vine across bottom of screen, forming a complete frame of vines around your screen.

-v N : grow N vines down from top of screen

The vines start at evenly spaced intervals and grow down. Of course, vines tend to wander, so they may criss-cross, or even wander back up for a while.

-H : vines halt when user hits RETURN

When forking, this lets you type a RETURN in the parent process to halt all vine growth.

-C : draw vines in color (spring)

This draws the vines in shades of green (assuming your screen supports color!)

-f : draw vines in color (fall)

This draws the vines in fall colors (assuming your screen supports color!)

-r : reverse colors for B&W

This reverses the ratio of black to white leaves when not using color.

-D : degrade (fade) the colors

Instead of alternating between the appropriate colors for spring or fall, this starts each vine with one of the colors and gradually changes the color as it draws the vine. For instance, using spring colors, one end of the vine will be yellow and the other green. Longer vines will fade the colors back, as well. With the -c option, the colors fade back and forth between the end colors as the vine grows.

-d D : draw vines on designated display (X11) or frame buffer (SunView)

-x : run in synchronized mode (X11)

This forces vines to wait on the X server to respon to every request. This is useful primarily for debuggnig, and slows things down considerably.

-F : fork subprocesses (X11)

By default, vines forks a process per vine drawn on SunView, but uses a single process for X because of problems. This option forces forking with X11. It will likely cause premature termination of vines .

-t N : technicolor mode

This mode draws the leaves from a colormap of N colors selected at random.

-w : grow around windows (SunView)

On SunView, this causes the vines to wander aroound the edges of any windows encountered; otherwise the vines will simply grow beneath all the windows. (On X, the vines always go beneath the windows.)

-G N : set growth rate

This controls how fast the vines grow, and how much of your system's resources they consume. The value of N can vary from 1 to 100 (integers only), where 1 is very slow, and 100 is as fast as your system (and/or network, for remote displays) can handle things.

The default is 100, which is full speed ahead, or ``kudzu mode''.

-b N : branch probability

This sets the likelihood that a vine will branch or change directions. This is only meaningful with the -v option. It can vary from 1 to 40. The default is 20. A high branching value might keep a vine onscreen forever.

-i N : interleaf (sets ratio of black to white leaves)

Positive values of N create N white leaves per black leaf. Negative values create N black leaves per white leaf. The default is 3 (white leaves per black leaf).

-l N : leaf density on stem

The value of N can be any integer from 1 (fewest leaves per vine) to 35 (most leaves per vine). The default is 30, except with the -e option, which is always 34.

-s N : leaf size factor

This lets you make the largest leaves larger or smaller. The number can be any positive integer. The default is 2, so you can only shrink the leaves by half, but you can make them large to the point of absuridty. You probably don't want to use anything higher than 10, unless you have extremely fine screen resolution.

-R N : leaf rotation increment

The default is that leaves are rotated in 45 degree increments (8 different orientations), but this can be set to any positive integer from 1 to 360. Larger increments use less memory and are faster at startup; smaller increments look more realistic. Increments greater than 180 will yield exactly one orientation (all leaves will "point" in the same direction), although they may still be "left handed" or "right handed".

-L file : leaf definition file

You can define your own leaf shape in a file. The format is a number of x,y coordinates, one per line. The final set must be 0,0 . A copy of the default leaf definition is provided in a sample file, leaf.T , with the source distribution of vines .

-S file : stem definition file

You can define your own stem shape in a file. The format is a number of x,y coordinates, one per line. The final set must be 0,0 . A copy of the default stem definition is provided in a sample file, stem.T , with the source distribution of vines .

-P file : palette file

You can define a custom palette in a file. The file may contain up to 256 colors, with one color per line. Each color must be in standard X11 RGB format (#rrggbb where rr, gg and bb are pairs of hex digits representing the relative mix of red, gree and blue, respectively, each varying from 00 too ff). A variety of sample palettes are provided; check in /usr/local/lib/Vines and either /usr/openwin/lib/Vines (for SunView) or /usr/lib/X11/Vines (for X). If the Vines directory isn't in any of thee locations, ask your system administrator where it was installed. The README file in the Vines directory describes the sample files in more detail, but you can always just play with them.

-g N : debug level

This produces debugging information for tracking down problems. This is generally only useful for porting problems or debugging new features.

>= 1window locations (SunView only)
when vines hit windows ((SunView only)
color allocation data (X11 only)
= 2information on leaf rotation
>= 2sleep 1 second after doing each leaf's filled polygon
>= 3detailed information on leaf drawing routines

-h or -?

These produce a help, or usage, message with a summary of the available options. With some shells, you may need to escape or quote the '-?' version.


Under X, forking causes problems. By default, vines under X draws each vine to completion before starting another. Under SunView, all vines grow together.

Under the X Window system, the vines are drawn on the root window, but will be replaced by the original color or image whenever the screen (or a portion of its root window) is refreshed. This is just the nature of the X root window. There's no way around it.




This software should be 100% Bug-Free [tm].

The algorithm includes some recursion, so if you use the -c option and leave vines running for a while, it will slowly consume memory.


vines 2.0:
Miles O'Neal
Leander, TX

vine 1.x:
Dan Heller