Skip to content

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.

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.

Avogadro 1.0.0 Released!

It is with great pleasure that I announce the release of Avogadro 1.0.0. After many years of work we have released what we consider to be a stable Avogadro release on Mole Day, which seems appropriate given the projects's name. There are still some rough edges, but I think this is a good release. With your help we can fix bugs in the release while working on new features in trunk.

Avogadro - Code Swarm from Marcus Hanwell on Vimeo.

What better time to look back to the beginnings of Avogadro. There was a blog post made today by Sourceforge about Avogadro detailing a little of that history. I have also made a code_swarm movie visualizing the history of the Avogadro project. There have been quite some changes in that time both at a project level and a personal level.

I would like to thank Google for sponsoring me for a GSoC project in the summer of 2007. Also Geoff Hutchison for giving me the opportunity to work with him at the University of Pittsburgh on interesting computational and visualization projects. Then there is my new employer, Kitware, who have provided me with an exciting opportunity to push scientific visualization and cross platform development to its limits.

To finish off a great day, my wife has informed me my new espresso machine has arrived! I am going to Camp KDE in January too!

The Big Move and New Position at Kitware

On Monday 21 September we packed the majority of our belongings into the back of a Penske truck and made the 500 mile drive (in convoy - Louise, William, Dax and myself) from Pittsburgh, PA to Clifton Park, NY. Since then we have been unloading the truck, unpacking our things into our new home and doing all those things you have to do when you move house, and several things necessary when moving between states and jobs.

Me in the Penske truck before returning it

This is certainly the most rural house I have lived in since I was very young. We found a nice duplex on the outskirts of Clifton Park, it uses well water and I am the proud owner of the contents of two full propane tanks (no natural gas lines run out to the house). We also have a really nice wood fire in the living room, and I snagged the family room and am using it as a large home office! Thankfully they were able to hook up a cable Internet connection on Tuesday last week, and so I was not offline for too long.

Tomorrow is my first day with Kitware, I will be attending a training course being run by Kitware for the remainder of the week and so won't have my first day in the office until next Monday. I will be working in the scientific visualization group on projects such as ParaView, and have had lots of ideas for future Avogadro development over the last few weeks. I am very much looking forward to working in some new areas, but also to enhancing the previous research and development I have done in the area of visualization in chemistry. I am also looking forward to working on CMake.

Avogadro 0.9.7 Released

Avogadro 0.9.7 was released on 18 July 2009. You can download Avogadro here. I have been less involved in the development of Avogadro in the last six weeks due to a major event in my personal life. Still this release has some great new features in it, several of which I squeezed the time in to implement.

Some of the highlights include fixing a long standing rendering bug for our Linux users (me included) where garbage would be rendered right below the tab labels. This was a fix added to Qt 4.5.0 that I discovered while looking into the issue. A nice side effect is the new inline close buttons on view tabs. I also finally got detached OpenGL views into Avogadro, as shown in the screenshot to the right. It is a little clunky right now as you need to open a new view, and then detach it. I will clean up the interface for the next release hopefully. This allows for multiple views of the same molecular scene, which can be extremely useful for certain kinds of work.

Another long standing feature I wanted to implement is in too, the inline configuration buttons for our display types. If you can see the little wrenches, you can now click on them to configure that display type. This code was inspired by the inline close buttons that are in the Qt Creator open file list. Geoff worked making the configuration docks easier to hide, we now default to devoting roughly 90% of screen space to the 3D view, which I think is great. There have been several changes to how molecules are loaded/saved too, I am still hunting down some issues but this allows us to read multiple molecule files for example.

Today is the last day that you can vote for Avogadro in the SourceForge Community Choice Awards! Please cast your vote if you think that Avogadro is a great tool for Academia. Tim (one of our other dedicated Avogadro developers) posted about the release and the awards too. I would like to thank several people in the chemistry community who expressed their support for Avogadro on their blogs - Peter Murray-Rust, Richard Apidoca and Jan Jensen, along with so many others who have helped to promote Avogadro on Twitter, FriendFeed and other online services.

We hope you enjoy the release, whatever happens with the SourceForge Community Choice Awards it was an honour to be nominated. It was great to see all the support for the Avogadro project in the wider community too. It has inspired me to go on and do more with Avogadro - thanks to all of you.

Avogadro Auto Optimization Screencast

Geoff showed me a new screencast he created recently. It is made using the latest Avogadro, and is one of the first screencasts with our new and improved user interface. Geoff has also added some audio commentary with notes on the chemical relevance of the auto optimization tool. Check it out and let us know what you think - a new release of Avogadro is coming soon.

I will hopefully find the time to make a few new screencasts soon too. Between my one month old son, day job and waiting on my visa application (does not take any real time - some mental drain) I have not had much spare time to code or blog. Remember that Avogadro was nominated for the SourceForge community choice awards too - click on the link below to vote for us.

Avogadro Nominated for SourceForge Community Choice Awards

