Back in 1989 I saw a demo by Horizon and one part by Kjer got my attention, he called it "A bacill invading emulation". A year later I got my first Amiga and ended up implementing kind of the same thing while playing around in the K-SEKA assembler (this was before AsmOne) and reading The Amiga Hardware Reference Manual.

Fast forward to 1998. A workmate made a Java Applet that showed some diagrams that you could zoom in. He did not use double buffering so the zooming flickered badly. I decided to help him and on a whim I yet again implemented Leif while doing so.

Another ten years passes by and last night I decided to try out Code::Blocks, a free C++ IDE. Code::Blocks happened to have a project template for SDL (Simple DirectMedia Layer) and SDL was something I also had been planning to check out sooner or later. By now you already guessed what my first test project ended up to be. It reads 32000 pixels per frame and plots 128000 pixels. At 25 fps that's a total of 4000000 pixels being handled each second.

What's up with the name Leif? Well, it's obviously from Conway's Game of Life even though the algorithm is totally different.

Leif as a win32 binary with SDL.dll included. Try left and right clicking in the window.
Source code as a Code::Blocks project. Published under the MIT License as stipulated here.

This is what it looks like over time:

Maybe Franz Kafka would have appreciated the "morphing" taking place.

Jonas Elfström, 2008-11-15