3 ms·
I really wanted one of those! I held one in my hands one time when I was visiting the MIT-AI Lab -- it was Norman Margolus's, who made the CAM-6 with Tommaso To
by DonHopkins 3y ago
I really wanted one of those! I held one in my hands one time when I was visiting the MIT-AI Lab -- it was Norman Margolus's, who made the CAM-6 with Tommaso Toffoli, which was programmed in Forth. He wouldn't let me have it, but he let my friend and I borrow a CAM-6 for a weekend science fiction convention to trip out on.
https://news.ycombinator.com/item?id=8860786 https://news.ycombinator.com/item?id=8860786
https://news.ycombinator.com/item?id=14469113 https://news.ycombinator.com/item?id=14469113
https://news.ycombinator.com/item?id=34561910 https://news.ycombinator.com/item?id=34561910
Rudy Rucker writes about his CAM-6 in the CelLab manual:
http://www.fourmilab.ch/cellab/manual/chap5.html http://www.fourmilab.ch/cellab/manual/chap5.html
Computer science is still so new that many of the people at the cutting edge have come from other fields. Though Toffoli holds degrees in physics and computer science, Bennett's Ph.D. is in physical chemistry. And twenty-nine year old Margolus is still a graduate student in physics, his dissertation delayed by the work of inventing, with Toffoli, the CAM-6 Cellular Automaton Machine.
After watching the CAM in operation at Margolus's office, I am sure the thing will be a hit. Just as the Moog synthesizer changed the sound of music, cellular automata will change the look of video.
I tell this to Toffoli and Margolus, and they look unconcerned. What they care most deeply about is science, about Edward Fredkin's vision of explaining the world in terms of cellular automata and information mechanics. Margolus talks about computer hackers, and how a successful program is called “a good hack.” As the unbelievably bizarre cellular automata images flash by on his screen, Margolus leans back in his chair and smiles slyly. And then he tells me his conception of the world we live in.
“The universe is a good hack.”
[...]
Margolus and Toffoli's CAM-6 board was finally coming into production around then, and I got the Department to order one. The company making the boards was Systems Concepts of San Francisco; I think they cost $1500. We put our order in, and I started phoning Systems Concepts up and asking them when I was going to get my board. By then I'd gotten a copy of Margolus and Toffoli's book, Cellular Automata Machines, and I was itching to start playing with the board. And still it didn't come. Finally I told System Concepts that SJSU was going to have to cancel the purchase order. The next week they sent the board. By now it was August, 1987.
The packaging of the board was kind of incredible. It came naked, all by itself, in a plastic bag in a small box of styrofoam peanuts. No cables, no software, no documentation. Just a three inch by twelve inch rectangle of plastic—actually two rectangles one on top of the other—completely covered with computer chips. There were two sockets at one end. I called Systems Concepts again, and they sent me a few pages of documentation. You were supposed to put a cable running your graphics card's output into the CAM-6 board, and then plug your monitor cable into the CAM-6's other socket. No, Systems Concepts didn't have any cables, they were waiting for a special kind of cable from Asia. So Steve Ware, one of the SJSU Math&CS Department techs, made me a cable. All I needed then was the software to drive the board, and as soon as I phoned Toffoli he sent me a copy.
Starting to write programs for the CAM-6 took a little bit of time because the language it uses is Forth. This is an offbeat computer language that uses reverse Polish notation. Once you get used to it, Forth is very clean and nice, but it makes you worry about things you shouldn't really have to worry about. But, hey, if I needed to know Forth to see cellular automata, then by God I'd know Forth. I picked it up fast and spent the next four or five months hacking the CAM-6.
The big turning point came in October, when I was invited to Hackers 3.0, the 1987 edition of the great annual Hackers' conference held at a camp near Saratoga, CA. I got invited thanks to James Blinn, a graphics wizard who also happens to be a fan of my science fiction books. As a relative novice to computing, I felt a little diffident showing up at Hackers, but everyone there was really nice. It was like, “Come on in! The more the merrier! We're having fun, yeeeeee-haw!”
I brought my AT along with the CAM-6 in it, and did demos all night long. People were blown away by the images, though not too many of them sounded like they were ready to a) cough up $1500, b) beg Systems Concepts for delivery, and c) learn Forth in order to use a CAM-6 themselves. A bunch of the hackers made me take the board out of my computer and let them look at it. Not knowing too much about hardware, I'd imagined all along that the CAM-6 had some special processors on it. But the hackers informed me that all it really had was a few latches and a lot of fast RAM memory chips.
- kragen 3y agodid you ever try the cytocomputer (i think your text means that rucker tried the cam-6, not that you did, but i'm not entirely sure)
- DonHopkins 3y agoNo I haven't heard of that -- I'll check it out! Thanks for the juicy tip. I played with the CAM-6 in Norman Margolus's office at MIT, and a friend of mine who worked for him brought one to a science fiction convention where we tripped out on it all night in a hotel room! I saved a copy of the floppies full of Forth code. (linked above)
- kragen 3y agoit might be a little hard to check it out 45 years later but i bet chip morningstar would be happy to tell you about it
- jacquesm 3y agoNeat! Did you know that Rucker is also an SF writer who wrote SF books about cellular automata? If not: check out 'the hacker and the ants'.
- DonHopkins 3y agoI love his work, both SF and math and CA! I met Rudy at the Hackers conference decades ago and gave him a demo of an early version of my CAM6 simulator running on my SparcStation 2, and he showed me Cellab that he and John Walker developed at Autodesk, and we've been exchanging ideas about CA since then. A few years ago he pointed out a very subtle bug in my CAM6 heat diffusion code that I fixed. Flickercladding: https://www.fourmilab.ch/cellab/manual/rules.html#Flick https://www.fourmilab.ch/cellab/manual/rules.html#Flick >Flick is named after “flickercladding,” the CA skin which covers the robots in my books Software and Wetware. In Flick, we see an AutoShade®d office whose rug is made of flickercladding that runs the TimeTun rule. You can tell which parts of the picture are “rug” because these cells have their bit #7 set to 1. Flickercladding Interior Decoration Conceived by Rudy Rucker Drawn by Gary Wells Modeled with AutoCAD Rendered by AutoShade Perpetrated by Kelvin R. Throop. In this rule, we only change the cells whose high bits are on. These cells are updated according to the TimeTun rule. http://www.technovelgy.com/ct/content.asp?Bnum=299 http://www.technovelgy.com/ct/content.asp?Bnum=299 >Some looked humanoid, some looked like spiders, some looked like snakes ...All were covered with flickercladding, a microwired imipolex compound that could absorb and emit light. https://en.wikipedia.org/wiki/Wetware_(novel) https://en.wikipedia.org/wiki/Wetware_(novel) >The plot goes disastrously awry, and a human corporation called ISDN retaliates against the boppers by infecting them with a genetically modified organism called chipmold. The artificial disease succeeds in killing off the boppers, but when it infects the boppers' outer coating, a kind of smart plastic known as flickercladding, it creates a new race of intelligent symbiotes known as moldies — thus fulfilling Berenice's dream of an organic/synthetic hybrid. https://news.ycombinator.com/item?id=15546769 https://news.ycombinator.com/item?id=15546769 DonHopkins on Oct 25, 2017 | parent | context | favorite | on: Boustrophedon The Floyd Steinberg error diffusion dithering algorithm can use a boustrophedonous scan order to eliminate the diagonal geometric artifacts you get by scanning each row the same direction. https://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dithering https://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dither... "In some implementations, the horizontal direction of scan alternates between lines; this is called "serpentine scanning" or boustrophedon transform dithering." I implemented some eight bit cellular automata heat diffusion rules with error diffusion, which accumulated an unfortunate drift up and to the right because of the scan order. Rudy Rucker pointed out the problem: https://web.archive.org/web/20180909074032/http://donhopkins.com/mediawiki/index.php/CAM6_Simulator https://web.archive.org/web/20180909074032/http://donhopkins... "Rudy Rucker: I feel like you might have some kind of bug in your update code, an off-by-one thing or a problem with the buffer flipping. My reason is that I see persistent upward drift in the action, like if I mouse drag a blob it generally moves up. Also the patterns appearing in the blob aren't uniform. I mean...this IS supposed to be the 2D Rug rule, isn't it?" So instead of scanning back and forth boustrophedoniously (which wouldn't eliminate the vertical drift, just the horizontal drift), I rotated the direction of scanning 90 degrees each frame ("spinning scan") to spread the drift out evenly in all directions over time. https://github.com/SimHacker/CAM6/blob/master/javascript/CAM6.js https://github.com/SimHacker/CAM6/blob/master/javascript/CAM... // Rotate the direction of scanning 90 degrees every step, // to cancel out the dithering artifacts that would cause the // heat to drift up and to the right. That totally canceled out the unwanted drifting and geometric dithering artifacts! That made it possible to cultivate much more subtle (or not-so-subtle) effects, like dynamically switching per-cell between different anisotropic convolution kernels (see the "Twistier Marble" rule for an extreme example). http://donhopkins.com/home/CAM6 http://donhopkins.com/home/CAM6 CAM6 Demo: https://www.youtube.com/watch?v=LyLMHxRNuck https://www.youtube.com/watch?v=LyLMHxRNuck Demo of Don Hopkins' CAM6 Cellular Automata Machine simulator. Live App: https://donhopkins.com/home/CAM6 https://donhopkins.com/home/CAM6 Github Repo: https://github.com/SimHacker/CAM6 https://github.com/SimHacker/CAM6 Javacript Source Code: https://github.com/SimHacker/CAM6/blob/master/javascript/CAM6.js https://github.com/SimHacker/CAM6/blob/master/javascript/CAM... Comments from the code: // This code originally started life as a CAM6 simulator written in C // and Forth, based on the original CAM6 hardware and compatible with // the brilliant Forth software developed by Toffoli and Margolus. But // then it took on a life of its own (not to mention a lot of other CA // rules), and evolved into supporting many other cellular automata // rules and image processing effects. Eventually it was translated to // C++ and Python, and then more recently it has finally been // rewritten from the ground up in JavaScript. // The CAM6 hardware and Forth software for defining rules and // orchestrating simulations is thoroughly described in this wonderful // book by Tommaso Toffoli and Norman Margolus of MIT. // Cellular Automata Machines: A New Environment for Modeling // Published April 1987 by MIT Press. ISBN: 9780262200608. // http://mitpress.mit.edu/9780262526319/