Some time ago, I worked with Tihamer Toth-Fejel on a nanofactory-related NIAC grant. We came up with a concept of using small molecular building blocks (MBBs) to construct simple machines... that could grab the MBBs from solution and assemble them to create machines... thus leading to exponential manufacturing.
The machines would be "needles" with actuators that could extend or retract the tip a bit. The tip of the needle would reversibly bind an MBB from solution. The MBB's would be covered with molecules that would stick tight when pressed together, but not easily stick just from floating past each other. (There are several ways to do this.)
You build the first needle using a scanning probe microscope with a special MBB-grabbing tip. The needle's substrate can be postioned by an actuator, so MBBs can be deposited where you want them. Once the first needle is built, you use that needle to build two more needles on an opposing surface. Then those two build four on the first surface... and so pretty soon, if all goes well, you get millions of needles all capable of working in parallel. And if they are independently controlled, you can retract some of the needles so that only the selected ones deposit their MBBs. This lets you build a heterogeneous product with a high degree of parallelism.
We had proposed using POSS as the molecular building block, but I'm now thinking that DNA bricks would be even better. Design each brick to have a lot of "DNA velcro" strands on the surface, in patterns. Mix the bricks with tiny snippets of DNA, "cap strands" that bind to and passivate the velcro. Control the length of the velcro strands and the temperature of the system so that the cap strands detach infrequently. Now the bricks will happily float in solution. But put two bricks with complementary velcro patterns side by side in just the right orientation, and as the cap strands come off, the velcro will stick surface-to-surface. Now the cap strands will be unlikely to reattach, and the bricks will be firmly bound to each other.
In schemes like this, assuming the attachment process is a simple one that does not involve irreversible externally-triggered chemical bonding, there is a thermodynamic equilibrium between bricks in solution and bricks attached. That equilibrium of course must tend toward the bricks being attached, or else the device would fall apart. However, bricks can remain in solution for long periods of time, because they will move slowly--and even on the rare occasions when they bump into each other, only one position out of a vast number of possibilities will result in them sticking, and then only if the cap strands happen to be missing at the time.
Mechanical restraint and positioning can increase effective concentration by nine orders of magnitude. (Creighton, 1984, cited in Nanosystems 8.3.3.a.) So if we want the binding process to take no more than one second per brick, then two bricks in solution may take a billion seconds to join on their own. If the construction process takes a week, or 600,000 seconds, then we can have several hundred bricks in a concentrated solution at any one time without too much concern about them sticking. (Note that the time it takes the bricks to join is not directly related to the sticking force. Just because the bricks join in a second does not mean they will fall apart in another second.)
In addition, there is another trick we can play to improve the odds. It should be possible to design the cap strands to bridge two velcro strands so that they stick up from the surface; this configuration will become "unhappy" when mechanically pressed against another surface, making the cap strands more likely to leave and less likely to return. In effect, this creates an activation energy barrier. If the mechanical force applied to bend the strands is 100 pN over 5 nm, that is 500 zJ, approximately the dissociation energy of a C-C bond. It just ain't going to happen by accident. (Keep in mind that this energy barrier is only tested once every billion seconds, whereas a chemical dissociation is tested billions of times per second--and even peroxide, at about 250 zJ, is mostly stable at room temperature. So if the force or distance decreases modestly from the above guesstimates, we should still be OK.)
In addition to the dense but usually capped "velcro" strands, which would be used to hold the construct together, there would be a few "recognition" strands for use during construction. They would weakly bind the brick into place on special "tip" bricks covered with complementary recognition strands but no velcro. So a brick in solution would stick easily but reversibly to the tip; then the tip would press it into place, sticking the velcro together; then the tip would retract, separating the recognition strands and leaving the tip ready for another dissolved brick to blunder in and get recognized and held.
So now we have DNA bricks that can be selected from solution and stuck into place. All we need is externally controlled actuators (or in advanced designs, internal actuators) to select the location of deposition, and we'll have the ability to build a nanoscale molecular machine construct that can build nanoscale molecular machine constructs out of the same building blocks it's built out of.
How many different bricks would be required? Well, there's actuators, structure, electrical conductors, and special reversible-brick-binding tips. Probably several kinds of each, plus "inter-part interface" bricks. Figure 100 different kinds of brick. Each brick requires several hundred staples, and each staple requires about a dozen bases. So that's about half a million bases, or $50,000 and 500 hours if you own your own DNA-synthesis machine. Preliminary experiments, of course, would cost a lot less, since they could be done with only one or two brick types. And with so few brick types, and smaller and simpler machine structures, you don't need most of the automation robotics I talked about in the other post.
How to deposit a selected one of 100 brick types? The simplest way is to make all bricks bind to the same tip, then flush them through one type at a time. This is slow and wasteful. Better to include several tips in one machine, and then flush through a mixture of bricks that will each bind to only one tip. The best answer is to make the tips reconfigurable, by using fast internal actuators to present various combinations of DNA strands for weak temporary binding of various differently-tagged bricks.
The above-mentioned "recognition strands" might pose problems, because they would tend to make brick-grabbing-tip bricks bind to other bricks while still in solution. One solution (no pun intended) is to passivate the recognition strands with special cap strands that would stick tight until unzipped by more special strands, the same way DNA actuators can be bound by "fuel" and then the fuel removed by "removal" strands. (Because recognition strands will be pulled apart mechanically when the tip retracts during normal use, the strands can be long enough that the fuel/cap strands will not come off until they are deliberately unzipped.) This sounds complicated, but it's known technology. The "fuel" strands contain one section that binds to the recognition strands, and a separate unzip sequence. The removal strands are complementary to the entire fuel strand, and unzip it from the recognition strand. The unzip sequence, used to associate the fuel and removal strands, can differ while the recognition-strand-binding sequence stays the same. Thus, the exact same tip-brick could be differentiated by having different recognition-cap ("fuel") strands added, and the bricks could be uncapped and activated selectively, one at a time, during or after construction of a new machine. (In theory it should be possible to uncap and recap one tip, then uncap and recap a different tip, repeatedly during use. In practice, if the wrong cap strand got attached, for example due to inadequate rinsing, it would be difficult to get it off.)
This suggests another idea. I started by suggesting that a scanning probe microscope be used to build the first construct. But self-assembly could be used to build small constructs, if you can generate enough distinct blocks. So... Rather than capping the velcro strands in order to passivate them, cap them with a second-level "velcro staple". Start with a generic brick coated with velcro--optionally, put a different velcro sequence on each side. Stir that together with strands that are complementary to the velcro at one end, and contain a recognition pattern on the other end. Now, with one generic brick and six custom-made velcro staples, you have a brick with a completely unique recognition pattern on each side. Do that for a number of bricks, and you can make them bind together any way you want.
The velcro-staple idea can be tested using only DNA-shape technology, with one low-cost brick and a few dozen very-low-cost staples. Plus, of course, whatever analysis tools you need to convince you that you're making what you think you're making. From there, it's a series of incremental steps to a molecular machine construct that can fabricate molecular machine constructs--still using only DNA-shape technology to build the structure.
If all these plans work out, then it appears possible with today's technology to build a full exponential molecular manufacturing system out of molecular components that are almost easy to design and construct. The only thing that's missing is good actuators. Diffusive DNA actuators are pretty slow. But remember, these bricks can include other molecules in engineered locations and orientations.