ChemDoodle Web Components 4.7.0 has been released. Many companies are now switching from their Java applet and Flash applications to the ChemDoodle Web Components. Learn more today!

Executive Summary

This significant update improves performance and graphics for both 2D and 3D components. PDB file reading has been optimized on the Javascript side, and you can now control the resolution of protein and nucleic meshes, leading to significantly faster loading. Two new spectrum components have been added, OverlayCanvas which draws several spectra in the same domain, and SeekerCanvas which shows plot coordinate information.


  1. Improved the rendering of bonds adjacent to atom labels. The graphics are now significantly better. The visual specification, bonds_atomLabelBuffer_2D, is no longer a percentage of the bond length, but is now the buffer between atom labels and bond ends in pixels.
  2. You can now control the resolution of PDB meshes with the visual specifications: proteins_verticalResolution, proteins_horizontalResolution, and nucleics_verticalResolution. The are set to high quality models by default, for low quality models, set all these values to 3. This improvement is so significant, that even huge PDB files, such as 3CC2 with nearly 100 thousands atoms, will have meshes generated by the ChemDoodle Web Components in a few seconds. The PDB demo has been updated to use low quality meshes for large structures.
  3. A new spectrum component, OverlayCanvas, will overlay several spectra in the same domain. You can see the tutorial page for this component here.
  4. A new spectrum component, SeekerCanvas, will display plot coordinate information based on input events. You can see the tutorial page for this component here.
  5. The Spectrum class has a new function, getInternalCoordinates(), that will convert screen coordinates to spectrum coordinates.
  6. The Spectrum class has a new function, getClosestPlotInternalCoordinates(), that will convert screen coordinates to the closest plot coordinates.
  7. Added getInverseTransformedY() function to the spectrum class.
  8. PDBInterpreter now adheres to CONECT records, and will only deduce HETATM bonds if no CONECT records are present.
  9. PDBInterpreter bond deduction is now much faster for residue bonds. PDBInterpreter has a new parameter, deduceResidueBonds, to determine if residue bonds should be found. This is false by default.


  1. Significantly improved the rendering efficiency of 2D components. This is most noticeable on mobile devices.
  2. Fixed major bug that caused Apple Safari to crash on Mac OS X Lion when large spectra were rendered.
  3. Nucleotide backbone meshes are now segmented to avoid exceeding the WebGL index buffer size.
  4. Fixed slits that appeared on some large ribbon models.