VTK: New 2D API, Canvas and Charting Features

Since joining Kitware in October, one of the first projects I was tasked with is revamping the 2D charting capabilities in VTK and ParaView. At first I was a little daunted as it meant digging through many of the internals of VTK, and breaking an assumption that is made in many parts of VTK - that everything being rendered is 3D.

A large portion of this work is also being driven by the InfoVis features in VTK, along with project Titan that we work on with some really interesting people from Sandia National Labs. The project grew quite a bit from its original scope, and I have now added some new 2D API that uses OpenGL as a backend, with the scope to add further backends in the future. I have been working on optimizing the OpenGL case so that large data sets can be rendered interactively, and small data sets can be rendered with minimal lines of code whilst giving pleasing visual results.

ParaView with 2D API canvas based VTK chart

Then when considering user interaction with these 2D elements we decided that a higher level API would be useful, that could contain objects and propagate mouse events to items in the scene. So I set about prototyping a new canvas based API. At this point I had enough new infrastructure that I felt it was about time I got back to my original task of implementing some efficient, well rendered 2D charts in VTK. Once I had my initial prototype in place it was time to expose this in ParaView and see how everything fitted together. As you can see in the screenshot above, things are shaping up very nicely. The new chart is in the bottom right widget, the chart above is the existing chart widget.

I have really enjoyed my first few months at Kitware, and have found my first project both challenging and rewarding. It is great to be working on real problems that have a broader impact, and as I flesh out these features I will try to maintain cross platform, high performance interactive charts. I think I have also added some useful new 2D focused API that can also be rendered over the top of VTK's existing 3D visualizations, opening the door to some very exciting new views on data.

As a physicist I also feel it is interesting the symmetry - Qt adds 3D to a 2D toolkit, and at the same time I am adding 2D to a 3D toolkit. Hope you all have a Merry Christmas, and a Happy New Year. I will be tracking Santa with my son this evening!

Disclaimer: The opinions and musings in this post are mine, and not those of my employer. Any mistakes/inaccuracies are also mine, that said I would love to hear what people think of this new work.

I'm Going to Camp KDE 2010

Life has been so hectic since I moved to upstate New York to start my new job with Kitware. I am very pleased to say that Kitware is sending me to Camp KDE 2010 in San Diego, CA 15-22 January. I will be presenting a talk on CMake, the new features in the recently released 2.8 version, and some of the less well known features of the CMake package, including CTest, and CDash. In addition I will be running a CMake training session for anyone who would like to learn more about CMake.

I'm going to Camp KDE 2010!

I attended the first Camp KDE last year in Jamaica, and am very pleased to be attending the second Camp KDE next year in San Diego. Last year I focused on my work in packaging and open source chemistry visualization. I also met Bill Hoffman, who talked about CMake and am now working with him and many other talented people at Kitware. My wife and unborn child also attended the first Camp KDE. Now we have a six month old in the 97th percentile for length, weight and head size who will be joining my wife and I at Camp KDE 2010. I am trying to teach him to count from zero so that he has a good head start when he starts coding ;-)

I won't be talking about any of my work in open source scientific visualization at Camp KDE this time, but if any of the attendees are interested I would love to discuss it and will have a few slides for a short impromptu talk...



Big Snow!

As some of you may remember we moved up to Clifton Park, NY in September. From when I first met Bill at Camp KDE in January he told me about all the snow they got up here. To be honest I was starting to doubt him, and then we got some snow on the weekend and I was really excited. Today I woke up, looked out and saw we got a lot of snow! I am not disappointed, possibly a little overwhelmed...

Snow, lots and lots of snow!

I think I am going to like it up here, Dax loves it and William is not too sure what to make of it right now. They just plowed the road (not our big drive though), and so I may try to venture into work soon. Of course Dax and I had a big play in the snow, and I think we are going to have to buy a sledge as soon as possible.