I am currently developing an application, provisionally called Agent Canvas, which uses the interction between different agents to produce images. My main aim with this software is to create complex 2D textures that would be laborious to produce using other means. The graphical interface is shown in Figure 1.
The agents write and read data to/from the canvas. They communicate through their environment (the canvas) or by sending agent messages. The system supports many different types of agent and agent messages. In the current version, some agents are specialized for painting on the canvas (brush agents), others generate position information and others generate colours (palette agents).
Agent Canvas is written in C++ using Qt for the graphics. Do contact me if you would like the source code for the current version.