PV - JavaScript Protein Viewer


PV is a JavaScript viewer to visualize protein structures directly in the browsers. It's super-fast and and easy to integrate into your website and does not require any plug-ins to be installed.

PV is the default protein-viewer available in SWISS-MODEL.

See it in Action

Interested to see what PV can do for you? Then have a look at this simple demo page available here.

It's Open Source

The development of PV happens in the open. The complete source code is available on github.


PV uses WebGL for rendering. It has been implemented with high performance in mind and is able to render very large molecules at interactive frame rates. Notable features include:

  • support for different render styles: for example, balls-and-sticks, spheres, C-alpha trace, tube, ribbon (helix-sheet-coil cartoon).
  • powerful coloring operations, including support for custom-made coloring
  • easy-to-use API
  • no external dependencies
  • pixel-accurate object picking tells you which atom (or residue) was clicked
  • labels in 3D
  • import structures from PDB
  • built-in secondary structure assignment
  • it's lightweight. The complete minified source is a little larger than 100 kb.


PV was developed out of frustration with the current situation of protein viewers in the web. The Java-based nature of these viewers made it increasingly difficult to integrate them in websites. For example, with the recent Java security updates, users are prompted a multitude of pop-up boxes and check-boxes that need checking before being able to use the applet. In addition, starting the applet would freeze the browser for multiple seconds, which is really not acceptable. PV circumvents these issues by being implemented in JavaScript.