Skip to content

Blue Obelisk Award

At the recent ACS Spring meeting I attended the Blue Obelisk dinner, where I was honored to receive a Blue Obelisk award, pictured below, for my contributions to Open Data, Open Standards and Open Source. This is largely due to the work I have done on Avogadro, Open Babel and other open source chemistry tools.

Blue Obelisk award

This was one of the biggest dinners I have had the opportunity to attend, and I got to meet many of the people I have worked with (or used their work), along with several people I had not had the opportunity to work with yet, but hope to in the future. We presented the work we had been doing on Quixote project at the chemical information symposium on chemistry and the internet, after attending the first Quixote meeting the previous week (thank you to Hartree Centre for inviting me to speak there, and sponsoring the event).

These are exciting times, thank you very much to Peter Murray-Rust for presenting me with the award, and all of the support he has shown, along with his relentless passion for open science. I have only been a part of this for a few years, but Peter has been working on opening up chemistry for decades now.

Visualization Toolkit (VTK) in the Google Summer of Code

As I already mentioned on the Kitware blog, the Visualization Toolkit (VTK) has been accepted as a mentoring organization for Google Summer of Code this year. You can see the VTK entry in Melange, and browse through our project ideas. I have taken part in the Google Summer of Code program since 2007 (first as a student, and later as a mentor) as part of the KDE project. I still maintain close ties to KDE, and work on several related projects such as Avogadro, CMake and VTK. VTK has Qt integration, and ParaView builds on both VTK and Qt for the visualization of large scientific data sets.

If you are a student, and would like to work on an exciting open source project, processing and visualizing some of the largest scientific data sets in the world, take a look at the Visualization Toolkit. There are a wide range of ideas, and if you have an idea you think would fit then please feel free to discuss it with me. I will let you know if it would be a good fit, and whether we have available mentors for the proposed project. We have mentors available who are experts in visualization, large data, parallel algorithms and related technologies. The core of VTK is written in portable C++, with new changes being tested daily. Our API is automatically wrapped in Python, TCL and Java.

I am very excited about VTK's first year in the Google Summer of Code, this represents a unique way for students to get involved in a large, well tested open source project. We have started using Gerrit for code review, and you can view build and test results on many platforms for VTK both continuously and nightly. We have a well established software process which will serve you well in any project where software quality is important, with nearly 1400 unit and regression tests. This is a large, collaborative project with more than 100 contributors last year (as measured by Ohloh).

CMake External Projects: Building Project Dependencies

Historically projects have attempted to minimize their dependency list, and often bundle in small third party libraries in an attempt to make things easier for new developers/users to compile their code. In the Avogadro project we have bundled a few really small libraries, but on the whole have maintained a dependency list and tried to keep it smaller. As I work on new code, I see opportunities to break off bits of functionality, such as with OpenQube, but don't want to add yet another thing a new user or developer must download, compile and install somewhere.

Linux packagers, myself included, dislike the practice of bundling in libraries. It means that instead of patching one libxml2, we get to patch one plus the three or four in our tree that have been bundled (often with different version, some local patches). The problem is less pronounced on Linux where package managers are ubiquitous and we are able to provide a list of packages to install, but even there we might be developing against versions not yet in the main distribution repository. This is one of the reasons I have always favored rolling release distributions over the periodic.

CMake's external project module helps us to deal with this issue in quite an elegant fashion. Coupled with meta repositories to bring several source trees together, CMake is able to direct the build of several projects, passing locations between projects and expressing dependencies between the projects being built. This means that something like Open Babel can build zlib and libxml2 before building the main Open Babel library. External projects and CMake allow us to download the source, create the build trees and even direct the build of non-CMake based projects like libxml2.

I have a prototype of this that I just put up to build the core of Avogadro, its working name is Avogadro Squared as I was feeling geeky that day and had no good names. One thing you should note is that everything in there is an external project, and Avogadro is the last one to be built (it depends on all of the other projects). It requires minimal changes to the projects it contains, it uses git submodules for some of the source, and CMake's download and tar functionality for zlib and libxml2. I will be adding options to simply use system versions of the libraries it can build, but Linux distributions etc can continue using the Avogadro repository directly.

