v_ase
v_ase brings ASE's convenient terminal and Python workflow together with
direct, Blender-style 3D structure editing. Open a structure or trajectory
with one command, inspect and measure it in a local browser, edit it manually
or let an external AI agent translate a natural-language request into verified
structure operations, then export publication images, videos, and reusable 3D
scenes.
The animation builds a phosphorene nanoribbon twist one ridge at a time. Each amber box selects the remaining ridges, the Transform controls apply an exact X-axis rotation, and the sequence reaches a 13.85 degree twist before the completed structure is inspected from above and below.
| Work directly in v_ase | Included |
|---|---|
| Structures and trajectories | ASE-supported formats, live timeline, per-frame bonds |
| Geometry editing | Ordered selection, G move, R rotate, axis locks, numeric input |
| Scientific inspection | Distances, angles, torsions, displacement vectors, RDF, constraints |
| Volumetric fields | VASP and Cube/XSF grids, isosurfaces, density differences |
| Figure preparation | Appearance, bonds, lighting, exact preview, image/video export |
| Reproducible sessions | Self-contained .vase projects and reusable visual settings |
| Agent workflows | Semantic state/command API and a vendor-neutral AI skill |
Quick Start
Install from PyPI:
python -m pip install v_ase-gui
Or install the current GitHub source:
git clone https://github.com/lgyEthan/v_ase.git
cd v_ase
python -m pip install -e .
Start an empty workspace or open a file:
v_ase gui
v_ase gui FILE
Examples:
v_ase gui POSCAR
v_ase gui trajectory.extxyz
v_ase gui relaxation.traj
v_ase gui project.vase
The default View mode is optimized for visualization, trajectories, measurement, appearance, bonds, supercells, and export. Use the top-bar mode switch or start directly in Edit when atomic coordinates must change:
v_ase gui structure.vasp --interactive
No Node.js installation or hosted account is required. Closing the v_ase browser document releases the blocking terminal process.
Common Tasks
| Goal | Action |
|---|---|
| Inspect a structure | Middle-drag to orbit, wheel to zoom, left-click to select |
| Edit coordinates | Enter Edit, select atoms, press Esc to focus the viewport, then use G or R |
| Measure geometry | Select 2, 3, or 4 atoms in the required order |
| Play a trajectory | Use the bottom timeline or Space; FPS and Skip update live |
| Plot an RDF | Use Analysis > Radial Distribution Function |
| View a charge or potential grid | Open CHGCAR/LOCPOT/PARCHG/Cube/XSF, then use Analysis > Volumetric Data |
| Style a figure | Use Structure > Appearance/Bonding and View |
| Repeat or wrap a cell | Use Structure > Cell & Replication |
| Save the whole session | Use Export > v_ase Project and choose compact .vase or browser-ready HTML |
| Reuse only the visual style | Use Export > Save Settings |
| Share an offline 3D view | Use Export > Rendered media > HTML View; the lightweight view-only file is the default |
| Hand the scene to an AI | Provide the bundled agent skill; the agent starts the CLI/API session itself |
Viewport tip: after selecting atoms, press
Escto close the control panel before usingGorR. The selection is preserved and keyboard focus returns to the 3D viewport.
AI-Assisted Workflow
Tell an external AI agent what structure or figure you need in natural language. With the bundled v_ase Skill, the agent can inspect the actual atomistic state, operate v_ase through its structured CLI, and show the result in the normal GUI while it works.
- You ask: describe the scientific goal to Codex, Claude Code, or another external agent.
- The agent operates: the Skill teaches it how to inspect, edit, render, and verify through v_ase's CLI.
- You watch: v_ase shows the same live document in its GUI.
- You refine: GUI changes are reported back to the agent before it continues, so your newer work is not overwritten.
v_ase does not contain an LLM and does not accept natural language itself. The external agent handles the request; v_ase provides the scientific state, verified operations, rendering, and shared GUI. No screenshot OCR or coordinate guessing is required.
For example:
From this pristine 6 x 6 graphene sheet, remove the carbon nearest the cell center, convert its three nearest neighbors to pyridinic nitrogen, add a
Li_siteatom 2.15 A above the vacancy, preserve PBC and bonds, use a clean oblique studio-shadow view, and render a 4K image.
The agent preserves the three substituted sites as distinct N_pyridinic labels
and reports every committed edit to the same GUI session.
The agent reads atom identities and coordinates directly instead of repeatedly
guessing from screenshots. This can reduce token use while preserving exact
indices, coordinates, and labels. The example assets are generated from
ase.build.graphene:
- source graphene CIF
- intermediate pyridinic N3 CIF
- final N3/Li-site CIF
- ASE trajectory preserving labels
Structure Manipulation
Use Edit when atom coordinates must change. Selection, measurement, appearance, bonds, replication, wrapping, visual translation, and export remain available in the default View mode.
Select
- Left-click selects one atom;
Shift+ click extends or removes selection. - Left-drag draws a visible selection box.
- Appearance rows select complete label groups without merging distinct labels.
- Ordered single-atom selections are retained for geometry measurement.
Move
Press G after selecting atoms. Lock the move with X, Y, or Z, type an
exact displacement in angstrom, then confirm with left-click or Enter.
Configured ASE constraints remain authoritative when Apply constraints is
enabled.
Rotate
Press R after selecting atoms. Choose Selection COM, Active atom (last
selected), Origin, or Unit-cell center as the pivot, lock an axis if
needed, and enter an exact angle. To rotate around a particular atom, select
the moving atoms first and Shift-select the pivot atom last. For a panel-driven
edit, use Structure > Transform > Exact selection rotation to choose the
axis and angle, then click Rotate Selection. Both methods honor the current
constraint and undo settings. Every active rotation shows:
- the rotation axis through the chosen pivot;
- a neutral line fixed at the direction where the operation started;
- an amber line that follows the current structure;
- cyan candidate lines only when the commensurate guide is enabled.
Ferrocene: Use Fe As The Active Pivot
Select the upper cyclopentadienyl ring first, then Shift-select Fe last. With Active atom (last selected) enabled, Fe remains fixed at the exact rotation pivot:
R,Zrotates the ring around the axis through Fe.R,Xfolds the same ring around an X axis through Fe.
The active atom can be any selected atom; it does not need to coincide with the global origin or the selection center.
Phosphorene: Build The Twist One Edit At A Time
The animation records a sequence of normal v_ase edits:
- Keep the first puckered ridge fixed. Left-drag the visible amber box from the second ridge through the end of the ribbon, then release to commit the yellow outlined selection.
- Open Structure > Transform, keep Selection COM, choose axis
X, enter1.538889degrees, and click Rotate Selection. - Close the panel, left-drag a new box from the third ridge through the end, enter the same exact angle, and rotate again from the edited coordinates.
- Continue advancing the box-selection boundary by one 12-atom ridge. After 9 rotations, the final ridge is rotated by exactly 13.85 degrees.
- Orbit the completed structure from above to below to inspect the full three-dimensional twist.
The amber box shows the current selection area, the yellow outline identifies the atoms affected by the next edit, and bonds update after each rotation.
Black phosphorene has two puckered sublayers in one armchair unit cell. The
5 x 6 model contains 10 puckered ridges with 12 atoms per ridge. Green and
purple distinguish the upper and lower P sublayers; both remain phosphorus in
the ASE structure.
The relaxed source coordinates come from the supporting information of Villegas et al.. The 13.85 degree target is one of the H-APNR angles tabulated by Jang et al., and the green/purple sublayer convention follows published phosphorene structure diagrams such as Zhang et al.. The example demonstrates geometry editing and is not an energy-minimized final structure.
Graphene/hBN: Find A Commensurate Rotation
Select the hBN layer, enable Commensurate guide, then use R, Z. The
top view intentionally hides the world X/Y/Z axes so the neutral start line,
amber current line, and labeled cyan cell-match candidates remain distinct.
Magnetic angle snap can pull the active rotation to a candidate within the
configured tolerance.
Normal R rotates selected atoms. Cell Transform is a separate periodic
operation that applies an integer matrix to the cell and every trajectory
frame. Its equations and assumptions are documented in
unit_cell_aware_rotate.md.
Measurement And Analysis
The numbered a1 to a4 markers record selection order and are deliberately
different from atom indices.
| Ordered selection | Reported result |
|---|---|
| 1 atom | Label, element, position, force, charge, tag, magnetic moment |
| 2 atoms | Direct distance and minimum-image distance |
| 3 atoms | Angle a1-a2-a3, centered on a2 |
| 4 atoms | Signed torsion a1-a2-a3-a4 |
| 5 or more | Total count and per-label counts |
The connector, angle arc, torsion axis, and compact value badge stay attached to the selected atoms. Hover information is independent, so moving the pointer does not replace a saved measurement.
For trajectories, Analysis > Displacement compares the current frame with the previous frame or a chosen reference. Minimum-image correction, vector scale, thickness, color, and 2D/3D style are configurable. Displayed supercells repeat the vectors, and visual translation moves both endpoints without changing the physical displacement.
Volumetric Fields
Open a VASP CHGCAR, CHG, PARCHG, LOCPOT, or ELFCAR directly. Quantum
ESPRESSO and other electronic-structure codes can use Gaussian Cube or XSF
grid output:
v_ase gui CHGCAR
v_ase gui LOCPOT
v_ase gui charge-density.cube
v_ase gui charge-density.xsf
Analysis > Volumetric Data controls the dataset, isovalue, signed
positive/negative surfaces, mesh detail, colors, and opacity. Multiple
compatible datasets can be combined with coefficients such as +1, -1, -1
for a charge-density difference. Grid values stay in the local v_ase backend;
the browser receives only the generated surface mesh.
Visual translation and displayed cell replication move or repeat the isosurface together with the atoms. Set Supercell as Cell repeats both the ASE structure and periodic scalar grid exactly for diagonal integer replications. A general non-diagonal cell matrix is rejected while scalar grids are loaded because preserving that sampled field would require an explicit interpolation choice. After a materialized diagonal supercell, Reset Coordinates restores the original atoms, cell, and scalar grid together; Undo/Redo keeps the same atomic field pairing.
Radial Distribution Function
Analysis > Radial Distribution Function plots the current frame in a resizable Plotly drawer below the viewport. The total RDF is always included. Pair curves default to the active bond-label pairs and can be switched to all label pairs or total-only. Set the bin count and cutoff, then export exactly the plotted columns as CSV.
RDF uses ASE's periodic neighbor search and the full triclinic cell. To avoid
shape-dependent tails from incomplete spherical shells, v_ase limits the
cutoff to half the smallest cell-face spacing and reports when a requested
value was reduced. Bulk normalization is reported only for cells periodic in
all three directions; partial-PBC and finite systems require a separate
boundary correction and are rejected instead of returning a misleading bulk
g(r).
The same Analysis workspace keeps the 3D scalar field, structure, total RDF, and selected label-pair curves synchronized to the current frame.
Constraints
ASE remains authoritative when Apply constraints is enabled. Constraint visualization is local to each atom rather than merged at a group center.
FixedLine
A short cyan line passes through each constrained atom and remains visible
without selection. Starting G displays a longer guide through the atom's
original position while ASE restricts movement to that direction. FixedLine
does not use a ring or plane disc.
v_ase gui examples/readme_scene_assets/fixedline.traj --interactive
FixedPlane And FixScaled
Each constrained atom keeps its own local ring, crosshair, and normal marker.
When G starts, a larger translucent guide plane appears at that atom's
original position so the permitted surface remains visible while the atom
moves. Multiple selected atoms retain independent planes; no center-of-mass
plane is substituted.
VASP selective dynamics read as FixScaled are displayed from their allowed
fractional directions.
v_ase gui examples/readme_scene_assets/fixedplane.traj --interactive
FixAtoms
Fixed atoms keep their element color but use a distinct constrained surface treatment. They remain identifiable without looking selected.
Hookean
Hookean constraints show their inactive cutoff and engaged state separately.
After the constrained distance passes rt, a shaded 3D helical spring appears
between the constrained atoms.
v_ase gui examples/readme_scene_assets/hookean.traj --interactive
Relaxation
Structure > Relaxation places every optimization step on a dedicated timeline. A single loaded structure gains a relaxation movie after the first run. If a source trajectory is already open, source and relaxation timelines remain separate and the active timeline is clearly selected.
The included example starts from a deliberately compressed C60 geometry and runs ASE FIRE with v_ase's repulsive fallback calculator:
v_ase gui examples/readme_scene_assets/crowded_c60_initial.cif --interactive
The fallback calculator is intended for removing obvious close contacts, not for predictive chemistry. Its cutoff scale and strength are editable. Attach a scientific ASE calculator when the optimized energy or forces will be used as physical results.
Trajectories
Multi-frame inputs add a timeline below the viewport. Scrubbing updates the
frame continuously, selected atom indices persist when topology permits, FPS
changes apply during playback, and Skip advances by skip + 1 source
frames per tick.
Bond topology is evaluated for each frame, so bonds form or break when a pair crosses its cutoff. Appearance, pair settings, supercell display, camera, and analysis settings remain active across the movie.
Video export uses FPS as playback speed. Optional N x interpolation creates
(source_frames - 1) * N + 1 output frames. Minimum-image interpolation uses
periodic cells to avoid jumps across a boundary. Interpolation takes longer
because more frames are rendered.
Appearance, Bonds, And Rendering
Structure > Appearance controls each stable atom label:
- ASE chemical TYPE and independent visual label;
- visibility and selection availability;
- color and radius;
- Standard, Metal, or Rubber material;
- all/partial/none selection checkbox.
View mode applies appearance by label. Edit mode can keep per-atom material overrides. Relabeling does not reorder the table or merge otherwise distinct atom types accidentally.
The comparison uses three identical Cu13 clusters with the same element color and radius, so only the optical material changes:
| Material | Visual response | Typical use |
|---|---|---|
| Standard | Balanced diffuse color and compact highlight | General structures and chemically neutral figures |
| Metal | Strong environment reflection and bright metallic highlight | Metals, electrodes, and reflective surfaces |
| Rubber | High roughness with broad, muted highlights | Soft visual grouping and low-glare nonmetal regions |
Materials affect rendering only. ASE elements, coordinates, calculators, and constraints are unchanged.
Structure > Bonding provides automatic inference, explicit label-pair cutoffs, and manual index pairs. A pair cutoff of zero disables that pair. Changes apply immediately. Bonds support:
- cell-local or periodic minimum-image display;
- cylinder or flat 2D geometry;
- custom color or two half-bonds using the atom colors;
- configurable diameter;
- live formation and breaking during Edit transforms.
The top view shows a 6 x 6 Cu2O(111) film on 7 x 7 Cu(111), with one
interfacial oxygen positioned over a substrate Cu top site.
The Cu(111) substrate uses a nearest-neighbor touching-sphere radius.
Cu_oxide-O_oxide and Cu_substrate-O_oxide bonds are enabled, while
Cu_substrate-Cu_substrate, Cu_oxide-Cu_oxide, cross-region Cu-Cu, and
O-O pairs are disabled. Dark metallic substrate Cu, bright standard-material
oxide Cu, and matte red oxide O separate the phases without changing ASE
elements. Each bond is split into the colors of its two endpoint atoms, so the
Cu-O connectivity remains readable without an unrelated custom bond color.
Separate oxide and substrate labels let each interaction be enabled or
assigned its own cutoff independently.
v_ase gui examples/readme_scene_assets/cu2o111_on_cu111_pairwise_bonds.traj
View controls projection, atomic scale, anti-aliasing, sphere smoothness, background, 2D/3D display, grid, axes, unit cell, overlays, and cell material. The Axes and Unit Cell switches update the working viewport immediately; they are not export-only settings. Hiding world axes does not remove the compact orientation gizmo. New documents use orthographic projection and a true-white background.
The top-bar renderer switches between fast modeling light and Sun/soft-shadow rendering. Sun source, target, intensity, and direction can be manipulated in the viewport and carried into Blender export.
Export And Save
| Command | Result |
|---|---|
| Export POSCAR | Current physical ASE structure in VASP format |
| Export ASE Pickle | ASE Atoms, labels, constraints, arrays, and a valid SinglePointCalculator |
| Export Image | PNG by default; JPEG, PDF, and lossless WebP from the exact preview frame |
| Export Video | Constant-frame-rate H.264 MOV or MPEG-4 AVI with optional interpolation |
| Export Blender | Optimized scene script with atoms, bonds, cell, camera, and Sun |
| Export 3DM | Instanced Rhino geometry, metadata, and saved camera views |
| Export OBJ | OBJ/MTL, camera, and metadata in a ZIP |
| Export HTML View | Offline, view-only 3D document; lightweight by default, with optional .vase recovery |
Save .vase |
Compact project with structure/trajectory and complete visual state |
| HTML Project | Browser-ready project with complete embedded .vase recovery by default |
| Save Settings | Reusable visual settings without coordinates |
Image, video, and HTML use one shared Preview Area composition. Its aspect ratio, camera, crop, lighting, atom scale, and included overlays match the saved output. HTML View defaults to grid off, axes on, and unit cell on; all three overlays can be changed before saving.
The system save picker is opened before expensive rendering or scene generation when the browser supports it. Canceling the picker cancels the export. Chrome may then show This site can view changes you make to this file. That message is Chrome's File System Access permission notice: v_ase can write only to the destination selected in that picker. Browser code cannot hide the notice while retaining destination selection before rendering.
Image export uses one determinate progress bar for rendering, pixel capture,
upload, encoding, download, and the final file write. It reports estimated
remaining time and reaches 100% once, only after the destination is complete.
Video export follows the same monotonic rule across all frames and encoding.
Every source frame is retained exactly once at 1x; interpolation adds
in-between frames. Visible displacement vectors and other selected scene
overlays are recalculated for each rendered frame.
Project Or Shareable HTML
Under Export > v_ase Project, use Save .vase for the smallest complete project. It contains every loaded frame, coordinates, cells, PBC, labels, constraints, safe calculator results, camera, appearance, bonds, lighting, analysis, and export settings. It is self-contained and never references the original input file.
Use HTML Project or HTML View when the result should open directly in a browser. The save dialog shows the exact shared Preview Area crop and lets you choose grid, axes, and unit-cell visibility. Every generated HTML:
- opens offline without v_ase, Python, a server, or a CDN;
- restores the saved camera, viewport styling, bonds, constraint overlays, displacement vectors, supercell, visual translation, and trajectory;
- allows orbit, pan, zoom, frame stepping, and movie playback;
- exposes no atom, structure, appearance, or project editing controls.
HTML View leaves Embed editable .vase project off by default and creates
the smaller view-only handoff. HTML Project enables it by default and stores
the complete .vase inside the same HTML. Embedded documents expose
Download .vase, and either command restores the full editable project:
v_ase gui project.vase
v_ase gui project.html
With project embedding disabled, the file is smaller and remains a portable view-only document. It cannot be restored as an editable v_ase project. v_ase reports this explicitly if that lightweight HTML is opened as input.
The exported frame is stored as an automatically optimized high-resolution poster as well as an interactive 3D scene. The initial HTML surface contains only that exact Preview Area crop: no v_ase logo, header, decorative border, or page margin is included. This lets macOS Finder/Quick Look show the structure without executing WebGL. In a browser, the first prepared WebGL frame replaces the poster with a short cross-fade as soon as the first live frame is ready, before camera input begins. Both surfaces occupy the same rectangle, so the structure does not jump. View-only controls appear only after pointer or keyboard activity.
HTML width and height inherit the image/video Preview Area. They define the saved camera aspect and crop, not a fixed live WebGL resolution. The interactive renderer automatically follows the browser size and display pixel density.
HTML is larger than .vase because it contains the browser renderer and
immediately readable scene data. Embedding adds a Base64 copy of .vase on
top of that. Keep .vase as the compact editable source of truth.
Opening an ordinary structure in an existing tab keeps the current visual
settings; opening .vase or project-embedded HTML restores the saved project.
Rhino export requires the optional dependency:
python -m pip install "v_ase-gui[rhino]"
OBJ export has no optional Python dependency.
Agent Setup
The AI agent runs separately from v_ase. Give it the complete v_ase Skill directory, then describe the result you want. The agent starts the machine-readable v_ase session, gives you the live GUI URL, and performs verified changes in that same document.
The Skill is vendor-neutral and can be used by Codex, Claude Code, ChatGPT desktop agents, Gemini-based agents, agentic IDEs, or another agent that can run local commands.
your natural-language request
-> external AI agent + v_ase Skill
-> v_ase structured CLI
<-> the same live v_ase GUI you can watch and edit
--cli is not an embedded AI model. It is the structured connection the
external agent launches for itself. It exposes atomistic state and safe
operations, and reports committed GUI changes back to the agent. Revision
checks prevent an older agent command from silently replacing a newer human
edit.
What To Give The AI
Prefer the complete skill directory. If the client accepts only individual files, provide the following:
| Always provide | Add when the task needs it |
|---|---|
SKILL.md |
semantic-api.md for live state, edits, camera, render, or export |
agent-setup.md |
collaboration.md while a human and agent share the live GUI |
workflows-and-examples.md for multi-step scientific workflows |
|
cli-and-environments.md for installation, server, WSL, or process handling |
|
safety-and-errors.md before destructive edits, relaxation, or file output |
|
evaluation.md when changing or releasing v_ase itself |
For an AI client without a native skill loader, attach the files above and use:
Read SKILL.md and agent-setup.md. Use v_ase's structured CLI to inspect and
edit the structure, give me the live GUI URL so I can watch or refine it, honor
newer GUI changes before continuing, and verify both scientific state and the
final rendered output.
The compatibility document
skills_v_ase.md points existing integrations to the
same canonical skill and reference set.
Install The Skill
Clients with skill-folder support should install the complete directory:
# Codex
cp -R v_ase/skills/visualizing-atomic-structures-with-v-ase "$CODEX_HOME/skills/"
# Claude Code, from a project root
mkdir -p .claude/skills
cp -R v_ase/skills/visualizing-atomic-structures-with-v-ase .claude/skills/
For another AI, use its documented local skill directory if it supports the
same SKILL.md convention. Otherwise attach the files listed above or make
them readable in the project and include the bootstrap instruction.
Detailed CLI fields and command examples live in the Skill references rather than this user guide:
Documents And File Opening
The top-bar Open button starts with the operating system file picker. A selected file can:
- replace the active document;
- append structures to its current trajectory;
- open in a new independent v_ase tab.
If the active document is empty, the selected file opens there immediately; the destination chooser is shown only when a document already contains a structure or trajectory.
The + beside the document tabs creates an empty independent document. Each
tab owns its structure, trajectory, camera, selection, history, settings,
calculator, and .vase output.
Adding .vase to an existing trajectory imports only its structures and keeps
the current tab's visual state. Replacing a tab or opening a new one restores
the complete .vase project.
Python
from ase.build import molecule
from v_ase.visualize import view
atoms = molecule("H2O")
view(atoms) # View mode
Inside Jupyter Notebook or JupyterLab, the same call automatically displays a view-only interactive model directly below the cell:
view(atoms)
The notebook output supports orbit, pan, zoom, and trajectory playback. After
importing view, use the %v_ase line magic to switch the default at any time:
%v_ase inline
view(atoms) # interactive output below this cell
%v_ase browser
editor = view(atoms, block=False) # full interface in an external browser
%v_ase auto # restore automatic Jupyter detection
%load_ext v_ase.notebook registers the same magic explicitly when needed.
Passing notebook="inline" / True or notebook="browser" / False to one
view() call overrides the current magic setting.
When retaining an inline handle, display it explicitly:
from IPython.display import display
editor = view(atoms)
display(editor)
Return an edited ASE object:
edited = view(atoms, viz_only=False)
print(edited.positions)
view() accepts one ASE Atoms, a sequence of frames, or a supported file
path. view_edit() remains a compatibility alias for Edit mode.
File Formats
Common structure inputs include POSCAR/CONTCAR, VASP files, XDATCAR,
vasprun.xml, XYZ/extxyz, ASE .traj, LAMMPS dump/data, CIF, and .vase.
Volumetric inputs include VASP CHGCAR/CHG/PARCHG/LOCPOT/ELFCAR and Gaussian
Cube/XSF grids. ASE readers cover additional structure formats.
Use --format when an ambiguous filename does not identify the reader:
v_ase gui ABCD --format POSCAR
v_ase gui ABCD --format vasprun.xml
v_ase gui ABCD --format lammpstrj
v_ase gui ABCD --format data
v_ase gui ABCD --format CHGCAR
v_ase gui ABCD --format qe-cube
v_ase gui ABCD --format qe-xsf
Use --index : for every frame, --index -1 for the last frame, or an integer
for one frame.
Repeated POSCAR/CONTCAR species blocks remain separate visual labels. For
example, O Cu O with counts 1 14 5 becomes O1, Cu, and O2 while all
oxygen atoms remain ASE element O. Custom labels retain their complete text
when they are renamed or used for pair analysis.
Controls
| Input | Action |
|---|---|
| Left click / Shift + click | Select / extend selection |
| Left drag | Box select |
| Middle drag | Orbit without inertia |
| Shift + middle drag | Pan |
| Wheel | Zoom |
G / R |
Move / rotate selected atoms |
X, Y, Z during G/R |
Lock transform axis |
X, Y, Z otherwise |
Align camera to an axis |
| Number keys | Exact move distance or rotation angle |
Enter or left click |
Confirm transform |
Esc or right click |
Cancel transform |
Ctrl+C, Ctrl+V |
Copy and paste atoms |
Ctrl+Z, Ctrl+Shift+Z |
Undo and redo structure and visualization-setting changes; camera navigation is excluded |
Delete / Backspace |
Delete selected atoms |
Space |
Play or pause the active timeline |
| Left / Right Arrow | Previous / next frame in the active timeline |
Tab or Esc |
Open a collapsed control panel |
Esc with the panel open |
Close it and return focus to the viewport |
The ? button contains the complete shortcut table.
Remote Servers
Install v_ase on both the local computer and remote host, then run one command locally:
v_ase gui USER@SERVER:/absolute/path/to/STRUCTURE
An SSH config alias works:
v_ase gui physics:/absolute/path/to/trajectory.extxyz
v_ase selects private ports automatically, starts the backend beside the
remote file, creates the SSH tunnel, and opens the local browser. The source
file and full trajectory cache remain on the server; only the current frame
data required for local Three.js rendering crosses the tunnel. Use ProxyJump
in ~/.ssh/config when a login node is required.
Troubleshooting
v_ase command is not found
Install and run with the same Python environment:
python -m pip install --upgrade v_ase-gui
python -m v_ase.cli --version
If the module command works but the console command does not, reactivate the
environment or add its Python scripts directory to PATH.
The browser does not open, or WSL prints gio: ... Operation not supported
The terminal also prints the complete local URL. Ctrl+click it or copy the text
beginning with http:// into Chrome, Edge, Firefox, or another browser. Keep
the terminal process running.
Example with sensitive session identifiers masked:
(base) giyeok@DESKTOP-XXXX:~$ v_ase gui
gio: http://127.0.0.1:58039/workspace?workspace_id=xxxx&session_id=xxxx: Operation not supported
For better WSL performance, keep trajectories under the Linux filesystem
rather than /mnt/c/....
A file is detected with the wrong format
Force the reader:
v_ase gui FILE --format POSCAR
v_ase gui FILE --format vasprun.xml
v_ase gui FILE --format lammpstrj
v_ase gui FILE --format data
Replicated supercell atoms cannot be selected
In Edit, displayed replicas are noneditable previews. Use Set Supercell as Cell to create real ASE atoms and an editable larger cell. In View, displayed replicas are selectable and participate in center, distance, and other measurements.
Video export is unavailable or slow
Video export requires at least two frames and browser MediaRecorder support.
MOV/AVI conversion uses the bundled imageio-ffmpeg. Interpolation renders
additional frames and requires stable atom count, element, label, and ordering
between adjacent source frames. The selected FPS controls playback time:
72 frames at 30 FPS produce 2.40 seconds. The progress indicator reaches 100%
only after encoding and the destination write both finish.
Chrome says this site can view changes made to the saved file
This is a Chrome security notice for the File System Access API. v_ase opens the system save picker before a costly image, video, Blender, or 3D scene export so canceling does not waste time. It receives write access only to the file you choose. Chrome does not allow a page to suppress this notice; using an ordinary browser download would remove advance destination selection.
A large trajectory opens or plays slowly
- Keep the default View mode unless editing is required.
- Use
--stream-frameswhen frame data should be loaded on demand. - Keep browser hardware acceleration enabled.
- Close unused v_ase tabs; inactive tabs pause rendering but retain document state in memory.
- In WSL, keep data in the Linux filesystem.
RDF reports that fully periodic 3D boundaries are required
v_ase does not label a finite or partial-PBC histogram as a bulk RDF. Define a
valid 3D periodic cell for bulk g(r), or use a method with the boundary
correction appropriate to the finite, slab, or wire geometry.
Volumetric datasets cannot be combined
Density differences require identical grid dimensions, cell vectors, origin, PBC, endpoint convention, and units. Generate all component grids on the same FFT mesh, or resample them deliberately before opening them in v_ase.
Installation fails while pip checks an unrelated package version
A package version reported as None usually belongs to a different incomplete
or manually installed distribution in that environment. Run
python -m pip check, repair that distribution, or use a clean environment:
python -m venv .venv
python -m pip install --upgrade pip
python -m pip install v_ase-gui
Run v_ase --help or v_ase gui --help for all CLI options. Report
reproducible problems at
GitHub Issues. Security and
third-party details are in SECURITY.md and
THIRD_PARTY_NOTICES.md.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file v_ase_gui-0.1.1.tar.gz.
File metadata
- Download URL: v_ase_gui-0.1.1.tar.gz
- Upload date:
- Size: 7.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93941357e2a70a8ce38f53dcec0a766a04cda3b51963eff10120e6acc815cc7b
|
|
| MD5 |
fb08e091946aa310cb1439f37df95033
|
|
| BLAKE2b-256 |
0e79a373ab587ca409fbbd9d46d274234c3074bd9ba976ce53dfecec99b2a033
|
File details
Details for the file v_ase_gui-0.1.1-py3-none-any.whl.
File metadata
- Download URL: v_ase_gui-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2491535f51a37ab75647b83443f368b4c32c4ef09fcf08f1d57f7b07bdac3752
|
|
| MD5 |
80bf056f4c009fd4fdd84c882cb20724
|
|
| BLAKE2b-256 |
e5b686c55e82a5411ed87e0cf53739cca67e1c8212eb45b21f26850c1265edb3
|