17 "*captureStderr: True",
18 "*overlayTextForeground: #FFFF00",
19 "*overlayTextBackground: #000000",
20 "*overlayStderr: True",
21 "*font: *-medium-r-*-140-*-m-*",
22 "*sgiSaverExtension: True",
23 "*mitSaverExtension: False",
24 "*xidleExtension: True",
25 "*procInterrupts: True",
26 "*demoCommand: xscreensaver-demo",
27 "*prefsCommand: xscreensaver-demo -prefs",
28 "*helpURL: http://www.jwz.org/xscreensaver/man.html",
29 "*loadURL: netscape -remote 'openURL(%s)' || netscape '%s'",
30 "*dateFormat: %d-%b-%y (%a); %I:%M %p",
31 "*installColormap: True",
33 \"Qix (solid)\" qix -root -solid -delay 0 -segments 100 \\n\
34 \"Qix (transparent)\" qix -root -count 4 -solid -transparent \\n\
35 \"Qix (linear)\" qix -root -count 5 -solid -transparent \
36 -linear -segments 250 -size 100 \\n\
37 \"Attraction (balls)\" attraction -root -mode balls \\n\
38 \"Attraction (lines)\" attraction -root -mode lines -points 3 \
40 \"Attraction (splines)\" attraction -root -mode splines -segments \
42 \"Attraction (orbital)\" attraction -root -mode lines -radius 300 \
43 -orbit -vmult 0.5 \\n\
47 rorschach -root -offset 7 \\n\
52 slidescreen -root \\n\
53 decayscreen -root \\n\
55 blitspin -root -grab \\n\
59 \"Ripples (oily)\" ripples -root -oily -light 2 \\n\
60 \"Ripples (stir)\" ripples -root -oily -light 2 -stir \\n\
61 \"Ripples (desktop)\" ripples -root -water -light 6 \\n\
76 \"Grav (trails)\" grav -root -trail -decay \\n\
91 goop -root -max-velocity 0.5 -elasticity \
94 \"Starfish (blob)\" starfish -root -blob \\n\
97 coral -root -delay 0 \\n\
99 triangle -root -delay 1 \\n\
106 kaleidescope -root \\n\
108 xlyap -root -randomize \\n\
112 interference -root \\n\
113 truchet -root -randomize \\n\
119 \"RD-Bomb (mobile)\" rd-bomb -root -speed 1 -size 0.1 \\n\
128 \"Wander (spots)\" wander -root -advance 0 -size 10 -circles \
129 True -length 10000 -reset 100000 \\n\
133 petri -root -size 2 -count 20 \\n\
134 \"Petri 2\" petri -root -minlifespeed 0.02 \
135 -maxlifespeed 0.03 -minlifespan 1 \
136 -maxlifespan 1 -instantdeathchan 0 \
137 -minorchan 0 -anychan 0.3 \\n\
142 default-n: webcollage -root \\n\
143 default-n: \"WebCollage (whacked)\" \
144 webcollage -root -filter \
145 'vidwhacker -stdin -stdout' \\n\
146 - default-n: vidwhacker -root \\n\
148 - mono: \"Rocks (mono)\" rocks -root \\n\
149 color: \"Rocks (color)\" rocks -root -fg darksalmon \\n\
150 - mono: \"Qix (xor)\" qix -root -linear -count 5 -size 200 \
151 -spread 30 -segments 75 -solid -xor \\n\
152 color: \"Attraction (poly)\" attraction -root -mode polygons \\n\
153 - color: \"Attraction (filled)\" attraction -root -mode filled-splines \
155 - Color: \"Attraction (glow)\" attraction -root -glow -points 10 \\n\
156 color: bubbles -root \\n\
159 GL: superquadrics -root \\n\
160 GL: morph3d -root \\n\
162 GL: moebius -root \\n\
163 GL: stairs -root \\n\
165 GL: sproingies -root \\n\
167 GL: atlantis -root \\n\
168 GL: lament -root \\n\
169 GL: bubble3d -root \\n\
170 GL: glplanet -root \\n\
171 GL: pulsar -root \\n\
172 - GL: \"Pulsar (textures)\" \
173 pulsar -root -texture -mipmap \
174 -texture_quality -light -fog \\n\
175 GL: extrusion -root \\n\
176 GL: sierpinski3d -root \\n\
178 "XScreenSaver.pointerPollTime: 5",
179 "XScreenSaver.initialDelay: 0",
180 "XScreenSaver.windowCreationTimeout: 30",
181 "XScreenSaver.bourneShell: /bin/sh",
182 "*Dialog.headingFont: *-times-bold-r-*-*-*-180-*-*-*-iso8859-1",
183 "*Dialog.bodyFont: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1",
184 "*Dialog.labelFont: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1",
185 "*Dialog.buttonFont: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1",
186 "*Dialog.dateFont: *-courier-medium-r-*-*-*-80-*-*-*-iso8859-1",
187 "*Dialog.foreground: #000000",
188 "*Dialog.background: #BFBFBF",
189 "*Dialog.Button.foreground: #000000",
190 "*Dialog.Button.background: #D0D0D0",
191 "*Dialog.text.foreground: #000000",
192 "*Dialog.text.background: #FFFFFF",
193 "*Dialog.logo.foreground: #FF0000",
194 "*Dialog.logo.background: #FFFFFF",
195 "*Dialog.topShadowColor: #E7E7E7",
196 "*Dialog.bottomShadowColor: #737373",
197 "*Dialog.logo.width: 200",
198 "*Dialog.logo.height: 200",
199 "*Dialog.internalBorderWidth: 30",
200 "*Dialog.borderWidth: 1",
201 "*Dialog.shadowThickness: 4",
202 "*passwd.heading.label: XScreenSaver %s",
203 "*passwd.body.label: This display is locked.",
204 "*passwd.user.label: User:",
205 "*passwd.passwd.label: Password:",
206 "*passwd.passwdFont: *-courier-medium-r-*-*-*-140-*-*-*-iso8859-1",
207 "*passwd.thermometer.width: 8",
208 "*splash.heading.label: XScreenSaver %s",
209 "*splash.body.label: Copyright © 1991-1999 by",
210 "*splash.body2.label: Jamie Zawinski <jwz@jwz.org>",
211 "*splash.demo.label: Demo",
212 "*splash.prefs.label: Prefs",
213 "*splash.help.label: Help",
214 "*fontList: *-helvetica-medium-r-*-*-*-120-*-*-*-iso8859-1",
215 "*demoDialog*label1.fontList: *-helvetica-medium-r-*-*-*-140-*-*-*-iso8859-1",
216 "*XmTextField.fontList: *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1",
217 "*label0.fontList: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1",
218 "XScreenSaver*XmList.fontList: *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1",
219 "*XmDialogShell*foreground: #000000",
220 "*XmDialogShell*background: #E5E5E5",
221 "*XmDialogShell*XmTextField.foreground: #000000",
222 "*XmDialogShell*XmTextField.background: #FFFFFF",
223 "*XmDialogShell*demoList.foreground: #000000",
224 "*XmDialogShell*demoList.background: #FFFFFF",
225 "*XmDialogShell.title: XScreenSaver",
226 "*versionWarning_popup.title: XScreenSaver Warning",
227 "*demoForm_popup.title: XScreenSaver Demo",
228 "*preferencesForm_popup.title: XScreenSaver Preferences",
229 "*allowShellResize: True",
230 "*autoUnmanage: False",
231 "*demoDialog.maxWidth: 600",
232 "*label1.labelString: XScreenSaver %s",
233 "*label1.label: XScreenSaver %s",
234 "*label2.labelString: Copyright © 1991-1999 by Jamie Zawinski <jwz@jwz.org>",
235 "*label2.label: Copyright © 1991-1999 by Jamie Zawinski <jwz@jwz.org>",
236 "*demoList.visibleItemCount: 10",
237 "*demoList.automaticSelection: True",
238 "*next.labelString: Run Next",
239 "*prev.labelString: Run Previous",
240 "*edit.labelString: Preferences",
241 "*restart.labelString: Reinitialize",
242 "*done.labelString: Quit",
243 "*preferencesLabel.labelString: XScreenSaver Parameters",
244 "*timeoutLabel.labelString: Saver Timeout",
245 "*cycleLabel.labelString: Cycle Timeout",
246 "*fadeSecondsLabel.labelString: Fade Duration",
247 "*fadeTicksLabel.labelString: Fade Ticks",
248 "*lockLabel.labelString: Lock Timeout",
249 "*passwdLabel.labelString: Password Timeout",
250 "*preferencesForm*XmTextField.columns: 8",
251 "*verboseToggle.labelString: Verbose",
252 "*cmapToggle.labelString: Install Colormap",
253 "*fadeToggle.labelString: Fade Colormap",
254 "*unfadeToggle.labelString: Unfade Colormap",
255 "*lockToggle.labelString: Require Password",
256 "*preferencesDone.labelString: OK",
257 "*preferencesCancel.labelString: Cancel",
258 "XScreenSaver*dragInitiatorProtocolStyle: DRAG_NONE",
259 "XScreenSaver*dragReceiverProtocolStyle: DRAG_NONE",
260 "*demo_dialog.title: XScreenSaver Demo",
261 "*preferences_dialog.title: XScreenSaver Preferences",
262 "*warning_dialog.title: XScreenSaver Warning",
263 "*demo_dialog.geometry: =640x400",
264 "*demo_dialog*font: *-helvetica-bold-r-*-*-*-120-*-*-*-iso8859-1",
265 "*preferences_dialog*font: *-helvetica-bold-r-*-*-*-120-*-*-*-iso8859-1",
266 "*demo_dialog*label1.font: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1",
267 "*preferences_dialog*label1.font:*-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1",
268 "XScreenSaver*warning_dialog*label0.font: \
269 *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1",
270 "XScreenSaver*warning_dialog*Label.font: \
271 *-helvetica-bold-r-*-*-*-120-*-*-*-iso8859-1",
272 "XScreenSaver*warning_dialog*Command.font: \
273 *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1",
274 "XScreenSaver.demo_dialog*List.font: \
275 *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1",
276 "XScreenSaver.demo_dialog*Text*font: \
277 *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1",
278 "XScreenSaver.demo_dialog*foreground: #000000",
279 "XScreenSaver.demo_dialog*background: #E5E5E5",
280 "XScreenSaver.demo_dialog*List.background: #FFFFFF",
281 "XScreenSaver.demo_dialog*Scrollbar.background: #D9D9D9",
282 "XScreenSaver.demo_dialog*Command.background: #D9D9D9",
283 "XScreenSaver.demo_dialog*Text*background: #FFFFFF",
284 "XScreenSaver.preferences_dialog*foreground: #000000",
285 "XScreenSaver.preferences_dialog*background: #E5E5E5",
286 "XScreenSaver.preferences_dialog*Command.background: #D9D9D9",
287 "XScreenSaver.preferences_dialog*Toggle.background: #D9D9D9",
288 "XScreenSaver.preferences_dialog*Text*background: #FFFFFF",
289 "XScreenSaver.warning_dialog*foreground: #000000",
290 "XScreenSaver.warning_dialog*background: #E5E5E5",
291 "XScreenSaver.warning_dialog*Command.background: #D9D9D9",
292 "*preferences_dialog*Dialog.value.translations: #override\\n\
293 <Key>Return: beginning-of-line()\\n",
294 "*demo_dialog*viewport.height: 200",
295 "*Form.borderWidth: 0",
296 "*Box.borderWidth: 0",
297 "*Label.borderWidth: 0",
298 "*preferences_dialog*Dialog.borderWidth: 0",
299 "*demo_dialog*run.label: Run",
300 "*demo_dialog*next.label: Run Next",
301 "*demo_dialog*prev.label: Run Previous",
302 "*demo_dialog*edit.label: Preferences",
303 "*demo_dialog*restart.label: Reinitialize",
304 "*demo_dialog*done.label: Quit",
305 "XScreenSaver.demo_dialog*Command.internalWidth: 10",
306 "XScreenSaver.demo_dialog*Command.internalHeight: 4",
307 "*preferences_dialog*timeout.label: Saver Timeout:",
308 "*preferences_dialog*cycle.label: Cycle Timeout:",
309 "*preferences_dialog*fade.label: Fade Duration:",
310 "*preferences_dialog*ticks.label: Fade Ticks:",
311 "*preferences_dialog*lockTime.label: Lock Timeout:",
312 "*preferences_dialog*passwdTime.label: Password Timeout:",
313 "XScreenSaver.preferences_dialog*Command.internalWidth: 10",
314 "XScreenSaver.preferences_dialog*Command.internalHeight: 4",
315 "*preferences_dialog*label1.label: XScreenSaver Parameters",
316 "*preferences_dialog*buttonbox.verbose.label: Verbose",
317 "*preferences_dialog*buttonbox.cmap.label: Install Colormap",
318 "*preferences_dialog*buttonbox.fade.label: Fade Colormap",
319 "*preferences_dialog*buttonbox.unfade.label: Unfade Colormap",
320 "*preferences_dialog*buttonbox.lock.label: Require Password",
321 "*preferences_dialog*done.label: Ok",
322 "*preferences_dialog*cancel.label: Cancel",
323 "*warning_dialog*ok.label: Ok",
324 "*warning_dialog*horizDistance: 30",
325 "*warning_dialog*vertDistance: 0",
326 "*warning_dialog*Label.internalWidth: 1",
327 "*warning_dialog*Label.internalHeight: 0",
328 "*warning_dialog*label0.horizDistance: 80",
329 "*warning_dialog*label0.vertDistance: 20",
330 "*warning_dialog*Command.horizDistance: 160",
331 "*warning_dialog*Command.vertDistance: 20",
332 "*warning_dialog*Command.internalWidth: 20",
333 "*warning_dialog*Command.internalHeight: 5",
334 "*hacks.documentation.isInstalled: True",
335 "*hacks.grav.documentation: \
336 This program draws a simple orbital simulation. If you turn on \
337 trails, it looks kind of like a cloud-chamber photograph. Written by \
339 "*hacks.qix.documentation: \
340 This is the swiss army chainsaw of qix programs. It bounces a series \
341 of line segments around the screen, and uses variations on this basic \
342 motion pattern to produce all sorts of different presentations: line \
343 segments, filled polygons, overlapping translucent areas... Written \
345 "*hacks.attraction.documentation: \
346 Like qix, this uses a simple simple motion model to generate many \
347 different display modes. The control points attract each other up to \
348 a certain distance, and then begin to repel each other. The \
349 attraction/repulsion is proportional to the distance between any two \
350 particles, similar to the strong and weak nuclear forces. \
352 One of the most interesting ways to watch this hack is simply as \
353 bouncing balls, because their motions and interactions with each \
354 other are so odd. Sometimes two balls will get into a tight orbit \
355 around each other, to be interrupted later by a third, or by the edge \
356 of the screen. It looks quite chaotic. \
358 Written by Jamie Zawinski, based on Lisp code by John Pezaris.",
359 "*hacks.pyro.documentation: \
360 Pyro draws exploding fireworks. Blah blah blah. Written by Jamie \
362 "*hacks.helix.documentation: \
363 This repeatedly generates spirally string-art-ish patterns. Written \
365 "*hacks.pedal.documentation: \
366 This is sort of a combination spirograph/string-art. It generates a \
367 large, complex polygon, and lets the X server do the bulk of the work \
368 by giving it an even/odd winding rule. Written by Dale Moore, based \
369 on some ancient PDP-11 code.",
370 "*hacks.rorschach.documentation: \
371 This generates random inkblot patterns. The algorithm is deceptively \
372 simple for how well it works; it merely walks a dot around the screen \
373 randomly, and then reflects the image horizontally, vertically, or \
374 both. Any deep-seated neurotic tendencies which this program reveals \
375 are your own problem. Written by Jamie Zawinski.",
376 "*hacks.hopalong.documentation: \
377 This draws lacy fractal patterns, based on iteration in the imaginary \
378 plane, from a 1986 Scientific American article. Mostly written by \
380 "*hacks.greynetic.documentation: \
381 This draws random colored and stippled rectangles. Written by Jamie \
383 "*hacks.xroger.documentation: \
384 The XScreenSaver logo. Don't you hate it? So do I. Would you like \
385 to design a new logo for XScreenSaver? If so, send jwz your \
387 "*hacks.imsmap.name: IMSmap",
388 "*hacks.imsmap.documentation: \
389 This generates random cloud-like patterns. It looks quite different \
390 in monochrome and color. The basic idea is to take four points on \
391 the edge of the image, and assign each a random ``elevation''. Then \
392 find the point between them, and give it a value which is the average \
393 of the other four, plus some small random offset. Then coloration is \
394 done based on elevation. \
396 The color selection is done by binding the elevation to either hue, \
397 saturation, or brightness, and assigning random values to the others. \
398 The ``brightness'' mode tends to yield cloudlike patterns, and the \
399 others tend to generate images that look like heat-maps or CAT-scans. \
400 Written by Juergen Nickelsen and Jamie Zawinski.",
401 "*hacks.slidescreen.name: SlideScreen",
402 "*hacks.slidescreen.documentation: \
403 This grabs an image of whatever is on your screen, divides it into a \
404 grid, and then randomly shuffles the squares around as if it was one \
405 of those annoying ``16-puzzle'' games, where there is a grid of \
406 squares, one of which is missing. I hate trying to solve those \
407 puzzles, but watching one permute itself is more amusing. Written by \
409 "*hacks.decayscreen.name: DecayScreen",
410 "*hacks.decayscreen.documentation: \
411 This grabs an image of whatever is on your screen, and makes it melt. \
412 You've no doubt seen this effect before, but no screensaver would \
413 really be complete without it. It works best if there's something \
414 colorful visible. Warning, if the effect continues after the screen \
415 saver is off, seek medical attention. Written by David Wald and \
418 A number of these screenhacks have the ability to take an image of \
419 your desktop and manipulate it in some way. On SGI systems, these \
420 programs are able to (at random) pull their source image from the \
421 system's video input instead! This works nicely if you leave some \
422 some random television station plugged in.",
423 "*hacks.jigsaw.documentation: \
424 This grabs a screen image, carves it up into a jigsaw puzzle, \
425 shuffles it, and then solves the puzzle. This works especially well \
426 when you feed it an external video signal instead of letting it grab \
427 the screen image (actually, I guess this is generally true...) When \
428 it is grabbing a video image, it is sometimes pretty hard to guess \
429 what the image is going to look like once the puzzle is solved. \
430 Written by Jamie Zawinski.",
431 "*hacks.blitspin.name: BlitSpin",
432 "*hacks.blitspin.documentation: \
433 The ``blitspin'' hack repeatedly rotates a bitmap by 90 degrees by \
434 using logical operations: the bitmap is divided into quadrants, and \
435 the quadrants are shifted clockwise. Then the same thing is done \
436 again with progressively smaller quadrants, except that all \
437 sub-quadrants of a given size are rotated in parallel. Written by \
438 Jamie Zawinski based on some cool SmallTalk code seen in in Byte \
441 As you watch it, the image appears to dissolve into static and then \
442 reconstitute itself, but rotated. You can provide the image to use, \
443 as an XBM or XPM file, or tell it to grab a screen image and rotate \
445 "*hacks.slip.documentation: \
446 This program throws some random bits on the screen, then sucks them \
447 through a jet engine and spews them out the other side. To avoid \
448 turning the image completely to mush, every now and then it will and \
449 then it interjects some splashes of color into the scene, or go into \
450 a spin cycle, or stretch the image like taffy, or (this is my \
451 addition) grab an image of your current desktop to chew on. \
452 Originally written by Scott Draves; whacked on by Jamie Zawinski.",
453 "*hacks.distort.documentation: \
454 This hack grabs an image of the screen, and then lets a transparent \
455 lens wander around the screen, magnifying whatever is underneath. \
456 Written by Jonas Munsin.",
457 "*hacks.spotlight.documentation: \
458 Draws a spotlight scanning across a black screen, illumnating the \
459 underlying desktop when it passes. Written by Rick Schultz.",
460 "*hacks.hypercube.documentation: \
461 This displays 2D projections of the sequence of 3D objects which are \
462 the projections of the 4D analog to the cube: as a square is composed \
463 of four lines, each touching two others; and a cube is composed of \
464 six squares, each touching four others; a hypercube is composed of \
465 eight cubes, each touching six others. To make it easier to \
466 visualize the rotation, it uses a different color for the edges of \
467 each face. Don't think about it too long, or your brain will melt. \
468 Written by Joe Keane, Fritz Mueller, and Jamie Zawinski.",
469 "*hacks.halo.documentation: \
470 This draws trippy psychedelic circular patterns that hurt to look at. \
471 It can also animate the control-points, but that takes a lot of CPU \
472 and bandwidth. Written by Jamie Zawinski.",
473 "*hacks.maze.documentation: \
474 This is the ancient X maze demo, modified to work with xscreensaver. \
475 It generates a random maze, then solves it with visual feedback. \
476 Originally by Jim Randell; modified by a cast of thousands.",
477 "*hacks.noseguy.documentation: \
478 A little man with a big nose wanders around your screen saying \
479 things. The things which he says can come from a file, or from an \
480 external program like `zippy' or `fortune'. This was extracted from \
481 `xnlock' by Dan Heller. Colorized by Jamie Zawinski.",
482 "*hacks.flame.documentation: \
483 Another iterative fractal generator. Written by Scott Draves.",
484 "*hacks.lmorph.name: LMorph",
485 "*hacks.lmorph.documentation: \
486 This generates random spline-ish line drawings and morphs between \
487 them. Written by Sverre H. Huseby and Glenn T. Lines.",
488 "*hacks.deco.documentation: \
489 This one subdivides and colors rectangles randomly. It looks kind of \
490 like Brady-Bunch-era rec-room wall paneling. (Raven says: ``this \
491 screensaver is ugly enough to peel paint.'') Written by Jamie \
492 Zawinski, inspired by Java code by Michael Bayne.",
493 "*hacks.moire.documentation: \
494 This one draws cool circular interference patterns. Most of the \
495 circles you see aren't explicitly rendered, but show up as a result \
496 of interactions between the other pixels that were drawn. Written by \
497 Jamie Zawinski, inspired by Java code by Michael Bayne. As he \
498 pointed out, the beauty of this one is that the heart of the display \
499 algorithm can be expressed with just a pair of loops and a handful of \
500 arithmetic, giving it a high ``display hack metric''.",
501 "*hacks.moire2.documentation: \
502 Another example of the fun you can have with moire \
503 interference patterns; this hack generates fields of concentric \
504 circles or ovals, and combines the planes with various operations. \
505 The planes are moving independently of one another, causing the \
506 interference lines to ``spray.'' Written by Jamie Zawinski.",
507 "*hacks.lightning.documentation: \
508 This one draws crackling fractal lightning bolts. It's simple, \
509 direct, and to the point. If only it had sound... Written by Keith \
511 "*hacks.strange.documentation: \
512 This draws strange attractors: it's a colorful, \
513 unpredictably-animating field of dots that swoops and twists around. \
514 The motion is very nice. Written by Massimino Pascal.",
515 "*hacks.spiral.documentation: \
516 Moving circular patterns, by Peter Schmitzberger. Moving circular \
517 patterns means moire; interference patterns, of course.",
518 "*hacks.laser.documentation: \
519 Moving radiating lines, that look vaguely like scanning laser beams. \
520 Written by Pascal Pensa. (Frankie say: relax.)",
521 "*hacks.grav.documentation: \
522 This program draws a simple orbital simulation. If you turn on \
523 trails, it looks kind of like a cloud-chamber photograph. Written \
525 "*hacks.drift.documentation: \
526 How could one possibly describe this except as ``drifting recursive \
527 fractal cosmic flames?'' Another fine hack from the Scott Draves \
528 collection of fine hacks.",
529 "*hacks.ifs.name: IFS",
530 "*hacks.ifs.documentation: \
531 This one draws spinning, colliding iterated-function-system images. \
532 Written by Massimino Pascal.",
533 "*hacks.julia.documentation: \
534 This one draws spinning, animating (are you detecting a pattern here \
535 yet?) explorations of the Julia set. You've probably seen static \
536 images of this fractal form before, but it's a lot of fun to watch in \
537 motion as well. One interesting thing is that there is a small \
538 swinging dot passing in front of the image, which indicates the \
539 control point from which the rest of the image was generated. \
540 Written by Sean McCullough.",
541 "*hacks.penrose.documentation: \
542 Draws quasiperiodic tilings; think of the implications on modern \
543 formica technology. Written by Timo Korvola. \
545 In April 1997, Sir Roger Penrose, a British math professor who has \
546 worked with Stephen Hawking on such topics as relativity, black \
547 holes, and whether time has a beginning, filed a \
548 copyright-infringement lawsuit against the Kimberly-Clark \
549 Corporation, which Penrose said copied a pattern he created (a \
550 pattern demonstrating that ``a nonrepeating pattern could exist in \
551 nature'') for its Kleenex quilted toilet paper. Penrose said he \
552 doesn't like litigation but, ``When it comes to the population of \
553 Great Britain being invited by a multinational to wipe their bottoms \
554 on what appears to be the work of a Knight of the Realm, then a last \
555 stand must be taken.'' \
557 As reported by News of the Weird #491, 4-jul-1997.",
558 "*hacks.sierpinski.documentation: \
559 This draws the two-dimensional variant of the recursive Sierpinski \
560 triangle fractal. Written by Desmond Daignault.",
561 "*hacks.braid.documentation: \
562 Draws random color-cycling inter-braided concentric circles. Written \
564 "*hacks.galaxy.documentation: \
565 This draws spinning galaxies, which then collide and scatter their \
566 stars to the, uh, four winds or something. Originally an Amiga \
567 program by Uli Siegmund.",
568 "*hacks.bouboule.documentation: \
569 This draws what looks like a spinning, deforming baloon with \
570 varying-sized spots painted on its invisible surface. Written by \
572 "*hacks.swirl.documentation: \
573 More flowing, swirly patterns. This version is by M. Dobie and R. \
574 Taylor, but you might have seen a Mac program similar to this called \
575 FlowFazer. There is also a cool Java applet of a similar concept",
576 "*hacks.flag.documentation: \
577 This draws a waving colored flag, that undulates its way around the \
578 screen. The trick is the flag can contain arbitrary text and images. \
579 By default, it displays either the current system name and OS \
580 type, or a picture of ``Bob,'' but you can replace the text or the \
581 image with a command-line option. Written by Charles Vidal and Jamie \
583 "*hacks.sphere.documentation: \
584 Another of the classic screenhacks of the distant past, this one \
585 draws shaded spheres in multiple colors. This hack traces its \
586 lineage back to Tom Duff in 1982.",
587 "*hacks.forest.documentation: \
588 This draws fractal trees. Written by Peter Baumung. Everybody loves \
590 "*hacks.lisa.documentation: \
591 This draws Lisajous loops, by Caleb Cullen. Remember that device \
592 they had the Phantom Zone prisoners in during their trial in \
593 Superman? I think that was one of these.",
594 "*hacks.lissie.documentation: \
595 Another Lissajous figure. This one draws the progress of circular \
596 shapes along a path. Written by Alexander Jolk.",
597 "*hacks.goop.documentation: \
598 This draws set of animating, transparent, amoeba-like blobs. The \
599 blobs change shape as they wander around the screen, and they are \
600 translucent, so you can see the lower blobs through the higher ones, \
601 and when one passes over another, their colors merge. Written by \
602 Jamie Zawinski. I got the idea for this from a cool mouse pad I \
603 have, which achieves the same kind of effect in real life by having \
604 several layers plastic with colored oil between them. Written by \
606 "*hacks.starfish.documentation: \
607 This generates a sequence of undulating, throbbing, star-like \
608 patterns which pulsate, rotate, and turn inside out. Another display \
609 mode uses these shapes to lay down a field of colors, which are then \
610 cycled. The motion is very organic. Written by Jamie Zawinski.",
611 "*hacks.munch.documentation: \\n\
618 As reported by HAKMEM, in 1962, Jackson Wright wrote the above PDP-1 \
619 code. That code still lives on in this screenhack, some 35 years \
620 later. The number of lines of enclosing code has increased \
621 substantially, however. This version is by Tim Showalter.",
622 "*hacks.fadeplot.name: FadePlot",
623 "*hacks.fadeplot.documentation: \
624 Draws what looks like a waving ribbon following a sinusoidal path. \
625 Written by Bas van Gaalen and Charles Vidal.",
626 "*hacks.coral.documentation: \
627 Simulates coral growth, albeit somewhat slowly. This image doesn't \
628 really do it justice. Written by Frederick Roeber.",
629 "*hacks.mountain.documentation: \
630 Generates random 3d plots that look vaguely mountainous. Written by \
632 "*hacks.triangle.documentation: \
633 Generates random mountain ranges using iterative subdivision of \
634 triangles. Written by Tobias Gloth.",
635 "*hacks.worm.documentation: \
636 An ancient xlock hack that draws multicolored worms that crawl around \
637 the screen. Written by Brad Taylor, Dave Lemke, Boris Putanec, and \
639 "*hacks.rotor.documentation: \
640 Another ancient xlock demo, this one by Tom Lawrence. It draws a \
641 line segment moving along a complex spiraling curve. I tweaked this \
642 to generate curvier lines, but still frames of it don't look like \
644 "*hacks.ant.documentation: \
645 A cellular automaton that is really a two-dimensional Turing machine: \
646 as the heads (``ants'') walk along the screen, they change pixel \
647 values in their path. Then, as they pass over changed pixels, their \
648 behavior is influenced. Written by David Bagley.",
649 "*hacks.demon.documentation: \
650 A cellular automaton that starts with a random field, and organizes \
651 it into stripes and spirals. Written by David Bagley.",
652 "*hacks.loop.documentation: \
653 This one produces loop-shaped colonies that spawn, age, and \
654 eventually die. Written by David Bagley.",
655 "*hacks.vines.documentation: \
656 This one generates a continuous sequence of small, curvy geometric \
657 patterns. It scatters them around your screen until it fills up, \
658 then it clears the screen and starts over. Written by Tracy Camp and \
660 "*hacks.kaleidescope.documentation: \
661 Another clone of an ancient meme, consisting largely of frenetic \
662 rotational motion of colored lines. This one is by Ron Tapia. The \
663 motion is nice, but I think it needs more solids, or perhaps just \
664 brighter colors. More variations in the rotational speed might help, \
666 "*hacks.xjack.documentation: \
667 This program behaves schizophrenically and makes a lot of typos. \
668 Written by Jamie Zawinski. If you haven't seen Stanley Kubrick's \
669 masterpiece, ``The Shining,'' you won't get it. Those who have \
670 describe this hack as ``inspired.''",
671 "*hacks.xlyap.documentation: \
672 This generates pretty fractal pictures by doing funky math involving \
673 the ``Lyapunov exponent.'' It has a cool interactive mode, too. \
674 Written by Ron Record.",
675 "*hacks.cynosure.documentation: \
676 A hack similar to `greynetic', but less frenetic. The first \
677 implementation was by Stephen Linhart; then Ozymandias G. Desiderata \
678 wrote a Java applet clone. That clone was discovered by Jamie \
679 Zawinski, and ported to C for inclusion here.",
680 "*hacks.flow.documentation: \
681 Another series of strange attractors: a flowing series of points, \
682 making strange rotational shapes. Written by Jeff Butterworth.",
683 "*hacks.epicycle.documentation: \
684 This program draws the path traced out by a point on the edge of a \
685 circle. That circle rotates around a point on the rim of another \
686 circle, and so on, several times. These were the basis for the \
687 pre-heliocentric model of planetary motion. Written by James \
689 "*hacks.interference.documentation: \
690 Another color-field hack, this one works by computing decaying \
691 sinusoidal waves, and allowing them to interfere with each other as \
692 their origins move. Written by Hannu Mallat.",
693 "*hacks.truchet.documentation: \
694 This draws line- and arc-based Truchet patterns that tile the screen. \
695 Written by Adrian Likins.",
696 "*hacks.bsod.name: BSOD",
697 "*hacks.bsod.documentation: \
698 BSOD stands for ``Blue Screen of Death.'' The finest in personal \
699 computer emulation, this hack simulates popular screen savers from a \
700 number of less robust operating systems. Written by Jamie Zawinski.",
701 "*hacks.crystal.documentation: \
702 Moving polygons, similar to a kaleidescope (more like a kaleidescope \
703 than the hack called `kaleid,' actually.) This one by Jouk Jansen.",
704 "*hacks.discrete.documentation: \
705 More ``discrete map'' systems, including new variants of Hopalong and \
706 Julia, and a few others. Written by Tim Auckland.",
707 "*hacks.kumppa.documentation: \
708 Spiraling, spinning, and very, very fast splashes of color rush \
709 toward the screen. Written by Teemu Suutari.",
710 "*hacks.rd-bomb.name: RD-Bomb",
711 "*hacks.rd-bomb.documentation: \
712 Another variation of the `Bomb' program by Scott Draves. This draws \
713 a grid of growing square-like shapes that, once they overtake each \
714 other, react in unpredictable ways. ``RD'' stands for \
715 reaction-diffusion.",
716 "*hacks.sonar.documentation: \
717 This program draws a simulation of a sonar screen. Written by \
718 default, it displays a random assortment of ``bogies'' on the screen, \
719 but if compiled properly, it can ping (pun intended) your local \
720 network, and actually plot the proximity of the other hosts on your \
721 network to you. It would be easy to make it monitor other sources of \
722 data, too. (Processes? Active network connections? CPU usage per \
723 user?) Written by Stephen Martin.",
724 "*hacks.t3d.name: T3D",
725 "*hacks.t3d.documentation: \
726 This draws a working analog clock composed of floating, throbbing \
727 bubbles. Written by Bernd Paysan.",
728 "*hacks.penetrate.documentation: \
729 This hack simulates the classic arcade game Missile Command. Written \
731 "*hacks.deluxe.documentation: \
732 This draws a pulsing sequence of stars, circles, and lines. It would \
733 look better if it was faster, but as far as I can tell, there is no \
734 way to make this be both: fast, and flicker-free. Yet another reason \
735 X sucks. Written by Jamie Zawinski.",
736 "*hacks.compass.documentation: \
737 This draws a compass, with all elements spinning about randomly, for \
738 that ``lost and nauseous'' feeling. Written by Jamie Zawinski.",
739 "*hacks.squiral.documentation: \
740 Draws a set of interacting, square-spiral-producing automata. The \
741 spirals grow outward until they hit something, then they go around \
742 it. Written by Jeff Epler.",
743 "*hacks.xflame.documentation: \
744 Draws a simulation of pulsing fire. It can also take an arbitrary \
745 image and set it on fire too. Written by Carsten Haitzler, hacked on \
747 "*hacks.wander.documentation: \
748 Draws a colorful random-walk, in various forms. Written by Rick \
750 "*hacks.critical.documentation: \
751 Draws a system of self-organizing lines. It starts out as random \
752 squiggles, but after a few iterations, order begins to appear. \
753 Written by Martin Pool.",
754 "*hacks.phosphor.documentation: \
755 Draws a simulation of an old terminal, with large pixels and \
756 long-sustain phosphor. It can run any program as a source of the text \
757 it displays. Written by Jamie Zawinski.",
758 "*hacks.xmatrix.documentation: \
759 A rendition of the text scrolls seen in the movie ``The Matrix.'' \
760 Written by Jamie Zawinski.",
761 "*hacks.petri.documentation: \
762 This simulates colonies of mold growing in a petri dish. Growing \
763 colored circles overlap and leave spiral interference in their wake. \
764 Written by Dan Bornstein.",
765 "*hacks.shadebobs.name: ShadeBobs",
766 "*hacks.shadebobs.documentation: \
767 This draws smoothly-shaded oscilating oval patterns, that look \
768 something like vapor trails or neon tubes. Written by Shane Smit.",
769 "*hacks.ccurve.name: C Curve",
770 "*hacks.ccurve.documentation: \
771 Generates self-similar linear fractals, including the classic ``C \
772 Curve.'' Written by Rick Campbell.",
773 "*hacks.blaster.documentation: \
774 Draws a simulation of flying space-combat robots (cleverly disguised \
775 as colored circles) doing battle in front of a moving star field. \
776 Written by Jonathan Lin.",
777 "*hacks.bumps.documentation: \
778 A bit like `Spotlight', except that instead of merely exposing part \
779 of your desktop, it creates a bump map from it. Basically, it \
780 3D-izes a roaming section of your desktop, based on color intensity. \
781 Written by Shane Smit.",
782 "*hacks.webcollage.name: WebCollage",
783 "*hacks.webcollage.documentation: \
784 This program makes collages out of random images pulled off of the \
785 World Wide Web. It finds these images by doing random web searches, \
786 and then extracting images from the returned pages. It can also be \
787 set up to filter the images through the `VidWhacker' program, above, \
788 which looks really great. \
790 (Note that most of the images it finds are text, and not pictures. \
791 This is because most of the web is pictures of text. Which is pretty \
792 sad.) Written by Jamie Zawinski.",
793 "*hacks.vidwhacker.name: VidWhacker",
794 "*hacks.vidwhacker.documentation: \
795 This is actually just a shell script that grabs a frame of video from \
796 the system's video input, and then uses some PBM filters (chosen at \
797 random) to manipulate and recombine the video frame in various ways \
798 (edge detection, subtracting the image from a rotated version of \
799 itself, etc.) Then it displays that image for a few seconds, and \
800 does it again. This works really well if you just feed broadcast \
801 television into it. \
803 Currently, the three lines of the script that actually grab the \
804 source picture are SGI specific, but it should be trivial to adapt it \
805 to work on other systems that can grab video (please send me the \
806 changes if you do this...)",
807 "*hacks.rocks.documentation: \
808 This draws an animation of flight through an asteroid field, with \
809 changes in rotation and direction. It can also display 3D \
810 separations for red/blue glasses! Mostly written by Jamie Zawinski.",
811 "*hacks.bubbles.documentation: \
812 This simulates the kind of bubble formation that happens when water \
813 boils:small bubbles appear, and as they get closer to each other, \
814 they combine to form larger bubbles, which eventually pop. Written \
816 "*hacks.gears.documentation: \
817 This draws a set of turning, interlocking gears, rotating in three \
818 dimensions. Another GL hack, by Danny Sung, Brian Paul, and Ed \
820 "*hacks.superquadrics.documentation: \
821 Ed Mackey reports that he wrote the first version of this program in \
822 BASIC on a Commodore 64 in 1987, as a 320x200 black and white \
823 wireframe. Now it is GL and has specular reflections.",
824 "*hacks.morph3d.name: Morph3D",
825 "*hacks.morph3d.documentation: \
826 Another 3d shape-changing GL hack, by Marcelo Vianna. It has the \
827 same shiny-plastic feel as Superquadrics, as many computer-generated \
829 "*hacks.cage.documentation: \
830 This draws Escher's ``Impossible Cage,'' a 3d analog of a moebius \
831 strip, and rotates it in three dimensions. Written by Marcelo \
833 "*hacks.moebius.documentation: \
834 Another M. C. Escher hack by Marcelo Vianna, this one draws \
835 ``Moebius Strip II,'' a GL image of ants walking along the surface of \
837 "*hacks.stairs.documentation: \
838 by Marcelo Vianna's third Escher GL hack, this one draws an \
839 ``infinite'' staircase.",
840 "*hacks.pipes.documentation: \
841 If you've ever been in the same room with a Windows NT machine, \
842 you've probably seen this GL hack. This version is by Marcelo \
844 "*hacks.sproingies.documentation: \
845 Q-Bert meets Marble Madness! Written by Ed Mackey.",
846 "*hacks.rubik.documentation: \
847 Draws a Rubik's Cube that rotates in three dimensions and repeatedly \
848 shuffles and solves itself. Another fine GL hack by Marcelo Vianna.",
849 "*hacks.atlantis.documentation: \
850 This is xfishtank writ large: a GL animation of a number of sharks, \
851 dolphins, and whales. The swimming motions are great. Originally \
852 written by Mark Kilgard.",
853 "*hacks.lament.documentation: \
854 Animates a simulation of Lemarchand's Box, repeatedly solving itself. \
855 Requires OpenGL, and a machine with fast hardware support for texture \
856 maps. Warning: occasionally opens doors. Written by Jamie Zawinski.",
857 "*hacks.bubble3d.name: Bubble3D",
858 "*hacks.bubble3d.documentation: \
859 Draws a stream of rising, undulating 3D bubbles, rising toward the \
860 top of the screen, with nice specular reflections. Written by Richard \
862 "*hacks.glplanet.name: GLPlanet",
863 "*hacks.glplanet.documentation: \
864 Draws a planet bouncing around in space. Written by David Konerding. \
865 The built-in image is a map of the earth (extracted from `xearth'), \
866 but you can wrap any texture around the sphere, e.g., the planetary \
867 textures that come with `ssystem'.",
868 "*hacks.pulsar.documentation: \
869 Draws some intersecting planes, making use of alpha blending, fog, \
870 textures, and mipmaps, plus a ``frames per second'' meter so that you \
871 can tell how fast your graphics card is... Requires OpenGL. Written \
872 by David Konerding.",
873 "*hacks.extrusion.documentation: \
874 Draws various rotating extruded shapes that twist around, lengthen, \
875 and turn inside out. Created by David Konerding from the samples \
876 that come with the GL Extrusion library by Linas Vepstas.",
877 "*hacks.sierpinski3d.name: Sierpinski3D",
878 "*hacks.sierpinski3d.documentation: \
879 This draws the three-dimensional variant of the recursive Sierpinski \
880 triangle fractal, using GL. Written by Tim Robinson.",
881 "*hacks.ripples.documentation: \
882 This draws rippling interference patterns like splashing water. \
883 With the -water option, it manipulates your desktop image to look \
884 like something is dripping into it. Written by Tom Hammersley.",
885 "*hacks.xdaliclock.name: XDaliClock",
886 "*hacks.xdaliclock.documentation: \
887 XDaliClock draws a large digital clock, the numbers of which change by \
888 ``melting'' into their new shapes. Written by Jamie Zawinski.",
889 "*hacks.xearth.documentation: \
890 XEarth draws an image of the Earth, as seen from your favorite vantage \
891 point in space, correctly shaded for the current position of the Sun. \
892 Written by Kirk Johnson.",
893 "*hacks.ssystem.name: SSystem",
894 "*hacks.ssystem.documentation: \
895 SSystem is a GL Solar System simulator. It simulates flybys of Sun, \
896 the nine planets and a few major satellites, with four camera modes. \
897 Written by Raul Alonso.",
898 "*hacks.xmountains.documentation: \
899 XMountains generates realistic-looking fractal terrains of snow-capped \
900 mountains near water, with either a top view or a side view. \
901 Written by Stephen Booth.",