I have been using python for the last two years to create various visualizations for my research in computational biology. Over the years, I found that I often needed the same kinds of features for many of my visualizations (OpenGL graphics with basic scrolling and zooming). I have implemented these features in an extension module for python called SUMMON which I have made freely available on my website for anyone who is interested <http://people.csail.mit.edu/ rasmus/summon/index.shtml>.
Although, there are many visualization frameworks, I believe SUMMON provides a fairly unique combination. - First, SUMMON is designed to be fast and able to visualize extremely large datasets. In the examples included, there is a visualization of a binary tree with roughly 40,000 leaves (a hierarchical clustering of all protein sequences from the human and dog genomes). Specifying how to draw the tree is done once in using python functions provided by SUMMON (relatively slowly in about 10secs), however once constructed, it uses natively compiled C++ to handle interaction. Callbacks such as mouse movements, clicks, and key strokes can all be bound to python functions to customize interaction. - SUMMON is designed for prototyping visualizations. Often times in science, one wants to visualize something in order to understand whether it has any interesting patterns. If the answer is "no", you have to be able to throw away the visualization and move on to another approach. However, if there is a large amount of overhead in creating a visualization (designing dialog boxes, toolbars, laying out check boxes), it can become difficult to give up a visualization with that much investment so easily. The philosophy with SUMMON is to rely on the python shell for handling basic interaction (reading in data, specifying options, interacting with visualization) in order to avoid GUI design. Once, you realize a visualization is worth while for your research, you can then reimplement it in your favorite full featured GUI-toolkit. - It provides basic scrolling and zooming for an arbitrarily large coordinate space. As a user you simply draw out your visualization with lines, polygons, and text in the coordinate system you wish, completely ignoring how many pixels anything may take. SUMMON will handle the display, including smart display of text (automatic clipping, sizing, and justification of text). - Its cross-platform: It only relies on python2.4, OpenGL, GLUT, and SDL. So if this sounds like something you may need for your work, please check it out and let me know what you think. Matt -- http://mail.python.org/mailman/listinfo/python-list