In this paper, we review half a century of research on the design of systems displaying (physical) self-assembly of macroscopic components. We report on the experience gained in the design of 21 such systems, exhibiting components ranging from passive mechanical parts to mobile robots. we present a taxonomy of the systems and discuss design principles and functions. Finally, we summarize the main achievements and indicate potential directions for future research.