29 comments

[ 2.1 ms ] story [ 62.6 ms ] thread
Are there any good resources that build up from no experience in CA to a Universal Constructor?
I was never properly trained in its operation.
I know this reference.
I suspect there aren't. Please write the book while you learn about it, and we can all have it. Thanks!

(I'm a strong believer in writing the books yourself that you really would love, but don't exist.)

If you don't have the time to write whole books yourself, you can just write fictitious reviews and criticisms of books that don't actually exist, touching on all the best parts and ignoring the rest. And nobody will be able to contradict you!

https://en.wikipedia.org/wiki/Stanis%C5%82aw_Lem%27s_fictiti...

>Stanisław Lem's fictitious criticism of nonexistent books

>Stanisław Lem's fictitious criticism of nonexistent books may be found in his following works: in three collections of faux reviews of fictional books: A Perfect Vacuum (Doskonała próżnia, 1971), Provocation (Prowokacja, 1984), and Library of 21st Century (Biblioteka XXI wieku, 1986) translated as One Human Minute, and in Imaginary Magnitude (Wielkość Urojona, 1973), a collection of introductions to nonexistent books.

>While reviewing nonexistent books, a modern form of pseudepigraphy, Stanisław Lem attempted to create different fictional reviewers and authors for each of the books. In his own words: "I tried to imitate various styles – that of a book review, a lecture, a presentation, a speech (of a Nobel Prize laureate) and so on". Some of the reviews are lighthearted, concentrating mostly on the story; others, however, read more like serious, academic reviews. Some of the reviews are parodies, or the books being reviewed are parodies or complete impossibilities, others are quite serious and can be seen almost as drafts for novels that Lem never got around to write. Lem wrote: "With years passing a great impatience grew in me. It would be a hard work to convert ideas into narration, and that was one of the main reasons I went for such cruel abridgements of the books". Lem was not alone in passing through this kind of crisis: examples abound of works planned by literary celebrities, but never completed. Lem also remarked that he was eventually convinced that writing summaries and introductions enabled him to save time on producing things of importance, namely, his modeling experiments, compared to full-blown literary efforts, most of which would have constituted mundane craftsmanship.

[...]

>One Minute

>The reviewed faux book is alleged to be a collection of statistical tables, a compilation that includes everything that happens to human life on the planet within any given 60 second period. Reviewing it, Lem expresses his fascination with this project and points out its inherent flaw. He notes that these tables show "far more statistical evidence of human evil (murders, rapes, starving children) than of human decency". At the same time he remarks that it is impossible to measure "filial or maternal love", or to "gauge the heat of lovers' passions", or to register "those acts of kindness whose authors wished to remain anonymous."

Thank you! Gee, that's such a brilliant idea. I must try it.

If Chesterton's Mr McCabe (from On Mr. McCabe and a Divine Frivolity[0] in Heretics) had never existed, it would make little difference. It's just an excuse to say what he wants to say.

...criticism of the highest kind...treats the work of art simply as a starting-point for a new creation. It does not confine itself...to discovering the real intention of the artist and accepting that as final. And in this it is right, for the meaning of any beautiful created thing is, at least, as much in the soul of him who looks at it, as it was in his soul who wrought it. Nay, it is rather the beholder who lends to the beautiful thing its myriad meanings, and makes it marvellous for us, and sets it in some new relation to the age, so that it becomes a vital portion of our lives, and a symbol of what we pray for, or perhaps of what, having prayed for, we fear that we may receive. – Wilde, The Critic As Artist

[0] http://gutenberg.net.au/ebooks13/1301191h.html#ch16

Edit: I've 'borrowed' A Perfect Vacuum from archive.org, thanks! Also, I've hardly read any Borges, but that Borges fake review of a novel which is identical with Don Quixote but totally different is one of the funniest things I've read.

http://www.coldbacon.com/writing/borges-quixote.html

Download and look at all the examples included with Golly: http://golly.sourceforge.net/

Most amazing topics in CA have an example included, including universal constructors.

The name alone will bring out a bunch of flamers, but Stephen Wolfram wrote an enormous tome on cellular automata. I haven't read it all, and an index search shows it has nothing about the universal constructor specifically, but it should be a substantial introduction. It's available free at:

https://www.wolframscience.com/nks/

Check out Buckley's paper, "Signal crossing solutions in von Neumann self-replicating cellular automata", page 453-503 of the Automata-2008 proceedings.