I am very pleased to announce that Avogadro has been nominated as a finalist in the SourceForge community choice awards this year. We are in the "Best Project for Academia" category, and I would like to encourage you to vote for Avogadro.

This is a real honour for all of us, and I appreciate all of you who nominated Avogadro. We are all pushing very hard on polishing Avogadro, getting ready for our 1.0 release. It would be absolutely amazing to see Avogadro win this award, so please vote for us.

Avogadro collage

There are also some other really nice projects in there too, such as Lancelot, ClamAV, phpMyAdmin and RepRap. So please take a few moments to place your vote, and tell your friends!

Update: You can vote even without a SourceForge account - just enter your email address and verify your vote.

Appeal for Help: Avogadro Toolbar Icons

Over the last few days we have been working on improving the look and feel of the Avogadro user interface. We owe both Qt Software and the Oxygen icon team a lot for making this process a lot easier. Avogadro uses quite a few Oxygen icons that we have taken and in some cases adapted slightly.

Avogadro toolbar

The sliver of screen shot above shows our tools tool bar, along with the tool and display settings buttons. We are pretty happy with the majority of the icons, which are (from left to right) draw, navigate, bond-centric manipulation, atom centric manipulation, selection, auto rotation (animated rotation about axes), auto optimise (continuous optimisation of the molecule geometry), z-matrix, measure and align tools.

I would really welcome any suggestions and/or icon submissions for the auto rotate (the spinny thing near the centre), and the auto optimise (the wand with the circle) tools. I think auto rotate is OK, but it would be better if it conveyed more of a three dimensional rotation. The auto optimise wand is perhaps the worst as it does not suggest optimisation of the geometry, but I am not sure what would. Do any of you more creative types have any suggestions?

I also wonder if there are nice icons we could use for tool and display settings, or a way to make those buttons smaller without losing discoverability. I look forward to hearing people's thoughts. As this is what people see when they first open Avogadro we would like to make the interface as inviting and intuitive as possible.

Avogadro 0.9.5 Released

Yesterday I tagged the Avogadro 0.9.5 release, you can grab the latest downloads from here. Life has been hectic this last couple of months, and to be honest I have not gotten as much done as I would have liked. Still there are some great additions such as the experimental cartoon ribbon display ported by Tim from the Zodiac Zeden project.

Avogadro 0.9.5

Geoff also worked on getting more screen real estate for the actual display, after we bounced some ideas around over the last few months. I think that looks great, and have always tried to ensure the maximum amount of screen space was devoted to displaying the molecule. I still have a few more ideas, but fear I do not have the time to implement them. Geoff also added a new peptide builder and David has been working tirelessly on plotting spectra.

I have been working on decidedly less glamorous and less visual aspects of Avogadro. This includes improvements to our build system, I added the infrastructure required to find and build plugins/applications against the system installed Avogadro library. I also uploaded a few examples to GitHub, and David is actively working on an external plugin for a summer project.

I worked on getting a CMake project that included and compiled both Avogadro and OpenBabel. I then turned my attention to making a relocatable, self-contained app bundle for the Mac. This is working quite well, although there are a few parts of the build system I would like to clean up. It does mean we have relocatable applications that can run from a USB stick on both Windows and Apple systems now.

I crushed quite a few bugs too, worked on API improvements and fixed Noel's long standing feature request - to disable the visual cues when navigating around a molecule. The original Windows installer shipped with a data loss bug, when saving a molecule the original could be erased and you would be left with a zero length file. This was a Windows specific bug that slipped through, I spent half of today tracking this issue with a few other Windows bugs and updated installers have been uploaded (Tim made the Python enabled installer). Please ensure you update to Avogadro-0.9.5-win32a.exe or Avogadro-0.9.5-python-win32.exe. Hacking on Windows has to be one of my least favourite activities, and I need a couple of days away from that whole platform before I can go back and finish some of the work I have been doing...

We are pushing to a 1.0.0 release, targeted for July. We would appreciate feedback on the interface, bugs encountered, the public API that is installed along with any other suggestions or offers of help. Our translations are now doing very well too, and any help improving them further would be appreciated.

Enjoy the new release, another is likely only a week or two away as we crush the remaining bugs. I am also fighting to find time to implement a few more features I would really like to see in Avogadro 1.0.0.

Vote for Avogadro

I just got an email from Sourceforge about their community awards. If you are a user, fan or developer please vote for Avogadro in the Best Project for Academia category. They even provided me with a nice graphics to put on the page, you can just click on it to register your vote.

In other news lots of exciting things happening in Avogadro, hopefully I will find some time to blog about them soon!

Avogadro 0.9.4 Released

A week ago today we released Avogadro 0.9.4. If you would like to try out the new release then you can grab packages and source here. No pretty pictures this time as I am at the KDE GSoC America sprint in Boston, MA and only have my little Eee PC with me. I will see if I can remedy that when I get back home.

