What it's doing: Each
node has a
belief that matches its hue, represented
as an angle between 0 and 359 degrees. Every 25 frames (once a second or so), a node is chosen at random and given
a choice whether to speak; if it does (this is represented by a fading circle expanding from the node). Every other
node has a chance to hear the speaking node based on the distance between the speaker and the listener--the farther
you are from the speaker, the less likely you are to hear.
Once a node does hear another node, it will only care about what it's hearing under one of two conditions:
- The hearer's beliefs (i.e. color) are similar to the speakers, in which case the hearer's beliefs will move slightly closer to the speaker's; or
- The hearer's beliefs are very different from the speakers, and its beliefs will move even further away from the speaker's.
In either case, there is a small chance the hearer will
subscribe to the speaker, which adds a line between the two and
means the hearer will always hear announcements from that speaker.
NB: This isn't designed--at least in this incarnation--to be a realistic simulation of anything. It's another experiment with PaperJS.