From PyMOLWiki
Jump to: navigation, search
Volume visualization of electron density for PDB 1oky
Volume panel for the 1oky volume example. It has the iso-levels on the x-axis and the opacity (1.0 - transparency) on the y-axis.

Volume creates a new volume object from a map object. The data (3D scalar fields) are shown as a true 3D object using coloring and transparencies defined by the user to illustrate the data values. This technique supports single and multiple isosurfaces.


volume name, map [, ramp [, selection [, buffer [, state [, carve ]]]]]


  • name = the name for the new volume object.
  • map = the name of the map object to use for computing the volume.
  • ramp = str: named color ramp {default: }
  • selection = an atom selection about which to display the mesh with an additional "buffer" (if provided).
  • carve = a radius about each atom in the selection for which to include density. If "carve" is not provided, then the whole brick is displayed.


fetch 1oky, type=2fofc, async=0
volume 1okyVol, 1oky_2fofc


  • Silent demo movie showing the basics of loading and using a volume in PyMOL. There are more capabilities, but this is the basic functionality.

Changes with PyMOL Version

  • 1.4.0: first version with volume support
  • 1.7.2:
    • pre-integrated volume rendering (volume_mode=1) as Incentive-PyMOL-only feature.
    • scripting support with custom color ramp (volume_color, volume_ramp_new)
    • improved volume panel, panel can be opened from the object menu ("C > panel")
    • lots of bugs fixed

Ray Tracing

There is no actual ray tracing support. The volume rendering is implemented exclusively with OpenGL shaders. The recommended way to render a high resolution image is to use the draw command. Example:

# render high resolution image on screen
draw 4000, 3000, antialias=2
png highres.png

Ray trace specific features like shadows or outlines (ray_trace_mode) are not available with this approach. If such features are needed, the ray_volume setting activates a hybrid solution, which blends the OpenGL rendered volume with the ray traced non-volume objects. Image sizes other than the current window size are not possible.

# compose on-screen volume with ray traced image
set ray_volume
png composed.png

Neither of these two solutions work with headless (batch) mode.

Known Limitations

  • No real ray-tracing support yet
  • Multiple volume objects don't blend properly

See Also