I’m behind on my write-ups of great WPF applications, and they’re stacking up. Sorry!
The next application I want to feature is one that has real purpose, in that it’s being used by medical researchers at the Scripps Institute who are working on potential treatments for cancer. The Collaborative Molecular Environment application is built entirely in WPF by a partner called Interknowlogy, and it provides a way for scientists to analyze the molecular structure of cancer cells and the SARS virus. More important than just analysis though, a clinical researcher can annotate any part of the structure and collaborate with other team members on their findings, since all the annotations are stored on a Sharepoint server that can be accessed over the Internet by any researcher.
Now I’ll confess, I know very little at all about this industry – I was never very good at biology or chemistry, and so all the terminology of het atoms, backbones and proteins is as lost on me as observable collections and custom data templates are a mystery to my mother. But even without any medical understanding, it’s pretty obvious how WPF allows rich data visualization of these things and combined with a backend collaborative server, there are capabilities here that are applicable in many other industries.
The client interface for this application is written entirely using C# and WPF; it presents data in a Viewport3D using some pretty mind-bending mathematics. The use of Sharepoint as a backend is a nice touch, since it provides great flexibility for storing unstructured data and giving the researchers the power to add additional fields or data without requiring OLTP database expertise.
Although the full application isn’t downloadable, Interknowlogy created a community version for the Windows Vista launch that provides instant gratification for those of us who are itching to just play with new WPF applications. You can download it from the Interknowlogy site – it includes a few molecular structures that you can open and spin round using the mouse – use the Shift and Ctrl keys as modifiers to enable additional functionality, and right-click on the canvas to switch between view types.
If that wasn’t impressive enough, the Interknowlogy guys figured out that most of what they’d built was applicable to many other 3D modeling environments, so over just one weekend they stripped out the biomedical parts and wrapped a number of unmanaged APIs supplied by Autodesk so that you can use the same tools to manipulate and view an AutoCAD file. That application is also available to download from their site, and offers amazingly high performance given that WPF doesn’t aspire in any way to be a platform for high-end 3D CAD/CAM work. These are not simple models by any stretch of the imagination – the models are several megabytes in size and contain many individual elements. I was truly surprised that the performance is as good as it is – on my desktop, I’m getting 20-30fps on even the most complex sample drawings.
There’s tons more information on these applications on the Interknowlogy site – I’d encourage you to check it out; I know they’d appreciate me telling you that they’re available for consulting and custom development work, if you want the help of a solutions integrator with WPF experience and a solid track record of integration with other parts of the Microsoft platform.