bubbles - frying pan / soft drink simulation
bubbles [-display host:display.screen] [-foreground color] [-background
color] [-window] [-root] [-mono] [-install] [-visual visual] [-simple]
Bubbles sprays lots of little random bubbles all over the window which
then grow until they reach their maximum size and go pop. The inspira-
tion for this was watching little globules of oil on the bottom of a
frying pan and it also looks a little like bubbles in fizzy soft drink.
The default mode uses fancy ray-traced bubbles but there is also a mode
which just draws circles in case the default mode is too taxing on your
Depending on how your bubbles was compiled, it accepts the following
Colour of circles if -simple mode is selected.
Colour of window background.
-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
How much of a delay should be introduced between steps of the
animation. Default 1, or about 1 microsecond. Actually, this
is the delay between each group of 15 new bubbles since such a
delay between each step results in a very slow animation rate.
Same as -delay 0.
-simple Don’t use the default fancy pixmap bubbles. Just draw circles
instead. This may give more bearable performance if your hard-
ware wasn’t made for this sort of thing.
-broken Don’t hide bubbles when they pop. This was a bug during devel-
opment but the results were actually quite attractive.
-3D Normally, the simulation is done completely in two dimensions.
When a bubble swallows up another bubble, the areas of each are
added to get the area of the resulting bubble. This option
changes the algorithm to instead add volume (imagining each to
be a sphere in 3D space). The whole thing looks more realistic
but I find it attracts attention to the flickering of each bub-
ble as they are move and are redrawn. Your mileage may vary.
-quiet Don’t print messages explaining why one or several command line
options were ignored. This is disabled by default.
If you find the pace of things too slow, remember that there is a delay
even though you specify no -delay option. Try using -nodelay although
beware of the effects of irritation of other users if you’re on a
shared system as you bleed their CPU time away.
Some tools to assist in creation of new bubbles are included in the
source distribution. These can either be loaded with the -file or
-directory options (if available) or they can be used in place of the
distributed default bubble (bubble_default.c). You might like to copy
these scripts to a permanent location and use them. Read bub-
Rendered bubbles are not supported on monochrome displays. I’m not
convinced that small bubbles, even dithered properly are going to look
like anything more than a jumble of random dots.
There is a delay before something appears on the screen when using ren-
dered bubbles. The XPM library seems to take a long time to make
pixmaps out of raw data. This can be irritating on slower systems.
The movement of the bubbles looks jerky if an incomplete set of bubbles
The hide/display algorithm could do with some work to avoid flickering
when -nodelay is set.
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.
This work is Copyright © 1995, 1996 by James Macnicol. Permission to
use, copy, modify, distribute, and sell this software and its documen-
tation for any purpose is hereby granted without fee, provided that the
above copyright notice appear in all copies and that both that copy-
right notice and this permission notice appear in supporting documenta-
tion. No representations are made about the suitability of this soft-
ware for any purpose. It is provided "as is" without express or
James Macnicol <firstname.lastname@example.org>
X Version 11 14-Dec-95 XScreenSaver(1)
Man(1) output converted with