As a new developer or user I can checkout the meta repository, have git download the submodules and CMake download the source tarballs. I can then build the entire project, and then continue to work in the Avogadro subdirectory of the build tree after that. That build tree is almost identical to the one I would have ended up with had I not used the meta repository, except it points to the dependencies I just built. I can then use vim, and IDE or whatever I choose to work on the inner projects. This works across Linux, Mac and Windows to get new users and developers up and running very quickly while only loosely coupling the dependencies to the Avogadro project.

I have worked on other larger projects, such as Titan and ParaView that are using this approach to a greater or lesser extent. Titan can actually built Qt, Boost, VTK, protobuf, Trilinos and a host of other dependencies before building the Titan libraries and applications. I think Avogadro Squared is an example of just how minimal a meta repository can be, although I will be extending it with more dependencies it really is just a glue repository.

Volume Rendering in Avogadro

Since joining Kitware I have had limited spare time to work on Avogadro, and for various reasons my spare time has been more limited than usual too. Since the new year I have been able to start spending more time working on Avogadro, and open source chemistry in general, thanks to an SBIR phase I proposal that was funded last year with the US Army Corps of Engineers. This is exciting for a number of reasons, including the fact that I have the opportunity to prototype exciting new features for chemistry visualization, workflow and data management.

One of the new bits of work I have been doing is to use some of the advanced visualization techniques in VTK such as GPU accelerated volume rendering. Now the code is still pretty rough, and is more a proof of concept. I wrote a simple external Avogadro extension that links to and uses VTK to render the first volume found in the current Avogadro molecule. All of the parameters are currently fixed, I am hoping to get the time to add in more options along with some integration of the Avogadro rendered molecule in the VTK render window. You can view the code here, please bear in mind it is at a very early stage.

I have also been working on several other things such as splitting out the quantum calculation code from the Avogadro plugins, and putting it in a small library. I have called the library OpenQube, right now it only has the base functionality that was in Avogadro but I will be extending it with more features, regression tests and I am hoping due to the decoupled nature and liberal BSD license it will encourage wider collaboration in this field.

There is also the Quixote project which I am very excited about. Meaningfully storing the results of quantum calculations, annotating them and retrieving them within an open framework. This is a growing problem in todays world, and I am working on extensions to Avogadro to allow it to fully exploit the semantic chemical web. This includes some of the previous work to access the PDB and other public resources as well as private databases within groups and organizations.

I think this is going to be a very exciting year for Avogadro, and open source chemistry in general.

One Year at Kitware...Already?!?

It is hard to believe, but I have been at Kitware for just over a year now. How are things going? I would say very well...I am very pleased I made the move, and that Bill Hoffman pushed me into applying after meeting him at the first Camp KDE. Kitware is growing fast, we are always on the lookout for new talent and I am already starting to feel like an old timer with all of the new employees joining.

I had my first ever annual review, which went well. We received word in September that my first SBIR proposal had been accepted, and we are working on getting the contract in place for that. So watch this space - a great collaboration coming up working on open source chemistry visualization, editing, database integration, and computational chemistry input file generation along with analysis of the outputs. I think this is a great opportunity to extend VTK, and Avogadro.

I took a very active role in our migration to Git, and I am pleased to say that it has been going well. I also more recently got Gerrit up and running, introducing tightly integrated code review to some of our open source projects at Kitware. I played a large role in setting up one of our most complex build systems to date for Titan, where it can build Qt, Boost and VTK (among other dependencies) using CMake's external project features. I have also had the opportunity to work with some of the Boost developers, and am helping with their build system work.

I have mostly concentrated on 2D rendering in VTK, using OpenGL. I replaced the existing 2D charts in VTK and ParaView with new charts using a new 2D rendering abstraction. So we now have a selection of chart types, with interactivity, that can be used on both client and server side. More recently I have been going even lower level, and working on FreeType font rendering in VTK, and seeing what I can do to improve the capabilities there.

There is lots of other stuff, some of it I have talked about here, and other bits I will when I find time. It has been a great first year, and looks like it is shaping up to be an even better second year. I feel very lucky to be getting paid to work on open source, open science and I get to work on some very interesting problems that help real scientists. Going forward I hope to introduce more scientists to open source, open data, open standards and collaboration platforms. I am very privileged to have worked with so many forward looking scientists over the last few years, and am a proud unmember of the Blue Obelisk.

