One week ago I couldn't even spell nuclear physicist and now I are one!
One of the neat things that SpaceChem does is track your efficiency -- how many instructions you used to solve a puzzle and how many cycles it took to complete -- and then show you a bar graph that compares it against how many symbols and cycles other players took, letting you know the average time taken as well as the outliers in both directions. Often this graph is dispiriting, as I've managed to put together some hideously slow production lines on the more difficult stages. But nonetheless it's a fun challenge to try to build research reactors that are as fast and efficient as possible, finding weird techniques to squeeze out every last cycle.
Here's a few of the tricks I've come up with when optimizing the simplest reactors:
You don't have to drop an atom to bond it. If the atom happens to be over the bonder when the instruction happens, it will be bonded. If a waldo is carrying the atom when it bonds, it will scoop up the entire new molecule it was bonded into without missing a beat. You can even bond two atoms that are being held by two different waldos that are in motion. As long as one of the waldos lets go before they move apart, you'll be fine.
You can also have one waldo drop an atom and the other one pick it up in the same frame. Time it right and the atom will never stop moving as it is transferred.
A completely linear loop can be created for very simple waldo programs by placing directional arrows that reflect the waldo straight back on its path. Anything which you want to only happen once during each loop has to be placed at the ends of the line; everything else will get executed twice, once coming and once going. Linear loops are obviously also faster than full-sized loops, since each corner is an extra tile the waldo must travel around.
Since you never have to wait for input In research assignments, you can get away without using sync nodes if you time the waldos perfectly. When running in perfect sync, one waldo can execute an instruction the other needs at that moment through the loop, such as requesting input or bonding.
Time taken for a waldo to go around a loop back to its starting position after it's done doing work (dropping off an item in the output area, for example) is wasted time. You can have the waldos hand off atoms to each other halfway across the reactor, substantially reducing that wasted time.
All this is very nice and I've managed to create some very small and fast solutions to research problems. But, those tiny little bars at the far left of the chart, to the left of my best times and symbol counts, still taunt me. Someone completed "Double Bonds" using only seven symbols, better than my nine. Someone has a trick that let them do "A Complete History of SpaceChem" in less than 70 cycles, compared to my 107! It's driving me crazy. I must figure it out.