"Donal K. Fellows" wrote: > > Hmm. What you write about Piper seems interesting. Are there any > similarities with the (utterly amazing IMHO) AVS? As a way to connect > up complex software modules to form a visualisation application, it > was pretty amazing to me, and had a number of influences on some of my > subsequent work... Yes, there are similarities between Piper, AVS and OpenDX: http://www.opendx.org/ However, Piper is more flexible by design. For example, Piper can be controlled by different user interfaces (UI's), even simultaneously. UI's control Piper through CORBA and the MVC (Model, View, Controller) paradigm. The Model (the network of nodes) resides with Piper, while the View and the Controller are part of a separate UI. In operation, the user sees the View, attempts to change the View by means of a Controller. (Note that this part takes place in the UI.) The UI then sends a message to Piper, and this causes the Model to be changed. The change in the Model is then applied back to the View, and we start all over again. But, because the UI's are separate from Piper, there can be more than one UI. They wait for the Piper to command a change in the View, so commands "broadcasted" by the Piper can cause a change in the View of multiple UI's. This effectively means ONE UI CAN CONTROL ALL OF THE OTHERS. That's just one unique feature about Piper. On the UI side again, the arrangement of nodes, where each node has its own UI component (e.g., a button) can be used to determine the layout of a COMBINED UI. Generally, sibling relationships mean the components will be adjacent to one another. And, parent-child relationships mean the components will be nested. Most RAD GUI builders show you a hierarchy of widgets drawn as a tree. Since nodes in Piper are already in a tree, we take the same approach. You can see that there some great ideas in Piper that don't appear in AVS and OpenDX, and there are more beyond the UI (the UI happens to be my end of the project). AVS and OpenDX are great for data visualization, as that is what they are designed for. Piper is like them in many ways, but the GENERAL PURPOSE design of Piper means it has to be more flexible. Cheers. Jeff -- J.W. Bizzaro jeff at bioinformatics.org Director, Bioinformatics.org: The Open Lab http://bioinformatics.org/~jeff "Injustice anywhere is a threat to justice everywhere." -- Martin Luther King, Jr. --