Kalzium 3D Molecule Editor: The Start of My GSoC Project

My blog is aggregated on three planets now, Gentoo, KDE and SoC. So I guess my readership will be at its peak. There have been some hurdles leading up to my Google Summer of Code (TM) project but I am very pleased to have made it and intend to make the very best of this amazing opportunity to work on what is a really exciting project for me.

I will be working on the 3D molecular editor project which was an idea proposed by Carten Niehaus on the KDE GSoC 2007 ideas page. I have to admit that when I read it I was very excited. I had read some stuff on the Planet KDE (which I have read for ages and am really proud to be added to now) about the new 3D molecular viewer for Kalzium.

Avogadro snapshot of a HMDS molecule

I was hoping to be able to find an area I could help out with that when I discovered the idea that looked like it had been written for me! I then discovered the Avogadro project and met some of the project's developers. As I was putting my application together I helped with a few small patches and ported the molecule navigation code across to Avogadro from Kalzium. I also provided a patch for a Van der Waals sphere view of the molecule as I have always liked that particular method of visualising molecules.

Some of my patches were accepted and integrated. Eventually I heard back about my GSoC application - I was very pleased to learn it had been accepted. Unfortunately for personal reasons I spent the next few weeks offline (after letting my new mentor know) and didn't get to celebrate straight away.

Once I was back online I got commit access for the KDE subversion repository, my commit name is "hanwell" as they don't like you to use nicks. I also got commit access to the Avogadro repository where my commit name is "cryosuk" due to my usual "cryos" already being taken on SourceForge. So now I am committing under multiple aliases in different projects ;-)

Kalzium 3D molecule viewer snapshot of a methylbenzenethiol molecule

Benoit Jacob is my mentor along with Carten Niehaus, Donald E. Curtis and Geoff Hutchison who have all been very welcoming. They already contributed so much to the project I am just getting involved in. Open Babel and the Avogadro library underpin much of the 3D molecular editor and I have already made quite a few commits to the Avogadro and Kalzium subversion repositories.

There was an application freeze planned at the start of June for KDE 4.0, so I started my project early in order to get some of the great new features of Avogadro into KDE 4.0. Some of the highlights of this work were porting the navigate tool, adding the manipulate tool, various improvements to the label engine as well as some small enhancements to the engine API. We had the goal of ensuring all kalzium 3D viewer code was ported to the Avogadro library before we began porting Kalzium to use the Avogadro library to display molecules.

We accomplished that a few weeks ago and then began porting Kalzium to use the Avogadro library as its 3D visualisation backend. Along the way the Avogadro project made its 0.1 release, I added an ebuild for Gentoo and also made a few posts about the initial work. The feature freeze has been delayed but we got everything we wanted to done before the original deadline which I am pleased about.

Today marks the first official day of my project. I have already implemented several features I had planned including the port to the Avogadro library and ensuring all 3D Kalzium code was ported to the Avogadro library. I am really looking forward to working on this project over the summer and creating an awesome 3D molecular visualisation application. I am lucky to be working with such a friendly and motivated team of developers and will be sure to make regular posts about what I am up to. I welcome feedback on my work and have placed a screen shot of Avogadro (first picture) and the 3D molecular viewer in Kalzium (second picture).

Sheffield Half Marathon

Yesterday I completed my first half marathon. I took part in the Sheffield Half Marathon. Due to lots of different reasons my training leading up to the half marathon did not go at all to plan. I think I only managed to get in three or four decent runs in the six weeks leading up to the event and had considered pulling out.

Marcus completing the Sheffield half marathon

It was really tough and I ended up coming in at just under 2:30 which was a little disappointing. I am glad I did it, aching quite a bit and can't wait to get back into training and try for a better time at some point in the future. Quite a few friends also competed and it was an amazing atmosphere to run with a course that had somewhere in the region of 5000 competitors.

Avogadro 0.1.0 Released

I started my Google Summer of Code (TM) work a little early due to the upcoming feature freeze for KDE 4.0. Yesterday the Avogadro 0.1.0 beta was released and I have of course added an ebuild for it to Gentoo. Avogadro is at an early stage in development but it is already packed with features and I am really pleased that I have been given the opportunity to work on this project for the summer.

Avogadro 0.1.0 4-methylbenzenethiol snapshot

Above is a screen shot of the Avogadro release viewing a 4-methylbenzenethiol molecule (the ones that encapsulate the gold nanoparticles I work with on my PhD project). I have done a lot of work on the navigation and manipulation tools as well as adding the Van der Waals sphere engine. I have been working for the past few weeks on getting the missing features needed to port kalzium to libavogadro into the library.

So I have already made quite a few commits to Avogadro, and yesterday I made my first commit to the KDE SVN repository. I am suffering from split personalities though ;-) On sourceforge I am cryosuk (due to cryos already being taken) and on KDE SVN I am hanwell (it is KDE policy to use surnames rather than nicknames). So now I have three nicknames/account names in use...

I have been doing some initial work porting kalzium to use libavogadro too. Right now my time is really limited for a number of reasons though and so I have posted my limited progress to the kalzium list. Hopefully I will be able to do a little more this weekend. We need to have it working before the feature freeze in June. I am confident we will be able to do that. More porting is certainly required but I do not think that much more time is needed before we get it rendering again.

We would of course to hear any feedback you have on Avogadro. We also have lots of new features planned, many of which I will be implementing over the summer as my project gets into full swing and I can work on it full time. Time for me to get back to my thesis - hope you like the Avogadro release!