I think Kitware is the perfect place for me to push forward open source in science, and am refreshed that I rarely need to push anyone here in that direction. I have been driven to learn a lot of new things in the past year, and it has been tough at times, but I have thoroughly enjoyed it. There are some really amazing projects coming up in the next year - so watch this space!

England: Open Source Chemistry and Real Ale

In September Louise, William and I went to England for a little over three weeks. It was a great opportunity to catch up with friends and family, and because we needed to stay for an extended period (in order to obtain new visa stamps), it also seemed like it would be a good opportunity to meet with researchers around the country and talk about open source, software development, chemistry, physics and the role that I and Kitware might play in improving the field.

As we landed at London Heathrow on Monday, we parted ways hours later at London St Pancras station. Louise and William headed up to Sheffield to catch up with family, while I headed up to Chester for the first Open Babel developer meeting. Chris Morley kindly hosted the event, and it was the reason I came out as early as I did. It was great to see Chris and Noel again, as well as meeting Tim who has been a long time Open Babel and Avogadro contributor. In addition to all of the development discussion Chris gave us a great tour of Chester.

After that it was our third visit to the US embassy, to get new visa stamps. After a little drama, and having to keep a toddler entertained during the hours of waiting, all was well and we went for a little pub food before doing some shopping on Oxford Street. We spoilt William by buying him a Paddington bear from Hamleys, and eventually got the tube to our friend's house. This was the first time I had ever had afternoon tea, with the little cucumber sandwiches and everything. We tried it at a little cafe in Harrow on the Hill, and it was very nice. William loved the chocolate cake from the bottom tier.

On the way back up to Sheffield we took the opportunity to visit another friend in Harpenden, and then I spent a whole day in Sheffield before heading out again. This time I was off to visit a friend in Lancaster University, who had invited me to give a talk after another researcher had told them about all the cool things they had done with Avogadro. The talk went well, and we veered off into how Kitware can make profit giving its software away, version control and software process.

I had an even shorter stay in Sheffield before heading back out to Manchester, and Daresbury Laboratory, developers of GAMESS-UK and DL Poly among other codes. It was great to go back out to Daresbury Lab, and I was very graciously hosted by Jens. I had previously been invited to a workshop he organized to talk about tools and visualization in chemistry in early 2008. I had the opportunity to present what had been happening with Avogadro development, and many of the new things I am doing at Kitware in both VTK and ParaView development. We also discussed licensing, open source and how scientific research can benefit from this approach to software development.

I had the opportunity to meet quite a large array of the developers at Daresbury in the two days I spent there, as well as help Jens with some Open Babel and Avogadro development. We finished off the week with a visit to the University of Liverpool, starting off with a tour of the centre for materials discovery. After that I gave a very brief talk, and a fuller live demo to a group that does mostly computational chemistry research. We rounded off the day with a walk around Liverpool, and a great meal before a long train ride back to Sheffield.

After a brief morning with my family I was off again, to Nottingham this time for a friends wedding. I hitched a ride with another good friend who was also at the wedding and now lives in Bristol, which luck would have it very close to Cardiff. I spent a really fun Sunday in Bristol checking out the city, and the historic village of Clifton before getting a train over to Cardiff (Wales) to meet with more chemists.

This was my first trip to Cardiff, and it was very fun. I visited the chemistry department at Cardiff University, where I gave another talk about Avogadro and some of the new things I am doing at Kitware (and planning to do). The talk was well attended by quite a cross-section of people (even a few ParaView users in the audience). I gave another live demo (I should do them more often) to show off some of the features of Avogadro. Peter Knowles (one of the principal Molpro developers) kindly hosted me while I was in Cardiff.

After a morning working on some code with Peter, I headed to the train station on Tuesday afternoon to get back up to Sheffield. This was almost my final visit, and I have to say I thoroughly enjoyed visiting so many people, but it was exhausting and I still need to sort through a backlog of email. After seeing so many people I see a real need for Avogadro, and improved visualization and software process in computational chemistry. I am also very encouraged by some of the codes going open source (NWChem after I got back), and some that will likely to go open source.

