Originally shared by Jeff Keegan
I just saw a link to an article on self replicating robots and I’ll robot sex maybe the future. RepRap was mentioned as an example of a self replicating machine. I haven’t read the article yet but I wanted to write down my thoughts that were sparked by this link before reading it.
What if we actually had a feature in RepRap’s where there was a communication cable specifically intended for communicating with other RepRap’s.
Each RepRap would have a set of digital blueprints for its own construction, including custom parts tried by the user.
Every RepRap would keep a running tab of how many of its prints were successes and how many were failures.
Humans would be free to modify their RepRap at anytime but would have to keep a log in that RepRap’s memory of every upgrade and when it happened.
When the two RepRap’s communicate with each other, they exchange all of their information including modification logs, success rates, etc.
At that point, one or both RepRap’s start printing a complete set of parts for a new RepRap, based on a calculation of which parts worked better.
If all of the types of print failures were logged and categorized in a standard way, you could even have new designs results from this meeting of two RepRap’s.
Example:
RepRap A is a Prusa IT2, and uses a Greg’s Accessible extruder (and has optical endstops). It has no heated bed.
RepRap B is a Prusa IT2, and uses an original Wade’s extruder. It used to have no heated bed, but one was added later.
Upon communicating it might be determined that for some reason RepRap B was having way less x-axis endstop failures (where the motor moved more than expected before seeing the endstop) than RepRap A. So the child prints the mechanical endstop holders from RepRap B and adds three mechanical switches to the BOM (and removes the optical endstop boards).
RepRap A is found to have had way less jams, AND has a longer amount of time after each jam before any problems occur (maybe due to better flossing because of the accessibility?). The parts for Greg’s accessible extruder are printed and the BOM is updated with the appropriate vitamins.
While RepRap A has very few warping problems, RepRap B used to have a LOT of warping problems but then they went away when the heated bed was added. A and B are now both tied. Randomly a tiebreaking decision is made to go with no heated bed, but the fact that there had been a huge improvement in B’s history is passed down as a rule in new RepRap C’s data, to be shared with (and used during mating with) some other RepRap some day in the future.
Humans could still review the plans and decide to override things if they want (no, I WANT a heated bed!) but it will be recorded that that was a human-driven change-during-mating (not a genetically based decision), and that will somehow appropriately be weighed in future decisions.
The very weights themselves could also be subject to random variation I suppose, but who wants their printer to be a random experiment.
At least this way people would be like “oh yeah I forgot I changed that Y endstop holder to the one that extends out the back to increase my Y length… Here, I’ll print that for you”.
So many problems with that obviously (different build designs, benefits masked by different build approaches, categorizing problems, human error, user behaviors changing things, etc), but there’s serious potential for it to start out as something useful to begin with (data logging, design/modification logging, etc) that it could evolve over time to be really cool. Add communication over the net to config servers and it gets interesting, but loses the need for the cable, which I still think is a cool idea (if only because it’s in our image in a way…
)