bubbles - frying pan / soft drink simulation
bubbles [-display host:display.screen] [-foreground color] [-background color] [-window]
[-root] [-mono] [-install] [-visual visual] [-simple] [-broken] [-3D] [-file filename]
Bubbles sprays lots of little random bubbles all over the window which then grow until
they reach their maximum size and go pop. The inspiration 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 hardware.
Depending on how your bubbles was compiled, it accepts the following options:
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 visual.
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
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 hardware wasn't made for this sort of
-broken Don't hide bubbles when they pop. This was a bug during development but the
results were actually quite attractive. (This option is only available if you
have the XPM library available and the imake generated Makefile has defined
-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 (imag-
ining 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 bubble as they are move and
are redrawn. Your mileage may vary.
Use the pixmap definitions in the given file, instead of the default (if one is
compiled in). This is ignored if -simple is specified. If the file is compressed
(either with compress or gzip), it is decompressed before use. (This option only
works if you have XPM compiled into your binary and you have compiled with BUB-
BLES_IO set in bubbles.h. This is not the default).
Similar to -file except the file is taken randomly from the contents of the speci-
fied directory. (Again, this option is only available if you have XPM and BUB-
BLES_IO was set when compiling. See above).
-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 bubbles.README.
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 ran-
There is a delay before something appears on the screen when using rendered bubbles. The
XPM library seems to take a long time to make pixmaps out of raw data. This can be irri-
tating on slower systems.
The movement of the bubbles looks jerky if an incomplete set of bubbles is used.
The hide/display algorithm could do with some work to avoid flickering when -nodelay is
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 (C) 1995, 1996 by James Macnicol. 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.
James Macnicol <firstname.lastname@example.org>
X Version 11 14-Dec-95 XScreenSaver(1)