p28.png p14.png p27.png p10.png p11.png p13.png p23.png p12.png p13.png

Screensavers

While I consulted for Mark Williams Company in 1993, I wrote a screensaver called mwclogo. It displayed the company logo, a strikingly simple and beautiful interlacing of the letters M and W, on a then state-of-the-art VGA 640x480 screen in glorious 8-bit color. It picked random color schemes (two colors per image: letters / background) and random transition effects between successive images (wipes, dissolves, etc.). It looked great. I'm a Frank Stella fan, especially of his big bright geometric paintings, so I used the same graphics library and effects library for another screensaver called Stella.

My original C code was for the Mark Williams COHERENT operating system, but it ported easily to MS-DOS, so it ran on both. A tarball of my venerable C sources from 1993-1994 is here. When I wrote the first version of this page almost 15 years later, in 2010, the 1996-vintage MS-DOS binaries mwclogo.exe and Stella.exe still worked on a Windows PC, as seen in the 'screenshots' above and below (actually photos of the CRT screen, not digital screenshots). These programs grab the entire screen when they start; hit <Esc> or q to quit. I also shot two grainy short videos of the screensavers running under COHERENT.

In 2010 I also ported the image generation code from C to PHP GD. Click here to display the Mark Williams logo as a .png image or here to display one of the Stellas. You can twiddle parameters to change the size and padding of the image or hit your browser's reload button to change the colors. A few more PHP images are here.

A decade later, in 2020, I wrote code to generate frame-by-frame transitions between images, as in the screensavers. Then I used ffmpeg to create 3' MPEG HD videos from the frames. The viewer below can play the videos if your browser supports HTML5. Run them in full-screen mode!

Stella.mp4




Stella.mp4
earplay.mp4
mwclogo.mp4
yinyang.mp4
p06.png p02.png p04.png p07.png p38.png p40a.png p50a.png p54a.png p05.png p03.png p08.png