Section: XScreenSaver manual (6x)
Updated: 6.00-1.fc34 (02-Apr-2021)
Page Index


molecule - draws 3D molecular structures  


molecule [-display host:display.screen] [-window] [-root] [-visual visual] [-delay microseconds] [-wander] [-no-wander] [-spin axes] [-no-spin] [-timeout seconds] [-labels] [-no-labels] [-titles] [-no-titles] [-atoms] [-no-atoms] [-bonds] [-no-bonds] [-shells] [-no-shells] [-molecule file-or-directory] [-verbose] [-wireframe] [-fps]  


The molecule program draws several different representations of molecules. Some common molecules are built in, and it can read PDB (Protein Data Base) files as input.  


molecule accepts the following options:
Draw on a newly-created window. This is the default.
Draw on the root window.
Install a private colormap for the window.
-visual visual
Specify which visual to use. Legal values are the name of a visual class, or the id number (decimal or hex) of a specific visual.
Display the current frame rate, CPU load, and polygon count.
Print debugging info on stderr about files being loaded, etc.
Move the molecules around the screen.
Keep the molecule centered on the screen. This is the default.
Which axes around which the molecule should spin. The default is "XYZ", meaning rotate it freely in space. "-spin Z" would rotate the molecule in the plane of the screen while not rotating it into or out of the screen; etc.
Don't spin it at all: the same as -spin "".
Draw labels on the atoms (or the spot where the atoms would be.) This is the default.
Do not draw labels on the atoms.
Print the name of the molecule and its chemical formula at the top of the screen.
Do not print the molecule name.
Represent the atoms as shaded spheres of appropriate sizes. This is the default.
Do not draw spheres for the atoms: only draw bond lines.
Represent the atomic bonds as solid tubes of appropriate thicknesses. This is the default.
Do not draw the bonds: instead, make the spheres for the atoms be larger, for a "space-filling" representation of the molecule.
Draw transparent electron shells around the atoms. This only works if bonds are also being drawn.
Do not draw electron shells. This is the default.
When drawing shells, how transparent to make them. Default 0.4.
Draw a wireframe rendition of the molecule: this will consist only of single-pixel lines for the bonds, and text labels where the atoms go. This will be very fast.
-timeout seconds
When using the built-in data set, change to a new molecule every this-many seconds. Default is 20 seconds.
-molecule file-or-directory
Instead of using the built-in molecules, read one from the given file. This file must be in PDB (Protein Data Base) format. (Note that it's not uncommon for PDB files to contain only the atoms, with no (or little) information about the atomic bonds.)

This can also be a directory, in which case, all of the .pdb files in that directory will be loaded. A new one will be displayed at random every few seconds (as per the -timeout option.)

When the molecule is too large (bigger than about 30 angstroms from side to side), the -label option will be automatically turned off, because otherwise, the labels would overlap and completely obscure the display.

When the molecule is around 150 angstroms from side to side, wireframe mode will be turned on (because otherwise it would be too slow.)  


to get the default host and display number.
to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property.


X(1), xscreensaver(1)

Documentation on the PDB file format:

A good source of PDB files:  


Copyright © 2001-2005 by Jamie Zawinski. Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. No representations are made about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.  


Jamie Zawinski <>