Motivated by concerns about diversity in social networks, we consider the following pattern formation problems in rings. Assume n mobile agents are located at the nodes of an n-node ring network. Each agent is assigned a colour from the set {c 1 , c 2 , . . . , c q }. The ring is divided into k contiguous blocks or neighbourhoods of length p. The agents are required to rearrange themselves in a distributed manner to satisfy given diversity requirements: in each block j and for each colour c i , there must be exactly n i (j) > 0 agents of colour c i in block j. Agents are assumed to be able to see agents in adjacent blocks, and move to any position in adjacent blocks in one time step.When the number of colours q = 2, we give an algorithm that terminates in time N 1 /n * 1 + k + 4 where N 1 is the total number of agents of colour c 1 and n * 1 is the minimum number of agents of colour c 1 required in any block. When the diversity requirements are the same in every block, our algorithm requires 3k + 4 steps, and is asymptotically optimal. Our algorithm generalizes for an arbitrary number of colours, and terminates in O(nk) steps. We also show how to extend it to achieve arbitrary specific final patterns, provided there is at least one agent of every colour in every pattern.