Skip to main content

v_ase logo

v_ase

PyPI version Python versions License

v_ase is a local 3D viewer and editor for atomic structures and trajectories. Open ASE-compatible files from the terminal or Python, inspect large systems, edit atoms when needed, and export publication-ready images, movies, and 3D scenes. The same viewport can also switch to a clean 2D atom-and-bond display.

v_ase overview

Install

From PyPI

python -m pip install v_ase-gui

From GitHub

git clone https://github.com/lgyEthan/v_ase.git
cd v_ase
python -m pip install -e .

No Node.js installation is required.

Start

There are two command forms:

v_ase gui
v_ase gui [structure-filename]
What you want to open Command
Empty workspace with an Open button v_ase gui
POSCAR or another static structure v_ase gui POSCAR
VASP structure v_ase gui structure.vasp
XYZ or extended XYZ trajectory v_ase gui trajectory.extxyz
ASE trajectory v_ase gui relaxation.traj
Saved v_ase project v_ase gui project.vase

The terminal waits while the viewer is open and becomes available again when the browser tab is closed.

View And Interactive Modes

The default mode is optimized for viewing, trajectory playback, measurements, bonds, appearance, supercells, wrapping, and export:

v_ase gui trajectory.extxyz

Use interactive mode to move, rotate, create, delete, copy, paste, or relax atoms:

v_ase gui structure.vasp --interactive

Controls

Input Action
Left click Select an atom or confirm a transform
Shift + left click Add or remove atoms from the selection
Left drag Box selection
Middle drag Orbit the view
Shift + middle drag Pan
Wheel Zoom
G Move selected atoms
R Rotate selected atoms
X, Y, Z Lock a transform axis; outside a transform, align the view
Number keys Enter an exact distance or angle during G or R
Enter / left click Confirm a transform
Esc / right click Cancel a transform
Ctrl+C, Ctrl+V, Ctrl+Z Copy, paste, undo
Delete / Backspace Delete selected atoms
Space Play or pause a trajectory
Tab Open the control panel when it is collapsed
Esc Close the open control panel and return focus to the viewport

The ? button in the top bar shows the same shortcut reference inside the app.

The Camera View button in the top bar changes only the camera. Set an exact degree step, rotate around +/-X, +/-Y, or +/-Z, or align directly to any of the six axis views. After aligning to +Z, a +Z step of 45 deg rotates the visible structure counterclockwise by exactly 45 degrees without changing any atomic coordinate.

Trajectories

Multi-frame files receive a timeline at the bottom of the viewport. You can:

  • drag the frame slider for immediate frame updates;
  • play or pause with Space;
  • set playback FPS and frame skip;
  • keep bond cutoffs and appearance settings across every frame;
  • run relaxation in interactive mode and inspect its optimization path;
  • export the complete loaded trajectory as a movie.

Export Video

Open Export & Save, select Export Video, then choose:

  • MOV with H.264 video or AVI with MPEG-4 video;
  • output width, height, and FPS;
  • current viewport framing or a fixed atomic scale in px/Å;
  • atom smoothness;
  • grid and axes visibility;
  • renderer, Sun brightness, position, and target.

Every trajectory frame is rendered. The movie uses the exact camera, crop, lighting, and atom styling shown by Preview Area. Movie backgrounds are white; transparent video export is not used.

Constraints

Constraints remain active during interactive transforms when Apply constraints is enabled. Disable that switch when unrestricted editing is required.

FixedLine

A constrained atom moves only along its permitted direction. The guide remains visible in the viewport and becomes more prominent when the atom is selected.

FixedLine movement

Example:

v_ase gui examples/readme_scene_assets/fixedline.traj --show-bonds --interactive

FixedPlane And FixScaled

FixedPlane movement is limited to the displayed plane. VASP selective dynamics read as FixScaled are shown according to their allowed fractional directions.

FixedPlane movement

Example:

v_ase gui examples/readme_scene_assets/fixedplane.traj --show-bonds --interactive

FixAtoms

Fixed atoms use a distinct surface treatment while keeping their element color. They remain recognizable without being confused with the yellow selection outline.

Hookean

Hookean constraints show their threshold and active spring state. The spring engages only after the constrained distance passes its cutoff.

Hookean constraint close-up

Hookean constraint motion

Example:

v_ase gui examples/readme_scene_assets/hookean.traj --show-bonds --interactive

Atom Editing

Interactive mode supports direct selection, move, and rotate operations. Move and angle increments can be set in the control panel, and the live transform readout reports the displacement or rotation applied so far.

