Great WPF Applications #9: Scripps Institute Cancer Research
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.
Comments
Anonymous
February 14, 2007
The comment has been removedAnonymous
February 14, 2007
The comment has been removedAnonymous
February 14, 2007
Rod, it's hard to know without more information on your machine. WPF offloads a lot of graphical processing onto the GPU, but you need a video card that implements DirectX 9 in hardware for that to happen. If you don't have that, then it renders everything using the CPU - which is bad news if you've got a weak GPU and a very old CPU. How old is the machine?Anonymous
February 15, 2007
Tim, many thanks indeed for your response. The magic phrase was 'DirectX9'. I downloaded 9c then a new video driver for the GPU which is a 5 year old(!) GeForce3 Ti200, and voila, I am 'turning the pages' at full speed whereas before the whole thing was a horrible mess. Very, very impressive. I was lucky with this card as it is 128Mb with pixel shading (of sorts), not sure about the WDDM driver side. I have also found the Vista upgrade advisor a very useful piece of kit and it tells me the card will not support Aero, so new card on the way. The moral of the tale for me is to check my video specs, but I think it's good to be aware of a potential 'digital divide' and there might be areas where creeping forward with 2D WPF development is the safer bet because of end user hardware (assuming 2D calls are indeed less demanding on the GPU). So, a big thank you maestro!Anonymous
February 15, 2007
I can tell you this, Rod, and you will never hear this from a Microsoft employee (although i doubt Tim minds me saying it here)...and that is that when we did our scalability and stress testing we were shocked at how better performing WPF is on Vista than it is on XP. there was nothing really scientific in our testing and our sample was hadly adequate (our one 3d application and just a handful of machines). but, it was and still is clearly noticible by all of us. i don't understand enough of the internals to justify speculatiing on why, so it's truly a guess when i say that i think it's becuase the wpf plumbing it inherent in the vista os and not a bolted on install to xp. i'd love to here a real expert's view on this, though.Anonymous
February 15, 2007
Rod, you make a good point there. Application authors can test the capability of a target machine by querying the System.Windows.Media.RenderCapability.Tier property. If its value is 0x200, then you have full Tier 2 hardware acceleration; if 0x100 or 0 then the machine is running at Tier 1 or Tier 0 respectively. Tier 0 is entirely software rendered, and it wouldn't surprise me if your machine was operating previously at that level; I'm guessing that you now have Tier 2 capability. Glad you're up and running!Anonymous
February 15, 2007
Hi, I'm the developer that wrote all of the molecular rendering code for this app. I can honestly say that this was the most fun I've ever had writing a business application. Besides an intro graphics course in college and a little playing around in my free time, I really didn't have any 3D experience. I found WPF to be intuitive and easy to understand. It's a great way to get introduced to graphics programming since the platform abstracts away a lot of the complicated low-level stuff like memory management and coordinate space transformations.Anonymous
February 15, 2007
To the 2 Tims, thank you for your help and comments, it is most appreciated. I will make sure a tier check goes in - bit like browser detection. CHEERS!Anonymous
February 19, 2007
this is indeed an awesome application. I just used the WPF app in a presentation and the richness of the graphics will all the features kevin and the IK folks programmed into it worked out great. It really gives a contextual handle on the huge volumes of data that we are collecting in the life sciences. This does truly enable collaboration at a much grander scale than previously possible. again, thanks to the IK teams and MSFT for enabling this.Anonymous
March 18, 2007
hi tim the links to interknowlogy do not seem to be working. it could be a temporary thing, thoughAnonymous
April 17, 2007
yea, we had a little issue and it took us software folks a bit to convince our network folks that we had a problem - sound familiar? :) As it turns out it was one of the isa servers in the farm. if you hit that server in the farm you'd see a problem. it's fixed now. sorry about that.Anonymous
June 04, 2007
Acropolis is CTP! The WindowsClient.net site says: Acropolis builds on the rich capabilities of Microsoft