The Wikipedia article discusses and cites the paper, but the link is broken, so here's a better one:

"Signal crossing solutions in von Neumann self-replicating cellular automata", page 453-503

https://donhopkins.com/home/documents/automata2008reducedsiz...

It has a great nuts-and-bolts explanation of how John von Neumann's 29 state rule and his universal constructor work, with lots of details, theories, and practical advice about the design and working of various "organs", like basic building blocks (specifically signal crossings), reusable components, higher level machines, programming techniques, data representation and coding, and overall architecture.

The paper is about how to construct organs that initialize themselves the first time they come alive, kind of like a C++ constructor, that's only used once in the lifetime of an object.

That's important because you have to construct unexcited devices with the power off (no excited states), using a construction arm kind of like a 3d or ink jet printer head, but 2d and cells, driven by a "tape" of instructions that moves the arm back and forth and draws the required 2d grid of cells.

Factorio players will recognize these tapes of construction instructions as 2D "blueprints" that construction drones use to build patterns of factories and conveyor belts, etc. In Factorio, after your drones have build a blueprint in the unpowered, unsupplied state, you can connect it to the power grid, hook up pipes to deliver fluids, and run conveyor belts in and out of it to deliver resources and products, and it will immediately starts doing its thing. Playing Factorio is uncannily like von Neumann 29 state cellular automata programming, not by coincidence. So it's a great way to get your head around cellular automata programming, gpu programming, parallel programming, queuing systems, and data flow programming in general!

Factorio Tutorial #20 - Bots, part 1 - Construction robots

https://www.youtube.com/watch?v=kLOyk55uI2Y&t=19m32s

Factorio just doesn't have the ability to construct cells by spilling items off the end of conveyor belts, or destroy cells with conveyor belts, either. But maybe there's an extension for that! And John von Neumann's 29 state cellular automata doesn't have swarms of construction drones that build and tear down blueprints in parallel like Factorio does, so there are some differences. But the basic idea of grids of cells with conveyor belts carrying items between factories is the same.

Once you construct an auto-initializing machine, you inject the powered-off copy with a signal, like a reset pulse followed by data, for it to process. And the data can be a program like a series of instructions to control the drawing arm, data to transfer or process, timing signals, or control signals for other machines.

Not all machines need to auto-initialize, but machines that use auto-initialization "code" run it once first to set up all the timers and signals, and then the code cuts itself off and switches to the normal runtime "code" for processing the input signals, using "self modifying code" that cuts the traces to the initialization circuit and draws the traces to conduct the signal into the now-initialized machine itself.

