Skip to main content

Terminal-based 3D molecular viewer

Project description

MolTUI

MolTUI is a terminal molecular viewer for the XYZ, Zmat, Molden, Gaussian Cube, Orca GBW and HESS file format designed for quick inspection of geometries, trajectories, orbitals and normal modes directly in the terminal using Unicode characters. Ideal for remote SSH sessions and lightweight analyses.

benzene

Installation

pip install moltui
# or
uv tool install moltui

Usage

moltui <file>

Features

MolTUI is organized in a series of modes that can be cycled using the m (forward) and M (backward) keys. Each mode opens a respective sidebar which can be toggled on and off with S. The modes consist of molecular orbitals, normal modes and geometry and availability depends on the file format that was opened.

Visualize Orbitals

  • The rendering of orbitals can be toggled via o.
  • Molden and GBW files can contain multiple molecular orbitals. Cycle through MOs with next and prev.
image

Analyze Geometry

  • Bond lengths, angles and dihedrals can be viewed using the geometry key which opens a sidebar. Navigate between tabs via <tab>.
  • The quantity is highlighted in yellow on the molecule.
  • Sort the quantity in increasing magnitude via s.
  • Atom indices can be toggled via #.
image

Animations

Trajectories

Trajectories can be provided in the multi-XYZ file format (essentially multiple XYZ files concatenated together). Toggle a looping animation of the trajectory using <space> and cycle individual frames using [ and ]. The geometry sidebar values updates live with the current frame's geometry.

geom-opt

Normal Modes

Normal modes can be provided either via the Molden or Orca .hess file formats. Animation playing can be toggled with <space>.

normal-modes2

Export to PNG Format

The e key exports the current scene to a PNG.

benzene_hf 021

Tune Visuals

The V key opens a sidebar where the isovalue, molecule style and lighting can be modified.

image

The lower case v cycles between the styles.

CPK Licorice VDW

Toggle between light and dark mode with i.

Light Dark

Supported formats

  • Structures: XYZ, Gaussian ZMAT.
  • Orbitals: Molden, Gaussian Cube, Orca GBW¹.
  • Normal Modes: Molden, Orca HESS.

¹ Requires orca_2mkl in PATH

Keybindings

Navigation

Key Action
h/j/k/l or arrows Rotate left/down/up/right
,/. Roll clockwise/counter-clockwise
J/K or +/- Zoom out/in
t Toggle pan/rotation mode
c Center view
r Reset view

Display

Key Action
o Toggle orbital isosurfaces
i Toggle dark/light theme
b Toggle bonds
e Export PNG
v Toggle style (CPK, Licorice, VDW)
# Toggle atom numbers

Panels

Key Action
m / M Cycle sidebar mode forward/backward (Geometry, MO, Normal Modes)
S Toggle current sidebar (hide/show)
V Toggle Visual settings panel
n/p Next/previous row in the active sidebar table
d/u Half page down/up in datatable
g/G Top/bottom of the datatable

Geometry panel

Key Action
Tab/Shift+Tab Switch Bonds/Angles/Dihedrals tab
s Toggle sort by value for active tab

Visual panel

Key Action
n/p Move focus to next/previous control
Tab/Shift+Tab Increase/decrease focused slider, or cycle style option

Animation and modes

Key Action
Space Toggle play/pause trajectory or normal mode animation
[ / ] Previous/next animation step (frame/phase)

General

Key Action
q Quit

Known Issues

  • Only up to g-shells are implemented as this is the highest orbital shell officially supported by the Molden format.
  • The content is rendered using braille Unicode characters and, therefore, the quality of rendering can depend on the font and terminal emulator. All figures in the repository have been generated using the JetBrains Mono Nerd Font in the Kitty terminal.
  • The Orca GBW file format is typically incompatible between versions. Therefore, the orca_2mkl should ideally be of the same version as the Orca version used to produce the GBW file. Newer version of Orca can try to recover earlier GBW files using the rescue feature.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

moltui-0.4.0.tar.gz (2.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

moltui-0.4.0-py3-none-any.whl (55.7 kB view details)

Uploaded Python 3

File details

Details for the file moltui-0.4.0.tar.gz.

File metadata

  • Download URL: moltui-0.4.0.tar.gz
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for moltui-0.4.0.tar.gz
Algorithm Hash digest
SHA256 ce7ebab3f03c351806edded062a33d8cd0a23f4e1eacd3196a58916fbc246c66
MD5 513b922dcc3c552b7f8d6663e90f7cad
BLAKE2b-256 e6da84ec4ac6e1605925526286c278a04f36aaa9a7a230de37b4313a994e04a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for moltui-0.4.0.tar.gz:

Publisher: release.yml on kszenes/moltui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file moltui-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: moltui-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 55.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for moltui-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 19a9d976e6b0d590da61c189f98fdc8f4ea03ea1f8fabc99efe15c1e52e998a2
MD5 d550742b7949f17b7dc49af9b52d2736
BLAKE2b-256 f047263f1e9e299ff68fe5d7f068bf1ce909d70c1ff382faed265dd964fafa48

See more details on using hashes here.

Provenance

The following attestation bundles were made for moltui-0.4.0-py3-none-any.whl:

Publisher: release.yml on kszenes/moltui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page