WebGL modality in JSmol
JSmol has tentatively implemented a modality (additional to the Java and the HTML5 modalities) that makes use of the WebGL technology.
- Please, note that this modality does not implement the full set of functionalities of Jmol/JSmol and there are no current plans to develop it further. Help from interested developers/programmers would be welcome.
WebGL is a hardware-accelerated technology for displaying 2D and 3D graphics inside web pages without using any plugins in the browser. It relies on capabilities of the user's graphics card (calculation in the GPU), and so compatibility may be limited, although it is a growing standard feature.
The major advantage of using WebGL is a better quality and faster rendering of the model, rotation, movement, etc., over that obtained with JSmol/HTML5. In exchange, the latter offers a wider compatibility with devices.
Test or demo pages
- Demonstration page: https://chemapps.stolaf.edu/jmol//jsmol/jsmolgl.htm
- Do-It-Yourself Molecules: From 2D to 3D at Biomodel.UAH (input from structures drawn in JSME, but also including model retrieval from databases)
Old graphics cards may not support WebGL.
Browser support is irregular, although growing. Current versions of Chrome, Safari, Edge are compatible, Firefox may depend on the update of graphics card drivers. Please check e.g. Can I use for current status.
Support for JmolScript features
- If you have experience with JSmol/WebGL, please feel free to add items here.
Implementing the WebGL modality
You need to be aware that your users/visitors might not have a WebGL-compatible system, so be cautious with your design and offer alternatives.
In order to have JSmol in your pages use the WebGL modality:
- your page should call JSmol.GLmol.min.js in addition to JSmol.min.js
useparameter of the
Infovariable must be set to
WebGL(case-insensitive). You can set it to
WebGL HTML5(that's two values) and it will fall back to regular html5-only JSmol should WebGL be unavailable to the browser.
The JSmol libraries will automatically detect WebGL support in the user's system and fall back to HTML5 modality if WebGL is not available.
If you need to detect WebGL support yourself, you may use the same algorithm by checking the value returned from this function:
WebGL-based alternatives to JSmol
There are several programs able to display molecular structures using the WebGL technology. This is a list of some of them, and an attempt for comparison.
- Main page: http://webglmol.osdn.jp/index-en.html
Might have been the first WebGL viewer available. Some of its code has been used in the JSmol WebGL modality. Active development has apparently ceased.
- Main page: http://3dmol.csb.pitt.edu/doc/
- Demo: http://3dmol.csb.pitt.edu/
- Article in Bioinformatics, doi:10.1093/bioinformatics/btu829
- Repository: https://github.com/3dmol/3Dmol.js
Has a very simple embedding mechanism, based on HTML markup or url formatting. Abilities to compute isosurfaces in parallel (using web workers that don’t hang the web browser during the computation). Displays most common bio-molecular representations, labels, select and color abilities.
ChemDoodle Web Components
Free product offered by iChemLabs, LLC, under open-source GPL license.
- Main page: https://web.chemdoodle.com/
- Examples: https://web.chemdoodle.com/demos/iza-zeolite-explorer/ http://www.glmol.com/
By Li, Leung, Nakane and Wong, Chinese University of Hong Kong. Code licensed under Apache License 2.0 / MIT License.
- Main page: http://istar.cse.cuhk.edu.hk/iview/
- Article in BMC Bioinformatics, doi:10.1186/1471-2105-15-56
- Repository: https://github.com/HongjianLi/iview
Based on GLmol. Specially aimed at protein-ligand complexes.
By David Sehnal and collaborators.
- Main page: https://github.com/dsehnal/LiteMol/blob/master/README.md
- Repository: https://github.com/dsehnal/LiteMol
Backed and used by PDB Europe.
Backed by Protein Data Bank Japan.
- Main page: http://pdbj.org/help/molmil
by Alexander Rose
- Main page: http://arose.github.io/ngl/doc/#User_manual/Introduction/Welcome
- Demonstration: http://proteinformatics.charite.de/ngl/html/ngl.html
- Article in Nucleic Acid Research, doi:10.1093/nar/gkv402
- Repository: https://github.com/arose/ngl
Used by RCSB Protein Data Bank. Beautiful graphic capabilities. Many bio-molecular representations (some unique such as «hyperballs» and «ropes» ). Abilities to act on selections with a Jmol-like syntax.
PV Protein Viewer
By Marco Biasini. Open source.
- Main page: http://biasmv.github.io/pv/
- Documentation: http://pv.readthedocs.org/en/latest/intro.html
- Repository: https://github.com/biasmv/pv
By Rye Terrell. Public domain.
- Main page: http://wwwtyro.github.io/speck/
- Repository: https://github.com/wwwtyro/speck
xyz files. Implements spacefill, sticks, ball & stick styles, but no cartoons etc. Offers ambient occlusion rendering. Beautiful images, but not useful for a smooth real time manipulation of the model.
By Marcin Wojdyr.
- Main page: http://uglymol.github.io/
A web-based macromolecular viewer with a focus on reading and display of electron density maps. Model handling is made similar to that of Coot. A viewer suitable for a quick look without downloading the data and starting Coot.
- Implementing WebGL and HTML5 in macromolecular visualization and modern computer-aided drug design. S. Yuan, H.C.S. Chan, Z. Hu (2017) doi:10.1016/j.tibtech.2017.03.009