Skip to content

CatGo 文档

CatGo 是一个面向计算材料科学的 AI 驱动工作台。它把交互式 3D 结构查看器、可视化 DAG 工作流引擎、集成 HPC 编排,以及自然语言 AI 助手(CatBot)整合进一个桌面应用(Tauri)中,并提供 VS Code 扩展以支持编辑器内工作流。查看器可以处理晶体、分子和表面;工作流引擎可以生成 DFT/MD/ML 输入,在远程集群上提交和监控任务,并通过能带图、相图、轨迹播放器等工具完成后处理。

主要功能

  • 3D 结构查看器 - 交互式查看晶体、分子和表面,支持化学键、晶格和周期镜像原子
  • 多格式 I/O - 解析和导出 CIF、POSCAR、XYZ、EXTXYZ、HDF5、CUBE 以及压缩归档
  • 表面工程 - 根据 Miller 指数生成 slab,添加真空层,寻找吸附位点
  • 对称性分析 - 通过 Spglib/Moyo(WASM)检测空间群和 Wyckoff 位置
  • 结构优化 - 使用 EMT、xTB、MACE、CHGNet、M3GNet 等计算器进行几何弛豫
  • 光谱分析 - XRD 图谱、径向分布函数、能带结构、态密度
  • 相图 - 二元、三元和四元凸包稳定性分析
  • 轨迹播放 - 支持大文件流式加载的 MD 轨迹动画
  • 密度可视化 - CUBE 文件等值面和 2D 切片平面
  • 数据库集成 - 从 OPTIMADE、Materials Project 和 PubChem 搜索结构
  • 跨平台 - Web 应用、Tauri 桌面应用、VS Code 扩展、Jupyter widget

架构概览

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

技术栈

层级技术
UI 组件Svelte 5(runes: $state, $derived, $effect
框架SvelteKit with static adapter
3D 渲染Three.js via Threlte
2D 图表D3.js
重计算Rust compiled to WebAssembly(ferrox-wasm)
对称性Spglib / Moyo(WASM)
HDF5 文件h5wasm
桌面应用Tauri 2.0
计算服务器Python FastAPI + ASE
类型安全TypeScript(strict mode)

模块

核心

模块说明
结构查看器原子、化学键和晶格的 3D 交互式可视化
文件 I/O解析和导出晶体/分子结构文件
晶格与晶胞晶格参数、坐标转换和晶胞操作
键合键检测、键编辑和配位分析

晶体学

模块说明
表面与 SlabMiller 指数 slab 生成、真空层、吸附位点
对称性空间群检测、Wyckoff 位置、Bravais 晶格
超胞周期晶胞扩展和变换

动力学与优化

模块说明
轨迹MD 轨迹播放、帧索引和流式加载
优化使用多种计算器进行结构弛豫

分析与光谱

模块说明
光谱分析XRD、RDF、能带结构、态密度
相图热力学稳定性和凸包
组成化学式处理和组成图表
周期表带属性数据的交互式元素浏览器

集成

模块说明
密度可视化CUBE 文件等值面和切片平面
数据库集成OPTIMADE、Materials Project、PubChem 搜索
设置跨平台的 40+ 个可配置属性

部署目标

目标说明
Web AppSvelteKit 静态站点,可在现代浏览器中运行
Desktop AppTauri 2.0,面向 macOS、Windows、Linux 的原生应用,支持文件系统访问
VSCode Extension嵌入文本编辑器中的查看器
Jupyter / Marimo面向计算 notebook 的 widget

教程

常见工作流的分步指南:

教程说明
快速上手加载、查看并导出第一个结构
构建 Slab根据 Miller 指数生成表面 slab
结构优化使用 UFF、xTB、MACE 等弛豫结构
数据库搜索从 OPTIMADE、Materials Project、PubChem 查找结构
轨迹播放加载和分析 MD 轨迹
密度可视化CUBE 文件等值面和切片平面

快速链接

基于 AGPL-3.0-or-later 许可证发布。