Rotate mode

Ferrocene rotation

Example:

v_ase gui examples/readme_scene_assets/ferrocene.traj --show-bonds --interactive

Display And Measurement

The control panel provides:

  • orthographic or perspective projection;
  • exact camera-only axis rotation and six-direction view alignment;
  • dark or white live viewport backgrounds;
  • 3D solid or 2D flat atom-and-bond display;
  • live atomic scale in px/Å;
  • Modeling, Studio Sun, and Sun + Soft Shadow rendering;
  • editable Sun brightness, source, and target;
  • per-label element type, name, visibility, color, and radius;
  • selectable sphere smoothness and anti-aliasing;
  • atom-index, element, center, distance, and angle measurements;
  • unit-cell display, wrapping, and periodic supercell replication.

Bonds

Enable Show bonds and choose automatic, pairwise-cutoff, or manual bonds. Pairwise cutoffs use atom labels, so chemically distinct labels can have different cutoffs even when they share one element type. A cutoff of 0 disables that pair.

Bond thickness, cylinder or flat style, one custom color, or split endpoint colors can be selected. In interactive mode, automatic and pairwise bonds form and break while atoms move. Supercell bonds are repeated across the displayed supercell.

Export And Save

Option Result
Export POSCAR Current atomic structure in VASP format
Export ASE Pickle ASE Atoms data, labels, constraints, and valid SinglePointCalculator results
Export Image PNG using the requested dimensions and Preview Area crop
Export Video Complete trajectory as MOV or AVI
Export Blender Python scene script with atoms, optional cell, bonds, camera, Sun settings, and trajectory animation
Export 3DM Instanced Rhino geometry with atom/bond metadata and saved camera views
Export OBJ OBJ/MTL geometry plus a camera/metadata JSON sidecar in one ZIP
Save Project Complete structure, trajectory, edits, labels, and visual state in .vase
Save Settings Reusable appearance, bonds, camera, lighting, quality, and supercell settings in JSON

Use Preview Area before image or video export. Its fixed frame has the exact output aspect ratio; orbiting or zooming changes the structure inside the frame without moving the frame itself. Image-dialog changes to dimensions, framing, grid, axes, unit cell, transparency, atom smoothness, renderer, and Sun settings update the preview immediately; PNG export uses that same profile without recomputing it. Include unit cell independently controls cell geometry in Blender, 3DM, OBJ, image, and video output, regardless of the live View toggle.

.vase projects are self-contained: the complete structure or trajectory is stored inside the project together with labels and visual settings. The original input file is not required when the project is opened again.

Viewport background, 2D/3D display choice, and the camera rotation step are included in both .vase projects and reusable visual settings.

Rhino 3DM export needs one optional package:

python -m pip install "v_ase-gui[rhino]"

OBJ export needs no optional dependency. Keep the extracted .obj, .mtl, and .json files together; the JSON sidecar preserves the v_ase camera and object metadata that the OBJ standard cannot store itself.

Python

from ase.build import molecule
from v_ase.visualize import view

atoms = molecule("H2O")
view(atoms)

Interactive mode can return the edited ASE object:

edited = view(atoms, viz_only=False)
print(edited.positions)

Input Formats

File type is normally detected automatically. Common inputs include POSCAR, CONTCAR, VASP files, XDATCAR, vasprun.xml, XYZ, extended XYZ, ASE .traj, LAMMPS dump files, LAMMPS data files, and .vase projects.

For a filename without a useful extension, specify the reader:

v_ase gui ABCD --format POSCAR
v_ase gui ABCD --format XDATCAR
v_ase gui ABCD --format vasprun.xml
v_ase gui ABCD --format lammpstrj
v_ase gui ABCD --format extxyz
v_ase gui ABCD --format data

Use --index : for all frames, --index -1 for the last frame, or an integer for one frame.

Help

v_ase --help
v_ase gui --help

Report reproducible problems at GitHub Issues.

Download files

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

Source Distribution

v_ase_gui-0.0.74.tar.gz (31.4 MB view details)

Uploaded Source

Built Distribution

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

v_ase_gui-0.0.74-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file v_ase_gui-0.0.74.tar.gz.

File metadata

  • Download URL: v_ase_gui-0.0.74.tar.gz
  • Upload date:
  • Size: 31.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for v_ase_gui-0.0.74.tar.gz
