Skip to content

CatGo Documentation

CatGo is an AI-driven workbench for computational materials science. It combines an interactive 3D structure viewer, a visual DAG workflow engine, integrated HPC orchestration, and a natural-language AI assistant (CatBot) into a single desktop application (Tauri) — with an additional VS Code extension for in-editor workflows. The viewer handles crystals, molecules, and surfaces; the workflow engine generates DFT/MD/ML inputs, submits and monitors jobs on remote clusters, and post-processes results through band structure plots, phase diagrams, trajectory players, and more.

Key Features

  • 3D Structure Viewer — Interactive visualization of crystals, molecules, and surfaces with bonds, lattice, and periodic images
  • Multi-Format I/O — Parse and export CIF, POSCAR, XYZ, EXTXYZ, HDF5, CUBE, and compressed archives
  • Surface Engineering — Generate slabs from Miller indices, add vacuum layers, find adsorption sites
  • Symmetry Analysis — Space group detection, Wyckoff positions via Spglib/Moyo (WASM)
  • Structure Optimization — Geometry relaxation with EMT, xTB, MACE, CHGNet, M3GNet calculators
  • Spectroscopy — XRD patterns, radial distribution functions, band structure, density of states
  • Phase Diagrams — Binary, ternary, and quaternary convex hull stability analysis
  • Trajectory Playback — MD trajectory animation with streaming support for large files
  • Density Visualization — CUBE file isosurfaces and 2D slice planes
  • Database Integration — Search structures from OPTIMADE, Materials Project, and PubChem
  • Cross-Platform — Web app, Tauri desktop app, VSCode extension, Jupyter widget

Architecture Overview

CatGo
├── src/lib/                  # Svelte 5 component library (88 components)
│   ├── structure/            # 3D structure viewer (largest module)
│   ├── bands/                # Band structure & DOS plots
│   ├── brillouin/            # Brillouin zone visualization
│   ├── composition/          # Composition charts
│   ├── coordination/         # Coordination analysis
│   ├── cube/                 # CUBE file density viewer
│   ├── element/              # Element database (118 elements)
│   ├── periodic-table/       # Interactive periodic table
│   ├── phase-diagram/        # Phase diagram components
│   ├── plot/                 # General plotting (scatter, bar, histogram)
│   ├── rdf/                  # Radial distribution function
│   ├── trajectory/           # MD trajectory player
│   ├── xrd/                  # X-ray diffraction patterns
│   ├── api/                  # API clients (OPTIMADE, MP, PubChem)
│   └── settings.ts           # Unified settings schema
├── extensions/rust/          # Rust library compiled to WASM
│   └── src/wasm.rs           # 65+ WASM-exposed functions
├── server/                   # Python FastAPI computation backend
│   └── routers/              # Optimization, database, spectroscopy routes
├── src-tauri/                # Tauri desktop app shell
└── extensions/vscode/        # VSCode extension

Technology Stack

LayerTechnology
UI ComponentsSvelte 5 (runes: $state, $derived, $effect)
FrameworkSvelteKit with static adapter
3D RenderingThree.js via Threlte
2D PlotsD3.js
Heavy ComputationRust compiled to WebAssembly (ferrox-wasm)
SymmetrySpglib / Moyo (WASM)
HDF5 Filesh5wasm
Desktop AppTauri 2.0
Computation ServerPython FastAPI + ASE
Type SafetyTypeScript (strict mode)

Modules

Core

ModuleDescription
Structure Viewer3D interactive visualization of atoms, bonds, and lattices
File I/OParse and export crystal/molecular structure files
Lattice & CellLattice parameters, coordinate transforms, cell operations
BondingBond detection, editing, and coordination analysis

Crystallography

ModuleDescription
Surfaces & SlabsMiller index slab generation, vacuum layers, adsorption sites
SymmetrySpace group detection, Wyckoff positions, Bravais lattices
SupercellsPeriodic cell expansion and transformation

Dynamics & Optimization

ModuleDescription
TrajectoriesMD trajectory playback, frame indexing, streaming
OptimizationStructure relaxation with multiple calculators

Analysis & Spectroscopy

ModuleDescription
SpectroscopyXRD, RDF, band structure, density of states
Phase DiagramsThermodynamic stability and convex hulls
CompositionChemical formula handling and composition charts
Periodic TableInteractive element explorer with property data

Integrations

ModuleDescription
Density VisualizationCUBE file isosurfaces and slice planes
Database IntegrationOPTIMADE, Materials Project, PubChem search
Settings40+ configurable properties across platforms

Deployment Targets

TargetDescription
Web AppSvelteKit static site — runs in any modern browser
Desktop AppTauri 2.0 — native app for macOS, Windows, Linux with file system access
VSCode ExtensionEmbedded viewer inside the text editor
Jupyter / MarimoWidget for computational notebooks

Tutorials

Step-by-step guides for common workflows:

TutorialDescription
Getting StartedLoad, explore, and export your first structure
Building SlabsGenerate surface slabs from Miller indices
Structure OptimizationRelax structures with UFF, xTB, MACE, and more
Database SearchFind structures from OPTIMADE, Materials Project, PubChem
Trajectory PlaybackLoad and analyze MD trajectories
Density VisualizationCUBE file isosurfaces and slice planes

Released under the MIT License.