ChemDoodle Web Components version 3.5 has been released. Contact us for custom development, integration and support to take advantage of this technology for your business.

Executive Summary

Components for spectra and reactions have been added. The entire library has been optimized to significantly improve performance across browsers and to minimize size, including the removal of several external libraries. 3D ChemDoodle Web Components have also been optimized and updated to reflect recent retrospective changes to the development browsers.


  1. Spectrum graphics are now provided. Added SpectrumCanvas as a child of Canvas for rendering spectra. There are currently two children, ObserverCanvas, which displays a static image of a spectrum, and PerspectiveCanvas which allows for interaction with a spectrum. Spectrum graphics are completely customizable and grids and integration lines can be shown.
  2. Added JCAMPInterpreter that reads JCAMP-DX spectra for the spectrum Canvases. All compressed JCAMP-DX data formats are read. Additional spectrum descriptors are also read, such as title, units, etc.
  3. Reactions graphics are now provided. Added a new component, Layout, which defines how multiple, related Canvases are displayed relative to each other. Currently, there is only a single Layout, SimpleReactionLayout that shows reactants and products with plus symbols in the appropriate places, as well as a reaction arrow and condition text. All decorations for Layouts are customizable.
  4. Charges are now rendered on molecules. Charges are now read and written by MDLInterpreter. The Doodler now manipulates charges using the + and keys while an atom is hovered.
  5. Optimized the ChemDoodle Web Component library for faster loads, interpretation and runtimes.
  6. Hidden Carbons (those connecting two and only two bonds of the same bond order that are parallel to each other) will now have their labels drawn. The VisualSpecifications.atoms_showHiddenCarbons_2D boolean variable now controls this setting. It is true by default.
  7. Added more ring perception algorithms. All ring perception classes are now children of the RingFinder class which contains methods for reducing molecule graphs to improve perception runtimes. Ring perception classes include HanserRingFinder, EulerFacetRingFinder and SSSRFinder. ChemDoodle Web Components now use a more efficient means to calculate rings, rather than just using the Hanser method, leading to much faster page loads.
  8. Added Molecule.scaleToAverageBondLength() and Molecule.getAverageBondLength() to help in standardizing input from various sources of chemical files.
  9. Added Molecule.getBonds(Atom a) as a helper file to return an array of the Bonds connected to the input Atom. Removed the Molecule.getBondNumber(Atom a) function as it is now redundant. Changed the Molecule.getCoordinationNumber(Atom a) function to Molecule.getCoordinationNumber(Array bonds) to be more efficient with the added getBonds method.
  10. Added Bond.getLength() and Bond.getLength3D() helper methods.
  11. Added a new Counter class that is the parent for objects that calculate integer descriptors for molecules. Both FrerejacqueNumberCounter and NumberOfMoleculesCounter have been added.
  12. Setting VisualSpecifications.backgroundColor to null will now allow you to show transparent components.
  13. Added middlemousedown, middleclick and middlemouseup events to the Canvas class.
  14. File Loader now displays a message if the input file does not contain chemical or compatible data.
  15. The latest version of jQuery, 1.4.2, has been integrated.
  16. Removed the antiquated BrowserDetect external library. Replaced with simpler internal source.
  17. The Sylvester and glUtils external libraries have been replaced with the smaller and more efficient glMatrix library.


  1. Changed the default framerate of animations to 20fps to greatly improve performance.
  2. Fixed a bug in the pre-handling of mobile events where coordinates were offset.
  3. Fixed issue where the default mobile actions for events were overridden even if the event was not supported.
  4. Fixed several issues in Opera, and the browser is now fairly well supported.
  5. Fixed bug where unsaturated terminal atoms would incorrectly stack Hydrogens vertically.
  6. Replaced the right-click and drag jQuery extensions with simpler and more reliable internal source. This fixes a number of inconsistencies in mouse gestures for some browsers.
  7. Removed unneeded source to make the library smaller and Google Closure is now used instead of Yahoo YUI to minimize and optimize the source.
  8. Modifier keys now call the Doodler to repaint for immediate visual feedback.
  9. Fixed issue where the bond highlight in the Doodler sometimes drew a full circle in Google Chrome.
  10. The quaternion rotations option for Transformer Canvases has been removed. The trackball external library has been removed.
  11. ChemDoodle Web Components will no longer hang when loading highly embedded ring systems.
  12. Fixed boundary conditions in Hydrogen label stacking to prefer horizontal layouts.
  13. Fixed issue where some rings were not discovered if the Molecule object’s graph was disjoint.
  14. Fixed issue where empty message did not appear in Firefox.
  15. Stopped automatic firing of the File Loader action when loaded in Firefox.
  16. 3D ChemDoodle Web Components have been updated to reflect the recent retrospective changes to the browsers.
  17. 3D ChemDoodle Web Components now use the correct recent WebGL typed arrays.