We are happy to release ChemDoodle Web Components version 5.1. We are continuing to add new features that are requested by our customers and we continue to strive to produce even faster and more efficient code. Our options are now available for everyone, large and small, open-source or commercial. Our ChemDoodle Web Components library is the industry standard for HTML5 chemical graphics and sketching. Take advantage of the ChemDoodle Web Components today, and attract new customers with our high quality tools!

Executive Summary

This update introduces several new features in the sketcher and continues to improve performance. Labels can now be rendered in WebGL scenes and further WebGL features will continue to be added over the course of the next couple updates.


  1. Added Brackets. Brackets can be placed around groups of objects and annotated with charge, multiple and repeat counts. This is great for drawing reactions, polymers and polyatomic ions, among other things.
  2. Labels can now be displayed in WebGL scenes. We are starting off with the basics of just labeling elements and residues. You can control them with the atoms_displayLabels_3D visual specification. There are other visual specifications that can also be defined to alter how the labels are rendered. See VisualSpecifications for more information.
  3. Bonds are now formed when drawing to another atom, no matter how far away it is, regardless of the modifier keys pressed.
  4. New bond types have been added to the sketcher and to the library. These include the resonance bond (1.5), half bond (0.5) and zero/ionic/hydrogen bond (0).
  5. Bounds class now handles 3D coordinates.
  6. Added both resonance and equilibrium arrows.
  7. Text can now be added to reaction arrows by defining strings to the Line.topText and Line.bottomText variables.
  8. Pushers can now be hovered so they can be deleted like other regular shapes.
  9. Internal improvements to the code to change all closure based classes to prototype based classes. Also improved naming conventions for defining prototype classes. This makes object creation much faster and reduces the source size.
  10. Removed all uneccessary return true; statements at the end of function constructors.
  11. Removed all instances of jQuery.inArray(). It was a confusing function and now is replaced by the proper Javascript Array.indexOf().
  12. Layouts have been removed. They are no longer necessary as reactions can be fully rendered in a single component using shapes.


  1. Pushers now improve their angling. They will avoid overlapping bonds if possible, and they will always point up towards the bottom of a carbonyl.
  2. Pushers no longer render starting electrons if they originate from a bond.
  3. Fixed sketcher issue where changing a carbon dot to another element kept it as a dot. It now correctly switches to the label of the new element.
  4. Fixed full sketcher bug where shapes couldn’t be hovered by the eraser tool.
  5. Fixed full sketcher bug where cleaned molecules would also be centered. The molecules location is now preserved through the clean function.
  6. Fixed single molecule sketcher bug where the move tool didn’t function.
  7. Added check to sketcher to clear the hover on mouseout in case the mouse moved quickly out of the sketcher window.
  8. Hydrogens are now only added implicitly to elements in the other non-metals and halogens group.