CAFire - a burning pointer toy

Robert Cimrman

Copying: GPL


This small toy displays a burning trace after the mouse pointer in X. It can work in a normal or in the root window. It should work on 16, 24, and 32 bpp displays (DirectColor or TrueColor). A 8 bpp indexed display is also possible, but as no X colors are allocated by CAFire itself, the particle colors are rather random. (However not so ugly as expected. :-) A simple (understand: not perfect - see 20.01.2000 news item) background preservation mode enables you to have your favourite background image while running CAFire in the root window. Different colormaps can be used - see 'colormaps' directory and section IV of README file.

Please, tell me how it works on non 16 bpp displays, if at all. It works for me ok, but there might be some problems still. For more information, see the README file. If you are interested in the (rather ugly) development record, look at JOURNAL.

This program is based on the idea of cellular automata (hence CAFire), though I had played with it long before I knew anything about CA, or even that some CA exist.

Note: A current FPS and number of particles are displayed in the lower right corner of the screen. To see it, you might need to hide your panel. ;)

FAQ + Known Bugs


One of predefined colormaps of 0.0.12 looks like this: fire-win-green-r-0.0.12.png.

A 0.0.11 screenshot: fire-root-0.0.11soso.jpg, no more "ghost windows" - at least not much.

This is how a useless 0.0.10 version looks running. It was started on a desktop with emacs running and hence it is stored in the background image: fire-root-0.0.10wrong.jpg.

A small one with magic2 input: fire-win-1.png. This is how it looks in the root window as well.

A more complex one: fire-win-2.png.

And now one stars input: fire-win-3.jpg.


Here it is assumed, that CAFire is installed by 'make install', BINDIR is on the executable search PATH and CONFDIR is /usr/local/etc/cafire.


runcafire /usr/local/etc/cafire/input/magic2.cafirerc
is same as
runcafire magic2.cafirerc

runcafire magic2.cafirerc -back

runcafire /usr/local/etc/cafire/input/magic.cafirerc /usr/local/etc/cafire/colormaps/green-b.col
is same as
runcafire /usr/local/etc/cafire/input/magic.cafirerc green-b.col
is same as
runcafire magic.cafirerc /usr/local/etc/cafire/colormaps/green-b.col
is same as
runcafire magic.cafirerc green-b.col

this one is dangerous :-)
runcafire stars.cafirerc -back red-g.col

runcafire /usr/local/etc/cafire/input/magic2.cafirerc -root blue-r.col

runcafire magic2.cafirerc -back /usr/local/etc/cafire/colormaps/blue-r.col
is same as subsequent

If you have enough of those, run killcafire.


12.09.2000 - Added FAQ + Known Bugs section.
11.09.2000 - 0.0.14 and highly improved 'runcafire' script. See README, Running and Examples sections. The changes were done according to various ideas of Ronald Joe Record and again Ben Ford with a bit of my own spice.
- Added Examples section.
06.09.2000 - 0.0.13 has improved Makefile - 'install', 'uninstall' targets and improved 'runcafire' script (former 'run'). See README. The changes are based on an idea of - see below.
05.09.2000 - contributed a binary tarball of CAFire: "here is a binary tarball of cafire with your script edited to make calling it easier. It installs into /usr/local/bin and config files into /etc/cafire. The 'run' script has been renamed to 'runcafire' and can be called in the same manner as before. However, if you call it with no parameters, it runs the last configured setup. It seemed much easier to drop into startup scripts or execute from various window managers this way." I will incorporate it (after a little modification) into the source tarball asap.
04.09.2000 - 0.0.12 brings user-defined colormap support.
- Added 0.0.12 screenshot.
27.01.2000 - The version 0.0.11 solves partially the background image problem. Also some code preventing "apocalypse" (a screen flooded with fire and the program flooded by mouse movement events) was added, i.e. when the FPS rate drops under 70% of the value specified in the input file, only one mouse movement event coming in a row during one frame is taken into account.
- Added 0.0.11 screenshot.
20.01.2000 - I tried to code a root window background preservation mode - for this I would need to obtain a current root background pixmap. After about 1 hour of searching Xlib manuals I found that there is no way how to query a window background in X! Whoops.
- At least I changed this section formatting, so that it looks better. (I discovered tables in HTML... :-)
- Processor load paragraph and note about the info display added to the description.
- Current development version screenshot (0.0.10).
13.01.2000 - Version 0.0.9 - support for 8bpp indexed and 16, 24, 32 bpp DirectColor or TrueColor displays.
12.01.2000 - Screenshots of 0.0.8 in action. Home link (dangerous!).
11.01.2000 - New 0.0.8 version brings significant speedup on big resolution screens, checking of input values, checking of memory allocation return codes (-> more secure? :), no more autorepeat off and some minor changes. I tried to support other display depths, but gave it up for today...
28.12.1999 - Before I managed to release it, 0.0.7 came!
27.12.1999 - The last version is 0.0.5 and I think it is ok enough to deserve a home page.


Here it is: cafire-latest.tgz (0.0.14)
E-mail: cimrman3 at students dot zcu dot cz

Note: This is my first attempt to write a web page, so be noble-minded...

Back to home.