Tuesday evening to Sunday was my Sheffield time. I went into my old department to present some of the work I do in scientific visualization (Avogadro, VTK and ParaView) to people at the University of Sheffield, largely with a focus on materials science. A fire alarm went off as I was being introduced, and we weren't allowed in for twenty minutes...that was disruptive. Most people were able to return after the unplanned break though, and I got a lot of interesting questions from the audience, along with several going away to download what I had just shown off.

William met lots of family while I was traveling the country. I also managed to get out for some real ale, and visited Kelham Island on the Thursday evening. I also took the opportunity to get in some full English breakfasts, "real" bacon and the classic fish and chips. We went out for a few curries too, I miss the curries you can get in England. It was great to catch up with old friends and family, although I didn't get chance to see as many as I would have liked.

On Sunday we got a train down to London, and stayed in a nice hotel during our final night in England. We took William to the palace, but the queen was unavailable to host we headed back to our hotel, grabbed our bags and made our way to the airport. Travel went quite smoothly, once we got back into the US we picked up our rental car and drove back up to Clifton Park. Not sure I want to do that again, but it was great to be home.

Since then work has been keeping me very busy...I have been working on this post for about two weeks and only just found time to finish it off. Hope you enjoy reading about my adventures. It was great to get back after almost two years away. I am very excited about the work I am doing in computational chemistry, and feel that we are on the verge of accomplishing great things that will have wide impact. More to come on this soon, I am certainly very happy to be where I am and to have the opportunity to work with such a great community.

Back in England

We are back in England after nearly two years away, we landed yesterday morning at London Heathrow. We flew with American Airlines this time (my first time with them), and I must say that I still prefer British Airways - they give you free drinks and I remember the staff being friendlier. The flight went well, and they got us in on time, immigration and baggage claim was all very simple, and so I was pleased the travel went well. William was a little angle on the flight, after letting him run around the airport for a few hours.

This is William's first time in England, so after getting the Underground to St Pancras Louise and I parted ways. She headed up to Sheffield with William, and I headed up to Chester to get my geek on. I will be spending the next couple of days talking with Noel, Tim and Chris about Open Babel development, CMake, Git, Gerrit and open source chemistry software i general. It should be a lot of fun, and while I have not had anywhere near the time I would like to work on open source projects in general, I think some of the things I am doing at Kitware might be useful.

Then Louise and I will be meeting up in London, staying with friends so that we can make our third trip to the US embassy to ask for another visa stamp. All of the forms have changed since we last went in 2008, and our visa type has changed. Hopefully that will all go smoothly, then we will visit another friend before returning up t'North together. I should finally make it up to Sheffield myself on Saturday, but plan on heading out on the Sunday. I have a week of meeting with chemists, physicists and materials scientists, mainly of the computational persuasion, to talk about cool stuff I am doing and what they are doing.

There will be a short intermission on the weekend for a friend's wedding, before continuing another week of talking to scientists. One of these visits will take me down to Cardiff, where Torchwood was filmed. So I am doubly excited by seeing the city where one of my favorite Doctor Who spinoffs was filmed, and meeting with more people to talk about quantum chemistry, electronic structure and visualization. I will be ending my time in England on this trip in Sheffield, meeting with old supervisors, friends and coworkers, talking about what I am doing now and how we might work together in the future.

I am also hoping to squeeze in a generous helping of real ale, some fish and chips, a few full English breakfasts and time to catch up with family and friends. Despite being back for quite a long time, and initially wondering what we would do, I find I don't have nearly enough time to meet with everyone I would like to and catch up with all of my old friends. We should try to make sure we come back more often! I think this post is long enough already - looking forward to getting out and about in England after my long absence. We will be looking around Chester later, before getting down to business.

Returning From Hibernation...

Wow, I just looked and I haven't written a thing since January! For those of you who might have been worried, or just wondered what I was up is a quick run down. I am going to start with a little advice, combining starting a new family with moving from academia to industry and moving house it tough ;-) I have been really focused on work, home and one big conference, and kinda shut down otherwise.

