HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
SimHacker
CAM6
JavaScript2014–2026
SimHacker / CAM6

CAM6

Cellular Automata Machine (CAM6) Simulator

2Distinct people
31Mentions
1Explicit recommenders
35GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Cellular Automata Machine (CAM6) Simulator

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

Wow! If you ever get tired of it I will buy it from you. It's impossible to find copies now, and they make great wedding or graduation presents. ;) Just joking, I know you…

DonHopkins used a recommendation phrase. 4 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 9:02:44 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year31 dated mentions

Observed mentions: 2014-11-11 18:52:34 UTC to 2026-07-20 10:01:23 UTC.

02462014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC101
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC101
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC202
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC606
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC202
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC505
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC505
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC202
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC202
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC303

What Hacker News says

3 sources
DonHopkins·Jul 20, 2026Recommendation phrase
Wow! If you ever get tired of it I will buy it from you. It's impossible to find copies now, and they make great wedding or graduation presents. ;) Just joking, I know you would never part with it! If you were sneaky and transgressive like Aaron Schwartz, you might notice the url of the pdf file is shown in the browser bar in the video, and type in the url to steal the book: https://donhopkins.com/home/cam-book.pdf <= DO NOT CLICK THIS URL! IT IS FOR EDUCATIONAL RHETORICAL PURPOSES ONLY. Fortunately Norman Margolis has generously given me permission to distribute that pdf file (although I don't know what MIT Press would think about it, but last time I was at MIT I visited their store and they didn't have any copies, so if they would only get their shit together and publish the fucking book somewhere I could buy it, I would already own a p
Read the rest
ile of them to hand out to tricker-treaters and religious zealots who knock on my door, as brain candy to set them on a better path). He's also given me permission to make interactive versions of any of those chapters, and he said that his favorites were the physical simulations, because they have something to say about nature and physics. That's definitely on my TODO list! I'd really like to do a "KidPix" kind of cellular automata playground, like Rudy Rucker and John Walker did with Autodesk CALab. There's some great stuff from that online, including a web based version of CALab and a fieldbook of many rules in the manual: https://www.rudyrucker.com/blog/2023/12/07/the-roaring-twent... https://scanalyst.fourmilab.ch/t/rudy-rucker-and-john-walker... https://www.fourmilab.ch/cellab/ https://www.fourmilab.ch/cellab/manual/ This is one of my favorites, ECOLIBRA, which I call ECO, and used for SimCity DRM as well as demonstrated in those videos. Rudy came up with it, as an excercise in composing multiple CA rules by layering and multiplexing: there is one layer of "ANNEAL" that defines whether each cell is water or land, and in land it runs "LIFE" and in water it runs "BRIAN'S BRAIN" (named after Brian Silverman, who did not actually name it after his own brain, that was somebody else attributing it to that part of his anatomy). https://www.fourmilab.ch/cellab/manual/rules.html#EcoLiBra ANNEAL (Vote rule + tie breaker flip): https://youtu.be/lyZUzakG3bE?t=534 LIFE: https://youtu.be/lyZUzakG3bE?t=572 BRAIN: https://youtu.be/lyZUzakG3bE?t=588 ECOLIBRA: https://youtu.be/lyZUzakG3bE?t=612 >This rule is a cross between Life and Brain. The basic idea is that the cells are divided between dark “sea” cells and light “land” cells. We run Brain in the sea, and on land we run not Life but AntiLife. All the land cells are normally firing cells, and the presence of an active AntiLife cell is signaled by having a land cell which is not firing. Full details on EcoLiBra are in the Cellular Automata Theory chapter. >The name EcoLiBra suggests 1) an ecology of Life and Brain, 2) a balanced situation (equilibrium), and 3) the human intestinal bacteria Escherichia coli, known as E. coli for short. The third connection is perhaps a bit unsavory, but remember that E. coli cells are in fact the favorite “guinea pigs” for present day gene splicing experiments. As one of the goals of CelLab is to promote the development of artificial life, the designer gene connection is entirely appropriate. I've given EcoLiBra a nice, symmetric start pattern, but it also does fine if you use the Bit Plane Editor to randomize all bit planes. The "ECO" version in my simulator actually runs "DEATH" aka "ANTI-LIFE", the one's complement of "LIFE", so that the cells of LIFE and BRAIN along the shores stimulate each other more and spawn lots of life onto land and brain into the sea, due to their "foamier" interactions along the coast. I also took Rudy's idea of layering CA rules another 5 steps and ran a dithered heat diffusion in the upper 5 leftover high bits (and echo the 1 bit of life's history into the next higher bits so life and brain are both the same 2 bits of depth + 1 bit of anneal + 5 bits of heat), so the heat diffusion picks up "heat" that the life and brain particles emit, and they leave trippy trails and cause "global warming". Using CA to tell a metaphorical narrative of the organisms polluting their own environment. https://github.com/SimHacker/CAM6/blob/master/javascript/CAM... (Yes it's unnecessariy complicated code, and don't get me started about why it rotates the scan order around every 4 frames -- suffice it to say it makes it look better, by canceling out the directional heat diffusion dithering artifacts from the serial scan order). More links here, and if you only look at one, be sure to check out Rudy's 1970's late night television style commercial with overdubbed 800 number. https://news.ycombinator.com/item?id=42806736 There's so much about it that I love, but my favorite part of Rudy's CALab demo is the "Office of the Future" and 1-800 number at the end: https://youtu.be/lyZUzakG3bE?t=2067
In Cagire: Live Coding in Forth
Toffoli and Margolis's CAM-6 cellular automata machine board for the IBM-PC was programmed in FORTH. I made a simulator, and this video shows some of the original FORTH code that I saved, as well as my own compatible FORTH CA rule computer that le me run the rules from the book, which produced lookup table for the hardware, which the simulator is compatible with. I've since rewritten it in JavaScript. It's not live coding, but it has a live performance user interface (quite weird and hard to figure out, especially if you haven't read the book, but I demonstrate it in the video). CAM6 Demo https://www.youtube.com/watch?v=LyLMHxRNuck Original FORTH code that drove the actual CAM-6 board: tomt-cam-forth-scr.txt: https://donhopkins.com/home/code/tomt-cam-forth-scr.txt tomt-users-forth-scr.txt: https://donhopkins.com/home/code/tomt-users-forth
Read the rest
-scr.txt My compatible CA compiler and glue to the simulator written in C: cam.f.txt: https://donhopkins.com/home/code/cam.f.txt compile.f.txt: https://donhopkins.com/home/code/compile.f.txt An old version of the simulator written C, before I rewrote it in JavaScript: https://github.com/SimHacker/micropolis/tree/master/Micropol... The JavaScript CAM6 simulator: CAM6.js: https://github.com/SimHacker/CAM6/blob/master/javascript/CAM...
In Cagire: Live Coding in Forth
Cellular Automata Machines: A New Environment for Modeling, by Tommaso Toffoli and Norman Margolus https://donhopkins.com/home/cam-book.pdf CAM6 Demo: https://www.youtube.com/watch?v=LyLMHxRNuck Demo of Don Hopkins' CAM6 Cellular Automata Machine simulator. Live App: https://donhopkins.com/home/CAM6 Github Repo: https://github.com/SimHacker/CAM6 Javacript Source Code: 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
Read the rest
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. // https://mitpress.mit.edu/9780262526319/cellular-automata-machines/
In Tofolli gates are all you need

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.