StonerView

This is my favorite screen saver in all the world.

StonerView sample 1 StonerView sample 2 StonerView sample 3

Normally I hate screen savers, I really do. If the point is to save the screen from burn-in (which doesn't happen these days), they're silly. If the point is to occupy my attention, I have a host of better ideas. If the point is to be pretty, they usually fail.

Except ElectroPaint[*]. Which is something that came with SGI machines, and I presume it still does. It was strange and hypnotic and I could stare at it for hours. Once I set it running on twelve machines in the same room and turned the lights off. That was pretty good.

[* A trademarked term, I am told. See below.]

Unfortunately and dammit, the source code to ElectroPaint has never been released, and it only runs on SGI machines. This bugged me for years. So I finally got off my butt and reimplemented it.

(Actually, the first thing I did was to reimplement it in sound. That's StonerSound, which may also interest you. But I made it back into a visual toy after that.)

Please note that this contains no code from ElectroPaint. I've never seen any. StonerView is entirely my own code, inspired only by my memory of what ElectroPaint looked like. (In fact, when I wrote this, I hadn't seen ElectroPaint run for over a year.)

Mac OSX version

Thanks to Tommaso Pecorella's original MacOSX port, and Alexander v. Below's updates for the Intel architecture. Also to Ben Galanti and jwz for hints on updating to 10.6.

Note for 10.15 (Catalina): Shockingly, this still works! The 10.6 binary contains both 32-bit and 64-bit versions, so it runs fine, despite being almost a decade old. However: (a) The screensaver only fills a quarter of the screen on retina displays. And (b) you have to remove the Gatekeeper flags before it will run. After installing, type:

xattr -d com.apple.quarantine "Library/Screen Savers/StonerView.saver"

iOS version

Shigeru Hagiwara ported StonerView to iOS (for the iPad). Sadly, Apple saw fit to reject the app, saying: Apps that are not very useful or do not provide any lasting entertainment value may be rejected. (They also didn't like the word "Stoner".) Their loss, and ours. However, the source code is available at Shigeru Hagiwara's GitHub page.

Jamie Zawinski has included StonerView in his iOS port of the XScreenSaver collection. I guess that's lasting entertainment value!

Javascript version

I have now ported the effect to Javascript, using a cunning mixture of Javascript and CSS3 animation techniques. (It's not quite the same, but I think I got the feel right.

This has only been tested on Safari and MobileSafari. (Sorry, Firefox people.) You can install it as a web-app on iOS; just use the browser's "Add to Home Screen" option. The transitions are jerky on older iPhones and iPod Touches, but it looks great on an iPad or fourth-gen iPhone or iPod.

If you're interested in the (GPL) source code, well, it's a web app. Go to the page and view the HTML source.

Mac Classic version

You can download the Mac executable. It's a BinHexed file, about 27K. (Yeah, tiny.) Go nuts. If it runs too slowly, reduce the window size some.

If you're interested in modifying StonerView, you can also download the source code. (CodeWarrior Pro project and source, 69K.)

StonerView uses QuickDraw 3D for its display system. If you don't have it, you'll have to download QuickDraw 3D from Apple's web site. StonerView should run on any PowerMac with System 7 or later. If it's too slow, reduce the window size. (QD3D only works on PowerMacs, so I'm afraid a 68K version of StonerView isn't going to happen.)

Note that the Mac version is still at 1.2. (The changes in 1.3 are mostly in the Unix-specific code. Mac people are missing out on the 1.3 option to draw edges on the colored squares... but then I never liked that option in the original.)

Unix / GL version

Non-Mac folks can download the Unix source here. (30K tar.Z file.) This requires a GL library. If your machine doesn't have GL installed, try Mesa, a free GL implementation.

Here is StonerView.desktop, a config file for using StonerView as a screen saver with the Gnome desktop. I'm told you should put this file in /usr/share/control-center/.data/ -- haven't tried it myself.

Win32 version

Peter Kliem has done a Win32 port and an Android wallpaper port.


Version history

1.5 (Mac OSX universal binary port): contributed by Alexander v. Below

1.4 (Mac OSX port): contributed by Tommaso Pecorella

1.3 (Unix version only): Jamie Zawinski contributed a pile of code to change the framework from GLUT to straight GL. This allows the --root option to work, and therefore it works with the xscreensaver package. Also, added an option to outline each square in grey.

1.2: I forgot the sliding rainbow effect on the chain of polygons! Can you believe that? I'm such a doof. Also, Unix/GL version.

1.1: Original public release (I think)

Dair Grant has included a StonerView module in his Setting Sun screen saver for Macintosh. Setting Sun is shareware, but the StonerView plugin is free (being GPL). The source code is in the Setting Sun plugin development kit on his download page.

Tommaso Pecorella has ported StonerView to a MacOSX screensaver module.


StonerView is copyright 1998-2001 by Andrew Plotkin.

StonerView is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

The original Electropaint is by David Tristram. Tristram Visual holds a US trademark on the name Electropaint. Play nice.


Last updated February 8, 2020.

StonerSound

Zarfhome (map) (down)