[Pipet Devel] Re: Qt on Windows (was Open your eyes: TCL, TIX and wxWidnwos)

J.W. Bizzaro jeff at bioinformatics.org
Wed Sep 20 20:25:37 EDT 2000

"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:


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.

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.

More information about the Pipet-Devel mailing list