Skip to content

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).

CMake Performance with Open Babel

Recently, Luca made a post comparing the speed of CMake and autotools in which some timings were posted. I have to say that I am not sure I agreed with the conclusion and have had a very different experience with the projects I am involved in. As with anything your mileage may vary, and I have not looked at Wesnoth.

I think it is questionable at best to include the time it takes to build CMake, but not autotools. Seems like this is a one time cost and the build time is not that high for either. All tests were performed on my quad core Gentoo box at work. Each step is for the first cold run as would normally be the case when compiling Open Babel from source. The make step used `time make -j5` and I have listed the real time in each case.

The timings are shown in the table below. They seem somewhat similar to the experiences of the QGIS developers who made this move quite some time ago. All times shown are in seconds and are the real time reported by the time command.

  Autotools CMake
Configure time 20.39 4.79
Compile time 116.45 102.23
Install time 28.39 4.19
Total time 165.23 111.21

For those interested, on this system the total CMake compilation/installation time (cmake-gui disabled) was 1 minute and 54 seconds. The compilation/installation time for automake, autoconf, libtool, m4 was 2 minute and 14 seconds. I am not sure how relevant either of those times are, other than to show neither of them take that long to compile and install. Gentoo users/developers may or may not have CMake installed, most other developers will install the binary packages for either one and are likely to be much more interested in how well it integrates with their development environment, compile and install times.

As a developer I prefer CMake, and have been using/maintaining the CMake based build system for Open Babel for over a year now. It was originally contributed by the KDE Windows porting team, but I found that I spent less time waiting for it to do things when I was working on code too. Add to that the extras CMake comes with, such as CTest, CDash and CPack I think it makes a very attractive option for many projects. I am also hoping that it will allow Open Babel to drop maintaining a totally separate build system for MSVC.

I am sure the Open Babel autotools build system could be optimized (I never tried), but when you add in the additional benefits mentioned above, support for multiple targets such as makefiles, XCode, MSVC, Eclipse etc, one shared language/syntax for all build files and an increasingly polished competitor to autotools, I honestly think it is a sensible choice for projects to move to CMake. There are a few less well known features such as Fortran module dependency parsing that I think are fairly unique and valuable, in scientific coding at least (and I have used the Fortran module dependency parsing at least once and was pleasantly surprised).

Full disclosure: I recently accepted a job offer with Kitware, and will start in the Fall assuming all the visa paperwork falls into place. The opinions expressed here are my own. I think it is great to discuss issues like this objectively, and hope to be a part of making CMake a better build system. As with most software - there are areas that need improving.

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!

Road Trip to Canada

So last weekend Louise and I went on our first big road trip to Canada. Neither of us have been to Canada before, and with Benoit now living in Toronto it seemed like a great opportunity to go and catch up. Back in July 2007 I visited Benoit in Paris during my GSoC where we met for the first time in person. Now, two years on we met for the second time in person and introduced our partners to each other too.

Niagara Falls Canada

We left at around 4pm on Friday, I think we crossed the border at about 9pm and got almost all the way there before getting lost in Toronto. Our friend's GPS failed us once we crossed the border and Toronto is a pretty big place. I think we finally arrived just before midnight, tired after the long drive. The next day we drove back down to almost the border to check out the Niagara Falls, which we had never seen before. It rained almost the entire day but we still had a really nice day out.

As well as checking out Niagara Falls on the Canadian side in the rain, we found some very expensive shops in Niagara on the Lake, I bought some maple syrup and some maple spread (still not quite sure what to do with that). We discovered that if you get bored of the main attraction you can always check out one of the many casinos too.... We decided to forgo the gambling and instead headed back to Toronto.

Dinner in Toronto

Once we had dried off a little we all headed out to get some dinner in Toronto's chinatown. We enjoyed some great Vietnamese food and compared notes on moving continents, life in academia, Google Summer of Code and life in general. It is great to still be in touch with many of the people I made friends with during my Google Summer of Code and I hope others get as much out of it as I did.

On Sunday we lost an hour to daylight savings time, wish we could stop doing the clock change thing twice a year... We decided to head back as Louise was tired (she is conducting a geek cloning experiment for me). It rained for most of the drive back too, we did another border crossing and got back home at around 7pm. I do not think our carbon footprint is looking great for the weekend but it was great to catch up and see where Benoit is living now. My thanks to Benoit and Irene for being such great hosts.

Back to work this week, preparing for a big conference next week. I still love to travel, it was great to avoid the airports for once!


Avogadro 0.9.2 Released

I just finishing tagging Avogadro 0.9.2 earlier today. I possibly procrastinated on tagging this one a little as February has not been my finest month. I didn't see any reason to make another release in that hellish month when I could wait a day. This release is a little earlier than we had scheduled, but it contains lots of bug fixes and improvements along with a couple of new features.

Avogadro 0.9.2

Among the highlights I tracked down our orphaned tools and extensions, so Avogadro closes down far more gracefully now than it once did. I went hunting for memory leaks and QObjects with no parents. I added some initial support for building supercells such as the zeolite structure shown in the screenshot. I also fixed some bugs with electron density calculation and this works much better and faster now. I also improved the Linux desktop user experience by adding a .desktop file, icon and mime type associations. Looks very swish.

I built a new Windows release without Python, Tim will put one up with Python support soon, bumped the Gentoo ebuild as 0.9.1 was bumped by someone else and it could not locate its plugins. I have made a number of improvements to our plugin loading to ensure that it is relative to the binary location. This should make relocatable binaries on all platforms quite feasible. March is a busy month but I hope to be able to make some more big improvements. If it goes as badly as February I may consider hibernation as an option though!

I will be presenting some of this work at the APS and a quantum chemistry workshop in March too, both here in Pittsburgh. We always love to have feedback, bug reports, patches or be invited to give talks at conferences in far off places! Here is hoping for a better month...