Self Assembly

The hardware equivalent of QuineProgram.

Not easy, but nature has discovered at least one widely-successful architecture.

(moved from ChessBoardUserInterface)

For years I've sought a way to visualize and manipulate software that would amplify our abilities much like a mid 19th century metal lathe enabled more precise metal lathes. Once discovered it could be applied to itself and create a positive feedback loop that would reduce the complexity of software development by orders of magnitude. After years of thought and effort I have the sneaking suspicion that something like Smalltalk browsers and IDEs they've spawned for other languages are the best we can hope for without a major paradigm shift in programming languages and/or how we think about programming.

-- EricHodges

I have thought a long time about the idea of "closure" -- using a compiler to build a better compiler, using computer CAD to build a better computer, using a metal lathe to help build a more precise metal lathe, ... I think I started thinking along this line after reading DouglasHofstadter talk about quines ... Is there a more appropriate page on this Wiki to discuss things like that ? -- DavidCary

The closest page I can find is ChickenAndEggProblem, but this is sort of the inverse of what is discussed there. ChickenAndEggOpportunity?, or ChickenAndEggAmplifier? perhaps. During the last half of the 19th century metal lathe precision exploded. Before that time, precision increased gradually and with great effort. There was a point along the precision curve after which each lathe enabled a more precise lathe. This was perhaps the key technology that allowed standardized, replaceable parts, which in turn allowed the assembly line and mass production. The change in precision was tiny, but the consequences for manufacturing and the way a lot of people live were huge. -- EricHodges

(moved from SelfReproducingProgram)

Many people design new programming languages. Usually they write an interpreter (or compiler) for those languages. Some people try to write a compiler in their new language, and discover that it's very hard or even impossible to write a compiler in that language. Other people succeed in writing a compiler for their new language in the same language, and BootStrapping that compiler -- is there a term for languages where this has been done? Or similarly, people in some workshops are hampered by not having adequate tools. People in other metal-working workshops can make just about any metal part, in particular, any metal part anywhere in the workshop (including in any of the tools) could be duplicated to adequate precision -- is there a term for this? I've heard some people say that collection of tools has "quantitative parts closure" -- is there a better term? "WhatIsClosure" seems to say that "closure" means something entirely different. Is there a better term? -- DavidCary

This collection of mechanical tools that can replicate itself (given raw materials and some human guidance) seems closely analogous to a SelfReproducingProgram. I just heard someone refer to this as "the fixed points in mechanical space" and "that self-reflective point of mechanical systems". Surely there's an even better term? -- DavidCary, apparently talking to himself


The term I've heard most often is 'self-hosting'; it's a major milestone for most programming environments and compilers.

Yes, that's exactly the term for which I was looking. Would it make sense if I said "this collection of metal-working tools is self-hosting", or should I continue to search / invent another term ? -- DavidCary

Would it make sense to say "this collection of metal-working tools is an AutocatalyticSet"?

There's an entire wiki devoted to metal-working machines:

One page on that wiki discusses the book "Build Your Own Metal Working Shop from Scrap" which tells how to start with simple handtools, to build precision machine tools.

Adrian Bowyer has designed a "rapid prototyping machine". The article uses the term "self-cloning" to indicate that it can be used to manufacture practically every part in new machines built to the same design.

"Bowyer says he'll put his plans on the Internet, so anyone can build one of these self-cloning devices. He's taken out no patents. Those who succeed could presumably sell their copies to others who would make more, Bowyer says. He expects the plans to be posted in stages over the next four years." --

"Self replication and nanotechnology" lists a one-line C QuineProgram.

"A proposed "metabolism" for a hydrocarbon assembler" by Ralph C. Merkle 1997 has a section: "Quantitative parts closure: In this section we analyze the global use of the proposed molecular tools to make another set of tools. ..."

"the world�s first macroscale autonomous machine replicator, made of LEGO(R) blocks, was built and operated in 2002"