I hope to remedy that in the coming months, and have started by doing some development for Avogadro and Open Babel. I also got Kalzium in KDE trunk ported to use the system Avogadro library, with some help from Pino Toscano. So KDE 4.5 will feature a Kalzium using the system installed Avogadro, this prompted a couple of bug fixes in Avogadro. So after that I tagged and released a much delayed Avogadro 1.0.1 with several bug fixes.

Way back in March Kitware was kind enough to send me out to the March ACS meeting, where I presented a talk on VTK, ParaView and its use in chemistry. I also gave a talk on Avogadro, and its use as a framework in chemistry visualization, which Geoff followed up with a talk on some applications of the Avogadro framework in his research.

The ACS conference deserves a full post of its own, but I feel like it has been so long I will just summarize a few of my thoughts. There were some other really interesting talks on visualization, and how it can be applied in chemistry. I got a general feeling that commercial software still has too much of a stranglehold, and hope to see that change as we develop powerful open source platforms that can be shared by all. There is a definite need for this in chemistry, and I am doing everything I can to seek some funding to further that cause, failing that I will continue to do what I can in my spare time.

I was honored to meet members of the Blue Obelisk for the first time. Saw some great talks about open science, open data, open standards and open access. I especially enjoyed meeting and seeing Peter Murray-Rust talk for the first time, I found that I share many of his ideals. I think we differ in some places, but life would be boring if that were not the case!

Our son, William, is nearly one year old already! He might be a big part of the reason why I have been inactive. The kinds of sleep deprivation torture you go through with children are indescribable :-P He is thankfully sleeping quite well now, and even took his first two steps yesterday.

We had our first visitors in our new home - friends from Pittsburgh and Washington DC all came up for a weekend. I fired up our new BBQ, an enormous American style with offset fire box. Made some amazing ribs, and shared some of the home brew I made - a portable porter, and an English brown ale (first two batches). We are just getting ready for a trip to Pittsburgh, and then William's first birthday (planning a small party at our place).

Then there is work, lots of exciting things are happening there. I taught my first course at Kitware, going through ParaView plugins. The new CMake book came out (I am one of the contributors to the new edition), and the new VTK book came out at around the same time. Kitware is hiring, so please let me know if you are interested in applying. We have some really interesting projects to work on, most of my time is spent on something called Titan. Last Friday I also pumped the tyres up on my bike, and rode into work for "Bike to Work Day".

I have skipped loads of stuff, but already wrote more than I intended. I will see if I can be a little more disciplined and write more frequently. My current problem is finding time to fit everything in, but I have a new strategy I am working on in order to do better. Life after the big 30 is certainly different. I feel energized again, and hope to be writing about more fun and interesting stuff I am doing over the coming months.

New Kitware Developer Blog

Yesterday Kitware launched a new developer blog. There are categories for the different areas Kitware operates in, such as software process (CMake && friends), scientific visualization (the area I work in, e.g. VTK, ParaView), and our work in open source, which I am very passionate about. Check out Will Schroeder's post on Why Open Source Will Rule Scientific Computing, I think he makes some great points - in my own research career I witnessed how inadequate closed source options often are.

Bill Hoffman's post on Deploying on Windows with DLL Manifest Issues is something near and dear to my heart, I posted about similar issues last year in DLL Hell...The New DLL Hell? These recent changes will certainly go a long way to ensuring future developers can more easily validate Windows packages before distributing them. You can also check out my first post on visualizing the commit history of the VTK and CMake repositories in VTK and CMake Code Swarms.

I will get some more technical posts up soon too! Exciting things happening, still enjoying my new job at Kitware.

Disclaimer: The opinions and musings in this post are mine, and not necessarily those of my employer.

Another Post About Camp KDE 2010

There have been lots of posts about Camp KDE on Planet KDE, along with posts and a stream of photos on flickr. It has been a great event so far with some really interesting talks. I especially enjoyed Philip Bourne's talk on open access to data which is very close to my heart, but noted that many parts of the stack used are still closed source. My background in Physics and Chemistry tell me that this needs to change. Open access data without open source tools to create, store and view that data is only addressing one part of the problem. I hope to address other parts of this issue in the work I am doing at Kitware

