Artificial molecular-level machines: which energy to make them work?

The concept of machine can be extended to the molecular level by designing and synthesizing (supra)molecular species capable of performing mechanical movements. The energy needed to make a machine work can be supplied as chemical energy, electrical energy, or light. When a chemical "fuel" is used, waste products are formed, whereas this is not the case when suitable photochemical or electrochemical energy inputs are employed. A number of elementary functions performed by molecular-level machines are illustrated, and more complex ones are foreseen.