For as long as I remember I've loved the idea of doing chemistry digitally, and building computers from scratch, but could I combine the two concepts? Could I engineer a molecular computer that uses chemical reactions to do computations? Is it possible to program the chemical system deterministically and do useful computations? These are deep questions. Researchers have done elementary operations using DNA folding and droplets with oscillating chemical reactions before, but these systems are not programmable in real time, and hence the computation is limited to single experiments.
We thought a new approach is needed. For a real time programmable system we envisaged a cellular array with a stirrer bar in each cell so the stirrer can be turned on or off and hence act locally, but we needed to influence a global chemical reaction. To achieve this we selected the Belousov Zhabotinsky (BZ) reaction as it is a oscillating chemical reaction and prepared a 3D printed array. We produce an 5 x 5 array of boxes, fluidically connected, but all 25 stirrers could be individually addressed. By using a camera we are able to read out the states of the boxes - blue is ON and red is OFF and then use the stirrers, the oscillating reaction, and the camera to make a hybrid type of chemical computer. In this case we showed the chemical computer could be used to encode and decode information, as well have a memory for the input data, see the Figure.
Figure shows the programmable BZ-mediated 'reaction-diffusion-chemical computer'.
Now we have proven the concept that data can be encoded into the BZ-mediated stirrer-bar system as a type of dynamic chemical memory, can we go beyond the stirrer bar and design the system that uses the potential of computing with networks of molecules and reactions? If possible, such a system could have the potential to be the most powerful computer ever built.