A Universal Constructor is a machine which within some physical or abstract environment is able to construct all environmentally possible constructions. The notion originated with John von Neumann, a general principle derived from his work to solve the problem of self-replication. It now has wide application to emerging technologies.