Celeste's talk was also interesting, and I found out that I may be an OCD interface design guy (many of the points she outlined bugged me in projects I had worked on, especially consistency in interfaces, grammar, etc). Great talk, and illuminating for someone like me who has not worked with anyone in this field before. Then of course there was Till and Alexandra's talk on career opportunities in FOSS, which was a great talk and I found myself nodding along with them. My windy path was not quite so glamourous as rock star or opera singer, but I can certainly identify with them. I instead pursued a degree and a PhD in physics research (largely experimental too), only to find I was extremely passionate about developing software to edit and visualize the data, rather than spending months in the lab.

This is not even the end of the first day, and so you can tell it was a great conference. Jos talked to use about marketing and then Artur presented his take on KDE form the desktop to the pocket. I still really want my own N900 to experiment with taking scientific visualization to the pocket (I have the desktops, laptops and a netbook to play with already). The next morning began with Frank presenting his vision of open source in the cloud, I find myself using the cloud more and more (especially now I have a Droid), but share his concerns and wish to create AGP led alternatives that can be easily deployed by both companies and individuals.

I also really enjoyed Romain's talk on the state of KDE PIM/KDE Windows, with live demos (warts and all). It also nicely segwayed the need for automated testing in order to improve the quality of KDE on other platforms, as well as use our limited resources wisely. I presented my talk on CMake, CTest, CDash and improving the software process in KDE. I think the testing framework can really help KDE developers by providing continuous feedback about platforms not everyone has access to. There are already quite a few KDE projects on, and I would like to improve that and possibly use subprojects to divide the projects up into manageable pieces.

More great talks from Leo, and we ended the day with plasma talks and demos from Marco and Chani. I don't want to reproduce the schedule, but needless to say we had a great set of talks (all of which were taped and should be available soon). Thanks go out to Jeff and the ground team here for organizing the event so well. Monday was taken up with some more technical talks, Will's talk on the build service is something I would like to use in the future and see if we can get it contributing build/test results to KDE dashboards. The day concluded with CMake training run by me. I really enjoyed the dialog that was present in many of the talks (mine included), and got some great feedback about the training afterwards. I would love to do this again at future KDE events, and from the feedback I received it would seem others would like that to. It was very strange not to talk about any of the scientific visualization work I am doing, one of the first conferences in years where I have not.

Tuesday was the traditional trip day, and we checked out Stone Brewery, tried some excellent ales and then had dinner at one of the longest tables I have ever eaten at. William was of course in attendance, as the youngest attendee. After that we braved the driving rain and winds to get back to the UCSD campus. I took the opportunity to catch up on some work, and recharge my batteries a little ready for the Qt training that is being offered by Till Adam of KDAB today. Looking forward to a day of learning and admiring the sun this morning! The company has been great, and I am very pleased I was able to make it along. This is my first business trip for Kitware, and I am very pleased they sent me along, and that NAMIC sponsored my attendance.

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.

Kitware at Camp KDE, Software Process Talk and CMake Tutorial

Kitware is very kindly sending me to Camp KDE. I will be giving a talk on Sunday about CMake, testing, software process and new features in the recent CMake 2.8.0 release. I will also be running a training session on CMake on Monday afternoon. See you all there!

I will also be available to talk about many other things, such as the migration to git, open source chemistry, open science and scientific visualization. Since I joined Kitware I have been exploring some crazy cool ideas in new areas of visualization too, hopefully my influence has not been too disruptive. I will be on the lookout for potential Qties to join my team of Qties at Kitware - be warned ;-)

Camp KDE

Looking forward to my second Camp KDE! We should arrive in San Diego Friday afternoon, not looking forward to the security lines... I will of course be bringing my spawned process (now named William), who was but a bump at the last Camp KDE. His Mum will be in attendance too, having to travel on her birthday. I am in the last few weeks of my twenties, so be kind.

Google Tech Talk on CMake

Bill Hoffman gave a Google Tech Talk on 7 December 2009 at Google's New York city office on CMake, CTest, CDash and CPack. Google recently made the talk available on YouTube.

I wish I could have made it down with Bill and Will to see Google's New York office. For anyone attending Camp KDE, I will be discussing some of these concepts there too, but with a focus on the software process and testing components of CMake.