Algorithm Hash digest
SHA256 ad04dc6947200dcc8d473590e1368238de107672bc1510e0c08b510d3076f047
MD5 0790842969cb9c447e932fec2c5108b4
BLAKE2b-256 7d02fc3bc6496bc77301950c6cdf07f3ec237cc115d2c5077c27bc2632c2dc32

See more details on using hashes here.

File details

Details for the file v_ase_gui-0.0.74-py3-none-any.whl.

File metadata

  • Download URL: v_ase_gui-0.0.74-py3-none-any.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for v_ase_gui-0.0.74-py3-none-any.whl
Algorithm Hash digest
SHA256 357957991d6fef5a9fa2f10effc1c605e2ba83d0b85568b36f585bcdee3ccfcf
MD5 1c9f7c3e29cc39923c9036041b5c234d
BLAKE2b-256 b7b63457cbd67e0b47d1419887a74fd4df2ffaa03d3267d3f980378600b7b502

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.2

2 files

0.3.1

2 files

0.2.36

2 files

0.2.35

2 files

0.2.34

2 files

0.2.33

2 files

0.2.31

2 files

0.2.30

2 files

0.2.29

2 files

0.2.28

2 files

0.2.27

2 files

0.2.26

2 files

0.2.25

2 files

0.2.24

2 files

0.2.23

2 files

0.2.22

2 files

0.2.21

2 files

0.2.20

2 files

0.2.19

2 files

0.2.18

2 files

0.2.17

2 files

0.2.16

2 files

0.2.15

2 files

0.2.14

2 files

0.2.13

2 files

0.2.12

2 files

0.2.11

2 files

0.2.10

2 files

0.2.9

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.1.18

2 files

0.1.17

2 files

0.1.16

2 files

0.1.15

2 files

0.1.14

2 files

0.1.13

2 files

0.1.12

2 files

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.0.120

2 files

0.0.119

2 files

0.0.118

2 files

0.0.117

2 files

0.0.116

2 files

0.0.115

2 files

0.0.114

2 files

0.0.113

2 files

0.0.112

2 files

0.0.111

2 files

0.0.110

2 files

0.0.109

2 files

0.0.108

2 files

0.0.107

2 files

0.0.106

2 files

0.0.105

2 files

0.0.104

2 files

0.0.103

2 files

0.0.102

2 files

0.0.101

2 files

0.0.100

2 files

0.0.99

2 files

0.0.98

2 files

0.0.97

2 files

0.0.96

2 files

0.0.95

2 files

0.0.94

2 files

0.0.93

2 files

0.0.92

2 files

0.0.91

2 files

0.0.90

2 files

0.0.89

2 files

0.0.88

2 files

0.0.87

2 files

0.0.86

2 files

0.0.85

2 files

0.0.84

2 files

0.0.83

2 files

0.0.82

2 files

0.0.81

2 files

0.0.80

2 files

0.0.79

2 files

0.0.78

2 files

0.0.77

2 files

0.0.76

2 files

0.0.75

2 files

This release

0.0.74 This release

2 files

0.0.73

2 files

0.0.72

2 files

0.0.71

2 files

0.0.69

2 files

0.0.68

2 files

0.0.67

2 files

0.0.66

2 files

0.0.65

2 files

0.0.64

2 files

0.0.63

2 files

0.0.62

2 files

0.0.61

2 files

0.0.60

2 files

0.0.59

2 files

0.0.58

2 files

0.0.57

2 files

0.0.56

2 files

0.0.55

2 files

0.0.54

2 files

0.0.53

2 files

0.0.52

2 files

0.0.51

2 files

0.0.50

2 files

0.0.49

2 files

0.0.48

2 files

0.0.47

2 files

0.0.46

2 files

0.0.45

2 files

0.0.44

2 files

0.0.43

2 files

0.0.42

2 files

0.0.41

2 files

0.0.40

2 files

0.0.39

2 files

0.0.38

2 files

0.0.37

2 files

0.0.36

2 files

0.0.35

2 files

0.0.34

2 files

0.0.33

2 files

0.0.32

2 files

0.0.30

2 files

0.0.29

2 files

0.0.28

2 files

0.0.27

2 files

0.0.26

2 files

0.0.25

2 files

0.0.24

2 files

0.0.23

2 files

0.0.22

2 files

0.0.20

2 files

0.0.19

2 files

0.0.18

2 files

0.0.17

2 files

0.0.16

2 files

0.0.15

2 files

0.0.14

2 files

0.0.13

2 files

0.0.12

2 files

0.0.11

2 files

0.0.10

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page