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 文件等值面和切片平面

快速链接 ​

CatGo 采用 AGPL-3.0-or-later。若 CatGo 对你的工作有所帮助,请注明 “This work used CatGo (https://app.catgo-ucsd.org).”并引用 CITATION.cff 中的首选文献;该请求不构成 AGPL 许可的附加条件。