Avogadro 2 development

Hi,

As we push into 2013, and development of the Avogadro 2 code base is
progressing I wanted to talk a little about what we are up to. Please
bear in mind that development is still at a very alpha level, but
under the open source mantra of “release early, release often”, I
wanted to share. We attended the ACS meeting in Philadelphia last year
and presented a poster summarizing some aspects of the work,

There are also some slides from a talk I gave discussing Avogadro and
the wider Open Chemistry project,

If you would like to know more about Open Chemistry, and how it
relates to Avogadro development an article I wrote for the Source (a
little old now, but still relevant),

The core of development is taking place in the AvogadroLibs
repository, where several libraries are being developed to focus on
developing a scalable chemical editor and analysis framework.
Integration (optional) with related applications for desktop HPC
integration (MoleQueue) and cheminformatics (MongoChem) offer a fuller
solution, but Avogadro will remain usable on its own. We have been
developing a communication protocol that leverages JSON RPC 2 and
local sockets to facilitate communication between the applications, if
the named socket does not exist the functionality can be disabled at
runtime, and this means that direct linking is not required between
the components.

Much of our development effort over the past year has focused on
desktop HPC integration, core library functionality, databases and
informatics. In the last few months we have had more time to devote to
Avogadro development, and we will be pushing hard during January to
develop out the core application functionality. We have been using
this as an opportunity to examine what we did well in Avogadro 1,
while rewriting pieces that were not optimal. What you see in the
repository is the rewritten core, with only a few of the classes
ported at present.

http://packages.kitware.com/community/5

The Avogadro 2 libraries are licensed using the BSD 3-clause license,
pieces that cannot be relicensed will have to be rewritten. One large
departure from Avogadro 1.x is that Open Babel cannot be used/linked
to as it is GPLv2 only, but we can still call the command line
components in a separate process and we will add that functionality
soon so that we can maintain support for the large number of file
formats, and reuse other functionality as it makes sense. We will
focus on CML our primary data format, and take advantage of the
already strong support for it in Open Babel. In addition we will be
looking at similar optional integration of other libraries such as
RDKit, cclib, Chemkit and CDK, and making it easier to integrate
functionality developed in other third party libraries we may or may
not have access to.

Once we have the majority of the core features working in the Avogadro
2 repository we will be moving on to add more advanced functionality
such as client-server communication, scaling to large MD simulations
and looking at generating more complex input files and ingesting more
complex output data. We are already generating nightly binaries
automatically on Windows and Mac OS X for those early adopters, but
please bear in mind that Avogadro 2 is not yet ready to replace
Avogadro 1.x. With that said, I am very excited about the work we are
doing, and would welcome feedback from early adopters/ideas and gripes
about the way we did things before and better approaches we might
take.

One major thing that things like MoleQueue offer is the possibility of
calling any executable either locally or remotely to perform work,
from small things like forcefield geometry optimization to large MD
simulations. To that end we are also re-examining how to make
scripting and feature additions in Avogadro simpler, so that you can
easily generate input for a quantum code without having to touch C++.
Over the coming months I will blog about some of these features as we
merge them in, and outline our design so that we might get feedback.
We are also working with some of the developers of computational
codes, CML, and data sets to see how we can address the needs of the
community.

I will be speaking at FOSDEM in February about our work in the Open
Science room, and Bill Hoffman will also be speaking about Open
Science in the more general sense as a main track speaker. If you will
be there then I would be more than happy to discuss our work with you.

Thanks, and happy new year!

Marcus