GLmol - Molecular Viewer on WebGL/Javascript
About GLmol
GLmol is a 3D molecular viewer based on WebGL and Javascript. You
can embed molecular models in Web pages without using Java or
plugins. GLmol is open-source software licensed under LGPL3.
There is also Android version; ESmol and NDKmol.
Features
Currently GLmol has following features. More is coming... 
- Read PDB file
- Read SDF/MOL file
- Load local files (File API is used; Safari is not supported)
- Load PDB files directly from RCSB PDB server
- Rotate/Translate/Zoom model with mouse (touchpanel support is under development)
- Fog & Slab
- Representations
- Line (depiction of double/triple bonds is supported for SDF/MOL file)
- Stick
- Sphere (van der Waals radius or fixed radius)
- Star
- Alpha carbon trace
- Strand
- Ribbon
- Thick ribbon
- Cylinder & Plate
- Tube with radius reflecting B factor
- Combination of above
- Smoothing of Beta sheets
- Special representations for Nucleic acid bases
- Surface calculation and visualization (in development; available in special version)
- van der Waals surface
- Molecular surface
- Solvent accessible surface
- Solvent excluded surface
- Coloring
- By chain
- By secondary structure (when defined in SHEET/HELIX records)
- By Elements
- Gradation (chainbow)
- Polar/Nonpolar
- B factor
- Custom
- Crystallography
- Display unit cell
- Show crystal packing (when defined in REMARK section)
- Display biological assembly (when defined in REMARK section)
- Perspective or Orthographic projection
- Take screenshot
System requirements
GLmol runs on newer versions of Firefox, Chrome, Safari or
Opera. Safari users have to enable WebGL manually. Internet Explorer
is not supported because IE doesn't implement WebGL. Some old video
cards are blacklisted by browsers due to insufficient
compatibility. You can still force enable WebGL as shown below, but
GLmol might not work.
GLmol runs on Sony Ericsson's Android devices which support
WebGL. Support for Firefox Mobile is currently underway. Reportedly,
GLmol also runs on WebGL enabled safari in iOS
(see this
video by Dr. Quinn)
If you see only black screen and you are using
Demo
You can try GLmol below.
The previous version of GLmol (0.35) is also available.
Download
You can download GLmol from the following link.
Changelog
- 0.40(20120428) - Bug fix in SDF parser and nucleotide representation, Migrated to Three.js r49 and compacted it (350KB to 200KB), Improved lighting, Improved performance of symmetry operation, Improved performance of cylinder rendering, Reversed spectrum color, Implemented of "cylinder&plate", Implemented of ribbon with thickness, Implemented beta sheet smoothing, C-alpha trace will no be smoothened now. Unfortunately, some old video cards such as Intel GMA950 cannot run this version.
- 0.35(20111214) - Bug fix. Supported Xperia phones (Android).
- 0.34(20111211) - Added 'strand' representation, Supported zooming by
mouse wheel, Fixed a bug with textarea in Chrome, Changed codes for
touchpanel support (experimental)
- 0.33(20111210) - Added 'star' representation and 'small sphere'
representation for non-bonded atoms, Added getNonbonded and UI for it,
Added setBackground, Added 'take screenshot' button, Refactored
onResize handler, Supported antialiasing (enabled in Chrome but
disabled in Firefox), Minor fix in loading message, Attached mouse
event handler to renderer, Refactored lighting (doubleSided issues),
Improved slab/fog/zoom adjustments, Fixed ribbon width, Supported
dotted line
- 0.30(20111130) - Fixed a bug in PDB parser (CONNECT), Fixed a bug
in SDF parser (ignore non-SDF file), Supported viewport size change,
Changed to Tab-based userinterface, Added mouse mode switch for
single-button mouse and touchpanel users, Read PDB file specified in
URL, Removed GLmol.protein.chainname (which was not used at all and
interfered with protein.a/b/c), Supported nucleic acid
representations(ribbon, ladder, stick, line), Improved Zoom, Supported
Fog and Slab, Supported drawing helix as cylinder, Enhanced PDB parser
to reads TITLE and HEADER, Added GLmol.setView and GLmol.getView,
Improved color by chain and color by spectrum to support nucleic
acids, Separated parser and buildScene (WARNING: API changed!), Added
GLmol.zoomInto (EXPERIMENTAL: must be improved), Added color by B
factor, Added tube representation (similar to 'B factor putty/ in
Pymol), Supported drawing double/triple bonds in line representation
(SDF File ONLY), Improved detection of bonds involving deuterium,
Supported reading local files (needs File API)
- 0.25(20111120) - ribbon for nucleic acids, color by chain for
nucleic acids, color by polar/nonpolar, SDF/MOL format support,
upgrade to Three.js r45, bug fix in subdivide, improvement of
detection of bonds involving sulfer or hydrogen atoms, ignoring
alternative locations (ad hoc fix)
- 0.23 - first release
Document
Design principles and Architecture of GLmol describes details of implementation and current limitations.
To learn how to embed GLmol into your page, please examine source code of Example of embedding.
Contacts
Comments and suggestions are welcome. Please mail to biochem_fan at users.sourceforge.jp or write in the forum.