Crowds in finite worlds, continued

I implemented a little simulation in which I placed little circles, representing people in a crowd, into a finite square world, and programmed each person to try to keep their distance from all the others.

I made ten worlds in total. In the first world I placed one person, in the second world two people, and so on up to ten people.

Each little square world is a torus (just like the Asteroids game), so when a person goes off to the right, they come back on the left. Similarly, when a person goes up off the top, they come back on the bottom.

To make it easier to see patterns, I’m showing a 4×4 arrangement of each world. So in each of the ten images below, there are actually 16 little worlds, in a 4×4 tiling. I didn’t draw any edges between tiles. Because each tile is really a little toroidal patch, it doesn’t matter where you draw the edges between neighboring tiles — people can wander continuously between tiles, and each person lives simultaneously on all 16 tiles.

As you can see from the images below, the world containing nine people is the most visually interesting. While most of the others look quite geometric and regular, the crowd of nine people has a very natural quality, like an actual milling crowd.

I find that very intriguing.



One thought on “Crowds in finite worlds, continued”

  1. Is it perhaps because the one with 9 dots is the only one that seems to contain no dots in straight lines? It would probably be easier to see the pattern in the 9’s if you colored dots (e.g., for each repeated pattern of 9 dots, color the top 3 color A, then the next “row” below that color B and the third “row” color C). That would make it easier to see the wavy pattern, I think.

    For some reason I like looking at the one with 5 “people”. It has circles of 8 dots with a dot in the middle, which was not immediately apparent the first time I looked at it.

Leave a Reply

Your email address will not be published. Required fields are marked *