Communication! This exercise was a lot of fun. A central server that just forwards messages between clients, and a trivial protocol for clients (just forward mouseclicks). Up to the students to design our own graphics for it. The neat thing here is everyone has radically different graphics. A semiotics lesson.
I like how my first assignment, a straightforward client to show the communication space, worked out. In fact, I think it looks rather nice. Each client is given a particle - mouseclicks move the particle around softly. The particle itself is drawn less saturated as the client info gets stale. In addition, lines are drawn between particles to show connections. Lines also get dimmer as the info goes stale.
I think it looks pretty good when you have about five active clients. The graph between them is complex and tumbles around. And the thick lines somehow suggest a deliberate connection between the particles, even though there isn't really any coordination. Simple, but nice.
I didn't do the second assignment, a version of the applet that emphasizes one other client. Not enough time.
Because I was spending so much time on my third applet, the "god's eye view". Here I just display the protocol stream directly as a bunch of numbers. The numbers have meaning, but it's not immediately apparent. That must be how a god does things - everything in the abstract, all information there but nothing special to make it easy to process. (Afterall, god is all powerful - why bother with fancy graphics?)
It's no fun just being an observant god, you have to be able to meddle, too. The god client can take control of other people's clients, essentially forging messages as them. In addition god can create new clients out of thin air, and also smite other clients with one keystroke. It's fun being god.