Rendering Backends Guide¶
This guide covers the four structure rendering backends and their unique features. Each backend has different strengths.
Quick Comparison¶
Backend |
Style |
Speed |
Features |
Install |
|---|---|---|---|---|
xyzrender |
Ball-and-stick |
Fast |
Auto-orient, TS bonds, NCI, VdW |
|
ASE |
Space-filling |
Fast |
Built-in, no extra deps |
Built-in |
solvis |
Ball-and-stick |
Medium |
Transparent bg, PyVista 3D |
|
ovito |
Configurable |
Slow |
Full MD viz, modifiers |
|
xyzrender¶
The default backend. Uses the xyzrender CLI with the paton preset.
Auto-orientation¶
By default, xyzrender auto-orients each structure using PCA to find
the best viewing angle. This is usually good for small molecules.
Override with --rotation "45x,30y,0z" for manual control.
Transition State Bonds¶
xyzrender can highlight forming/breaking bonds at transition states:
# Auto-detect TS bonds (dashed lines for partially formed bonds)
rgpycrumbs eon plt-neb ... --strip-renderer xyzrender
The --ts flag in xyzrender auto-detects bonds being formed or broken
using graphRC analysis. This is built into the paton preset.
Bond Orders and NCI¶
xyzrender supports bond order display and non-covalent interaction detection:
# These are xyzrender CLI flags, not rgpycrumbs flags
# For advanced rendering, use xyzrender directly:
xyzrender structure.xyz -o output.png --config paton --hy --bo --nci
VdW Spheres¶
Show van der Waals radii as translucent spheres:
xyzrender structure.xyz -o output.png --vdw --vdw-opacity 0.3
Presets¶
Preset |
Description |
|---|---|
|
Standard CPK radii |
|
Publication-style, smaller atoms (used by rgpycrumbs) |
|
Flat 2D style |
|
Large translucent spheres |
ASE¶
The ASE backend uses ase.io.write(format="png") for space-filling
sphere rendering. No bonds are drawn.
When to Use ASE¶
No extra dependencies needed
Good for periodic systems where bonds are ambiguous
Fast rendering for large systems
Limitations¶
No bond rendering
No auto-orientation (uses
--rotationdirectly)All atoms same style (no ball-and-stick option)
solvis¶
The solvis backend uses PyVista for 3D rendering with transparent backgrounds.
Ball-and-Stick with Bonds¶
solvis renders atoms as spheres and bonds as cylinders. Bonds are detected using ASE’s neighbor list with natural cutoffs.
Transparent Background¶
solvis renders with RGBA transparent backgrounds, so structures blend seamlessly into plots without white rectangles.
When to Use solvis¶
When you need transparent backgrounds for overlaying on colored plots
When you want 3D depth effects (shadows, lighting)
For PyVista-based workflows
ovito¶
The OVITO Python backend provides off-screen rendering with orthographic projection.
When to Use ovito¶
For crystalline systems where OVITO modifiers are useful
When you need OVITO’s bond computation
For consistency with OVITO Desktop visualizations
Limitations¶
Large dependency (~2-3 GB)
No auto-orientation (uses pre-rotation like ASE/solvis)
Requires OpenGL (headless via osmesa)
Unified Controls¶
All backends share these controls:
Flag |
Effect |
|---|---|
|
xyzrender auto-orients; others use side view |
|
Manual rotation for all backends |
|
Rodrigues off-axis tilt (degrees) |
|
Horizontal gap between images |
|
Vertical separator lines |
See Also¶
Goswami, “Two-dimensional RMSD projections for reaction path visualization and validation,” MethodsX, p. 103851, Mar. 2026, doi:10.1016/j.mex.2026.103851
xyzrender – ball-and-stick molecular renderer
ASE – Atomic Simulation Environment
solvis – PyVista molecular visualization
OVITO Python – scientific visualization and analysis