Skip to content

Normal Mode Visualization

Visualize molecular vibrations from frequency calculations.

Live Demo


From ORCA Hessian

from ase.io import read
from aseview import NormalViewer

atoms = read("molecule.xyz")
viewer = NormalViewer.from_orca(atoms, "orca.hess")
viewer.show()
aseview molecule.xyz --hess orca.hess

From ASE Vibrations

from ase.vibrations import Vibrations
from aseview import NormalViewer

vib = Vibrations(atoms)
vib.run()

viewer = NormalViewer(atoms, vibrations=vib)
viewer.show()

Options

viewer = NormalViewer.from_orca(
    atoms,
    "orca.hess",
    showModeVector=True,        # Show displacement arrows
    displacementAmplitude=1.5,  # Larger vibration
    initialModeIndex=6          # Start at 7th mode
)

Interactive Controls

Control Description
Mode dropdown Select vibrational mode
Play/Pause Toggle animation
Amplitude slider Adjust displacement
Mode Vectors Show/hide displacement arrows

Frequency Display

Format Meaning
1234.56 Real frequency (stable)
123.45i Imaginary frequency (unstable)

Imaginary frequencies indicate transition states or incomplete optimization.


Supported Formats

Program File Status
ORCA .hess Supported
VASP OUTCAR Planned
Gaussian .fchk Planned

Saving

viewer = NormalViewer.from_orca(atoms, "orca.hess")
viewer.save_html("vibrations.html")