Newsgroups: comp.theory.cell-automata, comp.windows.news, comp.sys.sun.apps From: hopk...@turing.ac.uk (Don Hopkins) - Find messages by this author Date: 26 Jul 92 06:56:12 GMT Local: Sat, Jul 25 1992 11:56 pm Subject: HyperLook Cellular Automata Machine for OpenWindows V3 available for ftp Reply to Author | Forward | Print | Individual Message | Show original | Report Abuse I've written a recreational CAM-6 simulator (Tofoli & Margolis's Cellular Automata Machine) and ported it to HyperLook (the user interface development system I'm working on at Turing). It displays animated cellular automata that you can edit in real time with the mouse! And it comes with a free Lava Lamp! The Cellular Automata Machine simulator (a SPARC binary with a bunch of PostScript and data files) and the HyperLook runtime system are now available for anonymous ftp! HyperLook and the CAM simulator run under OpenWindows Version 3 on color SPARC workstations. They're available for anonymous ftp from turing.com, in the file "pub/CAM.tar.Z", or ftp.uu.net, in the file "packages/NeWS/CAM.tar.Z". You will also need to retrieve the HyperLook runtime environment, from the same directory, with the name "HyperLook1.5-runtime.tar.Z". There are several text and PostScript files explaining HyperLook, and other HyperLook demos and applications (including SimCity, which I've also ported to HyperLook). Install and run HyperLook (set your $HLHOME enviornment variable), uncompress and un-tar CAM.tar.Z into a directory, go there, and type "cam". Press the "Help" key at the buttons and graphics to learn how to work the user interface. Here are some highlights of my Cellular Automata Machine simulator: The user interface is a HyperLook stack (kind of like PostScript HyperCard for Unix). The simulator is written in C, and uses a look-up table in the same format as the CAM-6. The simulator implements several different neighborhoods, and several favorite hard wired rules. The rules (that aren't hard wired in C) are specified in Forth (I use wmb's SPARC Forth, and have written some code that lets me define rules in the same language as used in T&M's "Cellular Automata Machines"). Forth compiles the rules and writes out lookup tables that are read by the simulator. The simulator animates on the screen very quickly by using shared memory. There's a button to tile the screen root background with the current pattern, which is worth its weight in LSD! You can draw on the cells with the mouse as they animate! It comes with a whole bunch of interesting rules. Each rule has a brief (if not cryptic) description, and a list of pre-defined initial configurations that work will with the rule. You can copy the cells onto the clipboard and paste them into the drawing editor (included with HyperLook) to edit or print them. You can also paste structured PostScript drawings from the drawing editor into the cells! (My favorite trick is pasting usenix facesaver images into hglass.) One of the neatest built-in rules is Rudy Rucker's "Eco" rule (maybe he called it something different, but I think he came up with the idea). It runs "Anneal" in one plane, and either "AntiLife" or "Brian's Brain" in the other, depending on the "Anneal" bit. It uses AntiLife (the bitwise complement of Life) instead of regular Life, because then the interaction with Brain's Brain along the annealing edges is, shall I understate, somewhat more intense! (not to mention the 5 bits of echo!) This rule looks really cool when started with a symetric configuration! Then you can switch back and forth between symetry-preserving rules, and generate all kinds of interesting screen backgrounds! Eco is a great rule to display in the Lava Lamp view! (A wee simulated lava lamp desk accessory that displayes the automata in an appropriately shaped window.) Another rule that looks good in the Lava Lamp is "Heat", which is eight neighbor heat diffusion: sum the eight neighbors (plus a global heat change constant) and divide by eight (by shifting). The global heat change constant causes the heat of the entire system to rise or fall, and when a cell goes below 0 or above 255, it wraps around to the opposite heat, causing chaotic psychodellic churning and boiling! A modification I made to this rule, "DHeat", takes the remainder after dividing by 8, and adds it into the next sum (i.e. just keeps the low 3 bits that would be thrown away around for the next sum), resulting in a *much* more accurate heat diffusion simulation, with a wonderful dithered appearance. The dithered heat diffusion (which doesn't preserve symetry) makes *really* keen screen backgrounds! -Don