Algorithmic self-assembly
Algorithmic self-assembly deals with a subset of self-assembling systems whose behavior can be intrinsically guided by algorithms. Essentially, self-assembling systems span a spectrum related to the computational complexity of their components and behaviors, with systems at one end consisting of unique components tailor-made (i.e. hard-coded) for each location of the self-assembling structures, and those at the other end consisting of generic sets of components which are reused many times in a self-assembling structure but whose abilities to combine with each other are restricted so that they must follow computational (but local) rules. The latter are considered examples of algorithmic self-assembly, since by following computational rules as they combine, the self-assembling components intrinsically follow algorithms, which are simply series of computational instructions.
Examples of algorithmic self-assembly abound in the aTAM at Temperature 2 (while at temperature 1 the aTAM is conjectured (see Open Problems) to be incapable of algorithmic self-assembly - at least for mildly computationally complex algorithms). Another model of self-assembly which is non-algorithmic is DNA origami.