A Lisp Interpreter Implemented in Conway's Game of Life
github.com
github.com
So this is rather impressive.
A lower bar might be being robust to individual spaceships/gliders coming in from outside. But even there a collection of gliders is probably going to break through.
Is such a structure possible? If so, how short can its recovery time be?
How good can the resolution of how specifically it detects the locations of the gliders be?
We know that GoL is Turing complete, and if the field is initialized with random noise, then for any fixed finite pattern, as the board size goes to infinity, the probability that that pattern appears somewhere in the noise approaches 1. (of course, I'm talking about enormous board sizes, possibly with many many more cells than there are protons in the visible universe, not talking about anything resembling practicality.) If intelligence and agency is computable (which, it seems like it should be), "any fixed finite pattern" would include structures which, for some amount of time, before they are destroyed by surrounding noise, would simulate an intelligent agent.
If there are structures which, when surrounded by stuff initialized with noise, has a high probability of being able to withstand this noise, and then proceed to clear out the noise in order to e.g. make copy of itself, or just to grow, then we would expect the fraction of an infinite board containing such patterns (or things derived from them) to grow over time.
But, whether such structures can exist in GoL, in part depends, I think, on whether any large structures can withstand noise (or, having a high chance of withstanding it).
(I am defining "structures" in a way where a structure is allowed to include as part of it a large empty region (of any fixed size) on its periphery. This should assist in withstanding the noise, because it limits what things the core part of the structure could be faced with, to things which can travel a distance)
I wonder if it could actually be a very efficient form of calculation, because cells are almost bits, but seem to possess more power than bits. For instance this Lisp in GoL. Could it run faster than lisps on "bit processors" if it ran on special purpose hardware?
So instead of 64-bit processors we might have "64-cell processors" ?
If the special purpose hardware ran at 1 THz, it would take about 4 quadrillion seconds to get to the same point, which is a bit over 200 million years.
We could think of some kind of version of RAM where each 'cell' would implement this behavior.
Perhaps similar optimizations like HashLife could be developed for such special purpose hardware as well.
Hashlife's data structure is a quad tree embedded in a hash table. Most Hashlife instances only spend a few short moments simulating cellular automata at the "ground level"— the real work involves combining the future of the children of a quad tree node into the future of the node. That might be optimizable, but it feels extremely application-specific.
Edit: shameless, shameless plug: https://rezmason.github.io/wireworld-player/?engine=macrocel...
There could certainly be a dedicated hardware implementation of HashLife. It would not be based on the idea "cells are almost bits", nor would it be faster than a direct CPU implementation of Lisp.
Or is HashLife doing something like "Calculating state N + 100 without having to calculate all states in between?
By the way, with all the passion for Lisp, simple but Turing-complete systems, and programming that I put into this project, I'm very happy that other people have enjoyed it too. Thanks to everyone for checking it out!
It's the most popular and well researched one at this point.
There's definitely tons of other less researched rules that are as interesting.
I've not found a CA that's Turing Complete and as small and easy to understand (which is not to say there isn't one).
* otus lisp is a descendant of owl lisp (https://www.youtube.com/watch?v=utOVF0U7Zd8) with a nice ffi - http://yuriy-chumak.github.io/ol/
Edit: yes I am late to the party.
I have played with Wasp Lisp which is very cool and the Wasp VM. And checkout how it can spawn drone nodes on different machines[1,2]. I think C and Lisp together are amazing. I have been using them for decades, but J and APL entered my life over 8 years ago, and I am hooked! Checkout a rework of the famous APL GoL demo. It's much easier to understand than the original[3]
[1] https://github.com/swdunlop/WaspVM
[2] https://bluishcoder.co.nz/2015/02/19/spawning-windows-comman...
This is seriously cool BTW.
[1]: https://www.drdobbs.com/windows/an-algorithm-for-compressing...
A transistor is a simple piece of electronic, when combined in billions, it supports the incredible information transformation we see today.
The "magnum opus" is typically said to be OK Computer, their 3rd album, 2 after Pablo. While it was certainly a departure, the band generally said they wanted a total artistic change in direction.
Interesting though is the song "Iron Lung" on The Bends, which is a song about "Creep" where they refer to it as, among other things, a "total waste of time".
But other times, a musician feels that although their earlier work may be new and exciting to you, they are finding other things more engaging today and tire of answering questions about the old work with the same rote, trite answers. Over and over again.
For someone constantly seeking fresh ground to cover, this attitude is an asset.
p.s. In this discussion about comedy, Louis CK talks about a tip he got from George Carlin, namely to throw the old material out after a year and start over again, forcing yourself to find new things to say about the Universe.
In the same discussion, Jerry Seinfeld explains that some of his material is ten years old, and he is still finding ways to sharpen and refine it. There is clearly no one right way about this.
I imagine there are a lot of people in this industry who feel that way about some their creations…
This Varlife is simulated using the OTCA metapixel, which was designed to run the game of life inside the game of life, though it is more general and can therefore also be used to simulate VarLife.