(Self modifying code can destroy an arrow by pointing to it with another "special" kind of arrow, and sending an excited signal to it, then it disappears and cuts off the downstream circuit. And it can draw new arrows at any time, the same way as the construction arm does, b...

David Deutsch, the physicist who proved that quantum computers can be Turing complete, has recently created constructor theory:

http://constructortheory.org/

"Constructor Theory is a new approach to formulating fundamental laws in physics. Instead of describing the world in terms of trajectories, initial conditions and dynamical laws, in constructor theory laws are about which physical transformations are possible and which are impossible, and why. This powerful switch has the potential to bring all sorts of interesting fields, currently regarded as inherently approximative, into fundamental physics. These include the theories of information, knowledge, thermodynamics, and life."

I am not sure what this brings to the table. I read the first paper about information theory from the constructor viewpoint and a constructor just seems to be some function. I am not sure if there is some deep takeaway. Physics people already care about what "transformations" occur on a system? Eg quantum computation is about unitary transformations?

I also feel its like a physicist is trying to recast stuff in a functional perspective without knowing it. For example saying a quantum field theory is a functor : Bord -> Vect, might be something a mathematician would say, but it seems not many physics people would be familiar with this idea.

I think its also interesting they have this flashy website which kind of reminds me of a scam.

I love the intentional or unintentional reference to Trurl and Klapaucius, the constructors in Stanislaw Lem's novel, Cyberiad, who grappled with many philosophical issues like artificial intelligence, robotics, technology, thermodynamics, life, love, romance, poetry, self replication, and the origin of the universe.

https://www.donhopkins.com/home/catalog/lem/Trurl.html

https://www.donhopkins.com/home/catalog/lem/Klapaucius.html

https://en.wikipedia.org/wiki/The_Cyberiad

>Trurl and Klapaucius

>Trurl and Klapaucius are brilliant (robotic) engineers, called "constructors" (because they can construct practically anything at will), capable of almost God-like exploits. For instance, on one occasion Trurl creates an entity capable of extracting accurate information from the random motion of gas particles, which he calls a "Demon of the Second Kind". He describes the "Demon of the First Kind" as a Maxwell's demon. On another, the two constructors re-arrange stars near their home planet in order to advertise.

>The duo are best friends and rivals. When they are not busy constructing revolutionary mechanisms at home, they travel the universe, aiding those in need. As the characters are firmly established as good and righteous, they take no shame in accepting handsome rewards for their services. If rewards were promised and not delivered, the constructors may even severely punish those who deceived them.

[...]

>On another occasion, Trurl and Klapaucius are captured by an interstellar "PHT" pirate. Trurl offers to build a machine capable of turning hydrogen into gold (something he can do manually, which he demonstrates by hand, mixing up protons and putting electrons around). However, the pirate turns out to have a PhD and cares not for the riches, but for knowledge (and in fact points out that gold becomes cheap if it is abundant). Trurl therefore makes a modified Maxwell's demon for him, an entity that looks at moving particles of gas and reads information that is, coincidentally, encoded in their random perturbations. This way, all the information in the universe becomes easily available. The demon prints out this information on a long paper tape, but before the pirate realizes most of the information is completely useless (although strictly factual) he is buried under the endless rolls of tape, ceasing to bother anyone.

von neumann’s original papers mention that his studies on CA were an abstraction due to the limitations of 1940’s technology. His main concern was really automatic replication of real world physical objects.

In this respect, 3D printers offer a partial solution. Totally automated assembly is still being worked on.

Here's some stuff about that I posted in an earlier discussion, and transcribed from his book, "Theory of Self-Reproducing Automata".

His concept of self-reproducing mutating probabilistic quantum mechanical machine evolution is quite fascinating and terrifying at the same time (or outside of time), potentially much more powerful and dangerous than mere physical nanotechnology "gray goo" and universe-infesting self replicating von Neumann probes:

Can Programming Be Liberated from the von Neumann Style? (1977) [pdf] (thocp.net)

https://news.ycombinator.com/item?id=21855249

https://news.ycombinator.com/item?id=21858465

John von Neuman's 29 state cellular automata machine is (ironically) a classical decidedly "non von Neumann architecture".

https://en.wikipedia.org/wiki/Von_Neumann_cellular_automaton

He wrote the book on "Theory of Self-Reproducing Automata":

https://archive.org/details/theoryofselfrepr00vonn_0

He designed a 29 state cellular automata architecture to implement a universal constructor that could reproduce itself (which he worked out on paper, amazingly):

https://en.wikipedia.org/wiki/Von_Neumann_universal_construc...

He actually philosophized about three different kinds of universal constructors at different levels of reality:

First, the purely deterministic and relatively harmless mathematical kind referenced above, an idealized abstract 29 state cellular automata, which could reproduce itself with a Universal Constructor, but was quite brittle, synchronous, and intolerant of errors. These have been digitally implemented in the real world on modern computing machinery, and they make great virtual pets, kind of like digital tribbles, but not as cute and fuzzy.

https://github.com/SimHacker/CAM6/blob/master/javascript/CAM...

Second, the physical mechanical and potentially dangerous kind, which is robust and error tolerant enough to work in the real world (given enough resources), and is now a popular theme in sci-fi: the self reproducing robot swarms called "Von Neumann Probes" on the astronomical scale, or "Gray Goo" on the nanotech scale.

https://en.wikipedia.org/wiki/Self-replicating_spacecraft#Vo...

https://grey-goo.fandom.com/wiki/Von_Neumann_probe

>The von Neumann probe, nicknamed the Goo, was a self-replicating nanomass capable of traversing through keyholes, which are wormholes in space. The probe was named after Hungarian-American scientist John von Neumann, who popularized the idea of self-replicating machines.

Third, the probabilistic quantum mechanical kind, which could mutate and model evolutionary processes, and rip holes in the space-time continuum, which he unfortunately (or fortunately, the the sake of humanity) didn't have time to fully explore before his tragic death.

p. 99 of "Theory of Self-Reproducing Automata":

>Von Neumann had been interested in the applications of probability theory throughout his career; his work on the foundations ...

I would be interested in the simplest form of self-replication, that is, the simplest automata machine, and the simplest initial set of states...

Interestingly, Phi spirals -- seem to construct themselves in nature at many different scales, and without (apparently) running inside of an automata machine of any sort...

I nominate Phi spirals as universal (sans apparent automata machine) constructors...

If someone could explain what type of automata machine Phi spirals are running in, and what this automata machine's rules are, then I think that would go a long way to understanding the universe, but at this point in time, I cannot determine a universal automata machine, nor its rules...

I only know that Phi spirals are automatically formed by nature, at a variety of scales, and in a variety of mediums...

What are some examples of Phi spirals (assuming you mean golden spirals?) outside of biology? We see them all over the natural world but off the top of my head I can't think of any non-biological examples. A quick read of Wikipedia points to logarithmic spirals occurring occasionally (although not specifically golden spirals).

(Also if we're just accepting geometric shapes, I'd nominate ellipses as being far more common, since they show up all the time in orbital mechanics.)

Spiral galaxy’s which occur due to decreasing orbital velocities (edit: in radians) as you move from the center. Whirlpools and hurricanes are shaped by similar rotational effects.

However, their close approximations not exactly the correct shape.

That orbital velocities don’t do that was one of the first mysteries which led to people thinking about dark matter:

https://en.m.wikipedia.org/wiki/Galaxy_rotation_curve#/media...

That’s not enough to offset the increased distances from longer orbits. So you still get a spiral as the velocity in in radians decreases. But, it looks like a Golden spiral because the velocities in m/s are almost constant due to dark matter.

PS: Should have said orbital period to be more clear.

> Phi spirals -- seem to construct themselves

They are not self replicating. Some other process is creating them (usually life).

First paragraph of the Purpose section includes some simpler examples. And they are links, so check them out as well!

> However, it is clear that far simpler machines can achieve self-replication. Examples include trivial crystal-like growth, template replication, and Langton's loops. But von Neumann was interested in something more profound: construction, universality, and evolution.

You also get beautiful spirals from Belousov–Zhabotinsky reactions. They can be simulated by cellular automata, and are manifested in nature by chemical reactions, slime molds, and reefs of tube worms!

I don't think they're Turing complete or self replicating per se, but you can start them on a random configuration, and they will form several spiraling "attractors" around oscillating cores ("nucleation"), that send out concentric spiraling waves, which meet waves from other attractors (or boundaries in the environment like a maze) and reinforce or cancel each other out, and also they can solve mazes and climb gradients and find food! (Plus, slime molds are not only beautiful, but make great pets, and they're easy to care for!)

https://en.wikipedia.org/wiki/Belousov%E2%80%93Zhabotinsky_r...

https://en.wikipedia.org/wiki/Attractor

https://en.wikipedia.org/wiki/Nucleation

Mould Time-lapse - The Great British Year: Episode 4 Preview - BBC One: Meet the Slime Mold

https://www.youtube.com/watch?v=GY_uMH8Xpy0

The Belousov-Zhabotinsky Reaction - Christmas Lectures with Ian Stewart

https://www.youtube.com/watch?v=o72GGxQqWt8

Sub-excitable Belousov-Zhabotinsky medium solves Reims maze: Oregonator model

https://www.youtube.com/watch?v=YWeSOEvVF7w

Can Slime Mould Solve Mazes? | Earth Lab

https://www.youtube.com/watch?v=HyzT5b0tNtk

Slime mould solves maze in one pass ... assisted by gradient of chemo-attractants

https://arxiv.org/abs/1108.4956

>Plasmodium of Physarum polycephalum is a large cell, visible by unaided eye, which exhibits sophisticated patterns of foraging behaviour. The plasmodium's behaviour is well interpreted in terms of computation, where data are spatially extended configurations of nutrients and obstacles, and results of computation are networks of protoplasmic tubes formed by the plasmodium. In laboratory experiments and numerical simulation we show that if plasmodium of Physarum is inoculated in a maze's peripheral channel and an oat flake (source of attractants) in a the maze's central chamber then the plasmodium grows toward target oat flake and connects the flake with the site of original inoculation with a pronounced protoplasmic tube. The protoplasmic tube represents a path in the maze. The plasmodium solves maze in one pass because it is assisted by a gradient of chemo-attractants propagating from the target oat flake.

Dictyostelium discoideum, axenic strain, aggregation on a petri dish

https://www.youtube.com/watch?v=Yl3ESZ4XQLI

>The aggregation of Dictyostelium discoideum amoebae after starvation provides one of the best examples of spatiotemporal pattern formation at the supracellular level. This transition from a unicellular to a multicellular stage of the life cycle occurs by a chemotactic response to cyclic AMP (cAMP) signals emitted by aggregation centers in a periodic manner. Amoebae are capable of relaying the signals emitted periodically by a center located in their vicinity. This excitable response to periodic signals explains the wavelike nature ...

First of all, fascinating!

Second, random thought unrelated to this thread:

If we think about a the Belousov–Zhabotinsky reaction, it's sort of different than most other chemical reactions, that is, most other chemical reactions are unidirectional, Belousov–Zhabotinsky reaction is bidirectional, or perhaps we'd call it cyclical...

What would be fascinating, I think, would be to attempt to figure out what it would take to stabilize a Belousov–Zhabotinsky reaction in one state... like what chemical or chemicals, and how much of them would do that?

Even more interesting... try to stabilize it in one state using electricity... or sound... or other electromagnetic wave phenomena...

If it could be stabilized in one state using any wave phenomena, then perhaps we might unlock some new understanding about this reaction, and Chemistry in general...

Anyway, my apologies, the above thought was unrelated to this discussion, but I needed to write it down someplace, and this was the most convenient place...<g>

This is one of my favorite topics and wikipedia pages! Please forgive my wall of text, and inscrutable ascii graphics, and check out the Buckley paper for better illustrations.

Here's some JavaScript code that implements (and describes) John von Neuman's 29 state cellular automata machine. I based it on some older "jvn" C code by R. Nobili, U. Pesavento, and Umberto Pesavento I found on the net, but I have rewritten it to be more symbolic and self documenting, so I could understand it better.

What it really needs is a specialized set of rule-specific editing tools and templates to stamp down, since it's impossibly tedious to paint anything non-trivial with the CA painting tools that this version of CAM6 currently supports.

https://github.com/SimHacker/CAM6/blob/master/javascript/CAM...

I've tried to document what everything means and describe how it works. With evocative function names and comments like "pointedToByExcitedOrdinaryOrSpecial" (Return 1 if pointed by an excited transmission state (ordinary or special), else returns 0) and "wellFlankedByExcitedNotNextExcitedConfluent" (Return 1 if well flanked by an excited (not next excited) confluent state, else returns 0)! ;)

For example, here are the bit sequences for constructing new cells. You can send these sequences of bits down a wire to an arrow pointing into an empty space, and it will construct the corresponding cell in that empty space -- the intermediate construction states are called "Sensitized", and they huffman-encode all the possible cells you can create. Note that you can only construct non-excited cells. (See Buckley, page 457, The mechanisms of construction, below.)

                // Instructions to the jvn29 construction arm, whose tip
                // is an arrow pointing into an unexcited state, that
                // creates a sensitized state which evolves into other
                // states over time, given the following excitement inputs.

                constructionInstructions: {
                    OR:  '10000', // => S S0 S00 S000 OR
                    OU:  '10001', // => S S0 S00 S000 OU
                    OL:  '1001',  // => S S0 S00 OL
                    OD:  '1010',  // => S S0 S01 OD
                    SR:  '1011',  // => S S0 S01 SR
                    SU:  '1100',  // => S S1 S10 SU
                    SL:  '1101',  // => S S1 S10 SL
                    SD:  '1110',  // => S S1 S11 SD
                    C00: '1111'   // => S S1 S11 C00
                },
Here is the table of all the possible cell values, symbols and names (which is useful for an editor's user interface):

                // Array of dicts describing cell values for jvn29.

                cellStates: [
                    { symbol: 'U',    value: 0x00, name: 'Unexcited'              },
                    { symbol: 'S',    value: 0x01, name: 'Sensitized'             },
                    { symbol: 'S0',   value: 0x02, name: 'Sensitized 0'           },
                    { symbol: 'S1',   value: 0x03, name: 'Sensitized 1'           },
                    { symbol: 'S00',  value: 0x04, name: 'Sensitized 00'          },
                    { symbol: 'S01',  value: 0x05, name: 'Sensitized 01'          },
                    { symbol: 'S10',  value: 0x06, name: 'Sensitized 10'          },
                    { symbol: 'S11',  value: 0x07, name: 'Sensitized 11' ...