  The ability to rapidly manufacture building blocks with specific binding
interactions is a key aspect of programmable assembly. Recent developments in
DNA nanotechnology and colloidal particle synthesis have significantly advanced
our ability to create particle sets with programmable interactions, based on
DNA or shape complementarity. The increasing miniaturization underlying
magnetic storage offers a new path for engineering programmable components for
self assembly, by printing magnetic dipole patterns on substrates using
nanotechnology. How to efficiently design dipole patterns for programmable
assembly remains an open question as the design space is combinatorially large.
Here, we present design rules for programming these magnetic interactions. By
optimizing the structure of the dipole pattern, we demonstrate that the number
of independent building blocks scales super linearly with the number of printed
domains. We test these design rules using computational simulations of self
assembled blocks, and experimental realizations of the blocks at the mm scale,
demonstrating that the designed blocks give high yield assembly. In addition,
our design rules indicate that with current printing technology, micron sized
magnetic panels could easily achieve hundreds of different building blocks.
