The faces represent each agent's color preferences: A smiley face is practically colorblind, requiring at least 1% of his neighbors to be of his color, a straight face is tolerant, requiring at least 35%, and an angry face is a racist requiring at least 90%.
The shapes represent whether an agent is satisfied with his situation. A colored circle means the agent is unsatisfied and a full colored square means he is satisfied. Your goal is to satisfy all agents by moving the unsatisfied ones around the screen. Agents can only swap places with each other; they cannot move onto white spaces.
Use the hand tool on an unsatisfied agent to select him, then press an arrow key to make him move in that direction. The agent will continue swapping places with other agents until he is satisfied with his location or cannot move any farther in that direction.