RepRap: the self-replicating machine

the RepRap is a self-replicating machine (3D printer) created by Adrian Bowyer.

Look at your computer setup and imagine that you hooked up a 3D printer. Instead of printing on bits of paper this 3D printer makes real, robust, mechanical parts. To give you an idea of how robust, think Lego bricks and you're in the right area. You could make lots of useful stuff, but interestingly you could also make most of the parts to make another 3D printer. That would be a machine that could copy itself.

There are RepRap machines around the world these days. LtU readers are invited to report their experiences!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Precision

I'm completely unsure what RepRap has to do with LTU, though it's mentioned here. But I have immense respect for Adrian Bowyer (I fondly remember meeting him at a Computer Graphics conference 25 years ago, when we were both young) and welcome any effort to promote his work, even off-topic posts at LTU.

Be that as it may. An interesting, unanswered question (at least, I haven't found anything in the RepRap literature that addresses it) is how can a RepRap make new RepRaps whose operation is at least as precise as their parents? Most copying processes make sloppier and sloppier copies as the generations accrue. Won't multi-generation copied RepRaps eventually be so far out of tolerance as to be non-functional?

I agree that this is at the

I agree that this is at the outskirts of LtU-territory, but since self-replication is so central to CS, and to the theoretical underpinnings of PLT and many of the arguments used therein, I think it may be acceptable.

As to your general point: Since humans are the result of such copying processes going on for ages and ages, I don't buy the general point (I grant that you said "most copying processes", but the general issue is worth discussing). Indeed, there is good reason to believe that the fidelity of copying improved during evolution!

Analog vs Digital

The copying process that makes new living things from old is essentially a digital process. Absent some sort of error correction, digital copies are most likely to be either perfectly faithful or busted in ways that make them unlikely to work at all. (I'm thinking of single-bit errors in code, here, which I think model the biological reproduction process pretty well.)

Analog copies like those a RepRap makes, are apt to have slightly worse tolerances than the machine making them. Over generations errors will accrue until the copied machines fail to work.

The point is that a species that cannot, at least occasionally, produce perfectly faithful copies eventually becomes populated by nonworking garbage.

Unless some clever scheme allows you to make analog copies more precise than the devices that make them. There are lots of examples of such processes. Telescope mirrors made by hand can have nanometer precision. Henry Maudslay's Screw Originating Machine could make precise threads from scratch. (Whereas industrial screw-making processes effectively make less-precise copies of threads in the screw-maker.) Building a useful machine lathe without already having one to make parts with is another really interesting and difficult problem. (Maudslay, the Knuth of machining, figured out this one as well.)

There are lots of analogous problems in Numerical Analysis. For example William Kahan's summation algorithm has something in common with many precision-enhancing machining practices.

Nice points... But the real

Nice points... But the real question, of course, is how digital copying originated.

Human participation in some generations

Relevant quote from the background page:

Secondly, evolution: for the machine to be able to copy itself, its own CAD design needs to be available along with it, for example on a copyable CD. People may just have their machine copy itself, or they may improve the design (and its firmware) and have their existing parent machine make their new, and better, child machines instead. That's how we made a labrador out of a wolf. Thus the machines will improve; good designs will come to predominate, and the lesser ones will fall by the wayside.

So you have both artificial

Analog copies

Analog copies like those a RepRap makes, are apt to have slightly worse tolerances than the machine making them. Over generations errors will accrue until the copied machines fail to work.

This seems like it might tend to be true each machine uses itself as a template for the next, but if the machine is copying over the original blueprints it seems that it would be natural for each generation to improve in precision over the one before. Heuristically, I imagine some factor of change in precision from generation to generation that, if greater than one, results in divergence to garbage, and if less than one results in convergence to an ideal version of the machine.

Feynman and machine replication

This reminds me of Feynman's seminal Plenty of room at the bottom talk, where he talks about building small-scale machines, then using those to build yet smaller-scale machines and so on, decreasing the size and increasing the precision with each step.

ObLtU: The Feynman Lectures on Computation is an underrated book which includes a great introduction to information theory and computability theory, plus some stuff about semiconductor physics and quantum computing.

the mechanics and code do not degrade

...and they are where the precision is. It isn't like they machine their own motors, and the whole thing is basically a cnc machine (so software/motors for precision). The 'made' parts are basically what holds it in place, what causes the plastic to ooze etc.

While it isn't quite at the cs language level, the open source hardware stuff is very much like open software libraries and applications. I have a clay printer that I will be releasing soon (that will be open source hw). It had specialized needs with software, and the easiest solution was a small machine specific vm. I'm sure a lot of projects end up like that, so I guess in a round about way the hardware stuff has plenty of not so important micro languages. Certainly PL knowledge helps a ton on hardware, as it is a natural way to organize things so close to nature I think.

The neatest thing related to PL for me was that for once, my virtual machine in software mimicked an actual touchable moving machine! That just felts so ironic, or I guess the opposite of ironic, hmm, not sure what that would be as a word though : ).

Video presentation

Not for nothing, but back when I lived in Long Island, NY, one of the RepRap developers came out to Long Island Linux Users Group and gave a talk on RepRap. He's a web developer for CollegeHumor.

Lilug, RepRap presented by Zach Smith (2007) thanks to archive.org

Bruce Sterling

A cultural perspective on RepRap that might be of interest to some.

Stainless steel 3d Printing

Saw this on hacker news today, and it just blew my mind: The future of fabrication is here: Shapeways announces stainless steel printing