Constructor theory seeks to express all fundamental scientific theories in terms of a dichotomy between possible and impossible physical transformations–those that can be caused to happen and those that cannot. This is a departure from the prevailing conception of fundamental physics which is to predict what will happen from initial conditions and laws of motion. Several converging motivations for expecting constructor theory to be a fundamental branch of physics are discussed. Some principles of the theory are suggested and its potential for solving various problems and achieving various unifications is explored. These include providing a theory of information underlying classical and quantum information; generalising the theory of computation to include all physical transformations; unifying formal statements of conservation laws with the stronger operational ones (such as the ruling-out of perpetual motion machines); expressing the principles of testability and of the computability of nature (currently deemed methodological and metaphysical respectively) as laws of physics; allowing exact statements of emergent laws (such as the second law of thermodynamics); and expressing certain apparently anthropocentric attributes such as knowledge in physical terms.