This week has been really busy. I have been working hard on getting an Avogadro, OpenBabel super project set up on the Mac. Then using the CMake functions to make a fully relocatable app bundle. This is really experimental right now, but if you would like to play with it then check it out in the downloads section. It is actually the 0.9.4 release with a few patches to our translation files and some other small fixes. It can be run from any directory, and contains Qt and OpenBabel.

There were a few problems with the 0.9.4 release we discovered a few days after the release was made. The main user visible issue is with the translation files not loading, and so we will hopefully get a new release out soon. This is already fixed in head.

Qt Creator, CMake and C++/Qt Development

I have been experimenting with Qt Creator since the first release. I have always preferred a minimal editor for development work, with my main needs being good syntax highlighting, the ability to switch between different files quickly and something that stays out of my way as much as possible. Previously I had used Vim, Kate and several konsole instances the majority of the time.

Recently I have been looking for something with better integration, and so had been slowly keeping an eye out for a lightweight IDE. My main requirements were something lightweight, good C++ support, ideally good Qt support and CMake integration. Over the weekend I tried the latest Qt Creator 1.1 release and was really impressed.

Seb Ruiz made a great post on Qt Creator 1.1 that summed up many of my thoughts, and gave a quick walkthrough. It was not immediately obvious how to import a CMake project, I was looking for an import project option. All that is necessary is to go to file and open. You can then open the base CMakeLists.txt file for your project and the CMake plugin will do the rest.

From there on in you get great integration with the build system, version control (Git and friends), and your friendly GDB debugger. Under projects you might want to quickly add -j5 (if you are lucky enough to have a quad core machine) to the additional arguments input for make, and select the main executable target for your project if you also have several other executable targets (unit tests etc).

The first time you debug a project you will be prompted to build the Qt debugger helper. Then the integration with GDB really wins over using GDB directly, or using ddd which I had been using more and more recently. I would highly recommend trying Qt Creator if you are looking for a lightweight, cross platform IDE. There are certainly other great IDEs out there, but I think that Qt Creator is a great fit for my development style (and may be yours).

Avogadro 0.9.3 Released

Avogadro 0.9.3 on Linux/KDE 4

Yesterday, on April 1, we tagged and released Avogadro 0.9.3 exactly one calendar month after 0.9.2 was released. This has been quite a big month for Avogadro - I took it to the APS March meeting and the Q-Chem workshop. To the left is a screenshot of the latest release showing the electron density of a vitamin C molecule with the approximated electrostatic surface potential mapped onto it.

Ray traced mystery molecule

We made quite a few fixes and improvements leading up to the APS and Q-Chem meetings. The highlights are in the release notes. Some of my favourites are the animation of molecular vibrations, plotting of IR spectra, improved rendering/handling of surfaces including meshes with colours mapped to their vertices. The Windows build is also fully relocatable, meaning it can even run off of a USB stick. I am hoping to do the same for the Mac and Linux builds too. I made several improvements to the super cell builder, surfaces and even made a start on a z matrix editor (not ready yet).

Ray traced benzene molecule with electron density and electrostatic surface potential mapped onto the density surface

To the right is the ray traced image of a larger molecule and one of its molecular orbitals. The POV-Ray rendering code has also seen quite a few improvements. I have been experimenting with generating movies from POV-Ray rendered images too. I am planning to make improvements to our build system on Windows and Mac in order to make packaging easier. My main focus is still Linux development, but so many people insist on using other operating systems. Other more exciting things include producing videos of molecules rotating, vibrating, trajectories and using GLSL to improve the rendering performance with big systems (>25,000).

We would appreciate feedback on this release from the wider community. I am really pleased to announce we have gained at least one new contributor this month, David Lonie, who worked on the new IR spectra plotting code. I have made a new ebuild for Gentoo, prepared a Windows installer, Geoff has made a new Mac package and there is ofcourse source. I am sure other distros will have packages ready soon too. Hope you enjoy the graphics - videos to come soon!

Avogadro at the APS March Meeting and Q-Chem Workshop

So last week was extremely busy. The APS March Meeting was held in Pittsburgh and Q-Chem held a workshop on Q-Chem at the end of the week. I presented a poster on Avogadro (shown below), met lots of interesting people and got lots of new ideas for both research and Avogadro.

Avogadro poster

As we push towards making a 1.0 release of Avogadro, getting feedback from users in the scientific community is extremely important. As Q-Chem chose to use Avogadro as the builder/visualizer in their workshop I had the opportunity to observe new Avogadro users interact with our application for the first time. I also had the opportunity to help them overcome some initial issues and gained a few new insights.

I was very pleased to meet people at all stages of their career who were very interested in having an open source application that can provide a framework for building and visualizing molecules. I also realized that two of the most sought after features in Avogadro right now are the capability to easily make movies, and a z-matrix editor. People loved the ray-traced images of surfaces, coincidentally I received a request from someone in the press wanting to use an image I put up on my blog last year of ray-traced benzene molecules.

I look forward to hearing from some of the new users we gained in the last week. It is great to see Avogadro receiving more attention. I have started to work on the z-matrix editor and spent the weekend experimenting with movies - more to come soon!