A 'protein design cycle', involving cycling between theory and experiment, has led to recent advances in rational protein design. A reductionist approach, in which protein positions are classified by their local environments, has aided development of an appropriate energy expression. The computational principles and practicalities of the protein design cycle are discussed.