Formations are often seen in nature, and bring many benefits for the group as a whole. They can allow a group to explore a large area more effectively, can ease movement of the group through the environment, and can increase group perceptual coverage and increase defensive capabilities, for example. The benefits of any particular formation vary and are obtained from the structure the formation provides. Robotic formations can have similar applications. To date, the techniques used and formations employed in robotic applications are significantly simpler than those seen in nature. Current techniques often require some level of global knowledge, central processing or other unrealistic assumptions. We seek to develop a formation control technique that has as few of these limitations as possible. Each agent under our approach has only local knowledge of the environment, uses no broadcast communication, and can communicate only over a limited range. Formations are achieved by organizing agents into a graph structure, where agents occupying the vertices take on the role of maintaining an appropriate number of agents on each edge, thus preserving the formation's shape and scale. We do not assume a known or static population: the evolving formation acts as a physical data structure to assist in placing and rearranging agents as the population changes. This approach does not require a global coordinate system, fixed positions within the formation, or any single lead agent. All agents within our approach are peers, and any can adopt any role within the formation.