Avatar and 3D

The Wednesday before Christmas several of my new coworkers from Kitware went to see the new Avatar movie in 3D. I haven't been to the movies much recently, generally just using Netflix to watch movies at home. I have to say it was well worth it, and I have been trying to talk Louise into going to see it with me again. We saw it at the local IMAX, and the images really popped out of the screen. It was a little off putting that they use linearly polarized light, so that the effect is lost when tilting your head. I would highly recommend that you make the trip out to see it in 3D, and hope to figure out babysitters and all that stuff so that Louise and I can go and see it before it leaves the big screen.

The story was quite engaging, but I did find it really quite lame that the mineral they were mining was called "unobtanium", or that is what is sounded like. They could have chosen a better name, but it at least it seems to have been used tongue in cheek. That said I moved my head out of the way once or twice when an object swung around. It was also amazing how much emotion was conveyed in the characters, and how tough it was to tell where the CG and real sequences were joined.

I would love to have access to 3D of this quality on my desktop. When are the 30" 3D monitors due out with Linux and OpenGL support?!?

The End of the Noughties

It is hard to believe the noughties are over - happy new year! It has been a decade of extremes for me on a personal level. It started with me going back to university, which was very challenging and rewarding. I attained a first class degree in Physics, and enjoyed it so much that I decided to stay and study for a research doctorate in nanomaterials. I was very look to work with Tim Richardson and Neil Cowlam who really allowed me to explore the field and go off on some really interesting tangents.

During my Ph.D. research I found the time to get involved in open source development, first with GentooKDE. I was lucky enough to be selected for a Google Summer of Code project in 2007 right at the end of my Ph.D. research. I spent most of my time working on Avogadro, Kalzium and Open Babel.

After that I was really hooked on open source development, and was offered a position as a postdoc by Geoff Hutchison in his new research group at the University of Pittsburgh in the chemistry department. This was a really big move from Sheffield, UK to Pittsburgh, PA in the USA. I learned more than I ever wanted to know about visas and working as an immigrant in another country.

These were certainly some of the high points of the decade, but it wasn't all good. In the middle of the final semester of my undergraduate degree we lost my little brother. This was a very difficult time for us all, and influenced my decision to stay in Sheffield over the next few years with my family. Then on the day I found out that I had been accepted into the Google Summer of Code program, as I was writing up my thesis for my Ph.D., we lost my sister unexpectedly too. I found out just how trusting and understanding relative strangers in the KDE community could be, and will always be thankful to them. Of course my friends and family were all there for us too.

During all this I met Louise (at the end of the nineties), and in 2005 we got married. Weeks before our wedding I attended a conference in Japan, and London was bombed the day before I returned from Japan. Roughly a week before our wedding Sharm el Sheikh in Egypt was bombed (our honeymoon destination). Even days before we weren't sure if we would be able to go on honeymoon. In the end we had a great wedding and an amazing honeymoon.

So much more happened, I think I have some great material for memoirs. I do worry whether people will really believe it all happened - the noughties were a real roller coaster ride. In 2009 my son was born, the birth did not go as planned, then at nine weeks he got a UTI that turned into E. Coli in his blood. I found out that I am an overprotective father, and that the doctors and nurses at the Childrens hospital in Pittsburgh are very good.

I also attended Camp KDE, met loads of amazing people including my future boss. Even that was far from simple, from an amazing start, to a suboptimal interview (I will tell you over beers), to the decision to hire me, then the visa gauntlet I ran to our eventual move more than six months later.

I have to say that we are extremely happy now we are in Clifton Park, NY. I love my new job at Kitware, the area is great and we have been made to feel very welcome by everyone at Kitware - especially Bill and Naomi. I think the next decade is going to be a good one, and have my fingers crossed for no really bad things.

I wish everyone a very happy new year. I feel very lucky to have such a great job working on open source code, with a generous hardware budget to buy new toys. If I could just talk them into getting an espresso machine everything would be perfect! We are on the look out for more Qties (pronounced "cuties"), and I am hoping to become lead Qtie ;-) I am really looking forward to Camp KDE in a few weeks, and all the work I will be doing at Kitware in the new year.

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.