Welcome to chemlab’s documentation!

Author:Gabriele Lanaro
Contributors:Yotam Y. Avital, Adam Jackson
Project Page:https://github.com/chemlab/chemlab
Mailing List:python-chemlab.googlegroups.com

Chemlab is a library that can help the user with chemistry-relevant calculations using the flexibility and power of the python programming language. It aims to be well-designed and pythonic, taking inspiration from projects such as numpy and scipy.

Chemlab’s long term goal is to be:

  • General Chemistry is a huge field, chemlab wants to provide a general ground from where to build domain-specific tools and apps.
  • Array oriented Most operations and data structures are based on numpy arrays. This let you write compact and efficient code.
  • Graphic chemlab integrates a 3D molecular viewer that is easily extendable and lets you write your own visualization tools.
  • Interoperable chemlab wants to be interoperable with other chemistry programs by reading and writing different file formats and using flexible data structures.
  • Fast Even if python is known to be slow every effort should be made to make chemlab ‘fast enough’, by using effectively numpy arrays and efficient data structures. When everything else fails we can still write the hard bits in C with the help of cython.

Current Status

Computational and theoretical chemistry is a huge field, and providing a program that encompasses all aspects of it is an impossible task. The spirit of chemlab is to provide a common ground from where you can build specific programs. For this reason it includes a fully programmable molecular viewer.

Chemlab includes a lot of utilities to programmatically download and generate geometries. The molecular viewer is very fast (it can easily animate ~100000 spheres) and the design is simple and flexible. For more information about the newest features check out the release notes in the What’s new document.

Chemlab is developer-friendly, it provides good documentation and has an easy structure to get in. Feel free to send me anything that you may do with chemlab, like supporting a new file format, a new graphic renderer, a nice example, even if you don’t think it’s perfect. Send an email to the mailing list or file an issue on the github page to discuss any idea that comes to your mind. Get involved!


Chemlab is released under the GNU GPLv3 and its main developer is Gabriele Lanaro.