Krystals¶
Krystals: Android 平台轻量化 CIF 晶体编辑器
像 vesta 一样在移动平台便捷地查看晶体!
下载测试版 v0.6.4
快速上手¶
文件导入¶
主界面内提供了四种方式导入 CIF 文件:
- 导入本地文件:从文件管理器选择 CIF(晶体学信息文件) 文件并打开。
- 从预设中导入:软件提供了丰富的预设资源包,涵盖大部分基础 CIF 测试。您也可以通过“保存到预设”将自己的 CIF 文件保存在预设中。
- 从在线源导入:提供了从 Crystallography Open Database 中导入和从 Materials Project 中导入两种选择,其中后者需要 apikey,属于高级功能,需要赞助后使用激活码解锁。前者使用不受限制。
- 创建新文件:从空文件开始创建 CIF 文档。
查看器界面¶

① 菜单选项¶
包括文件读取与输出的基本操作和其他工具。
- 导入选项:在新标签栏导入目标 CIF 文件。效用同主界面;
- 保存到本地路径:将目前展示的 CIF 文件导出到本地路径;
- 保存到预设:将目前展示的 CIF 文件保存到预设晶体库,后续可以在预设中打开文件;
- 导出图片:将查看器内的视角高质量渲染,并保存到移动端相册;
- 分享到...:打开分享窗口,将目前展示的 CIF 文件发送到目标应用。
② 撤回 & 引擎切换 & 更改整体外观配置¶
- 3D 引擎使用 filament 进行渲染(推荐,更高流畅度以及画面质量)。对于可能无法正常渲染的机型,保留了用 canvas 绘图的 2D legacy 模式。
- 世界光源:调整查看器内光源的位置和材料光学行为;
- 景深:deep-cueing,根据线性调节远处物体的不透明度。“起始值” 和 “终止值” 代表景深线性函数的起始点和结束点。
③ 查看器 主界面¶
- 单指拖动可旋转晶体,双指开合可缩放晶体,双指拖动可平移晶体;
- 双击目标原子将显示原子信息,点按原子信息窗即可锁定该信息窗,后续可通过再次单击解锁。当信息窗被锁定时,信息窗不再自动消失,并且可保留多个信息窗。
④ 图例¶
- 展开后,点按顶部按钮并拖动可改变图例窗口高度。
⑤ 常用操作悬浮球¶
点按后即可展开悬浮球菜单。支持拖动并吸附到窗口边缘。
对齐¶
将晶体视图对齐到某一轴向。
锁定¶
固定晶胞视图不变。
测量¶
- 进入测量模式,选择测量长度和角度数据。依次点按路径上的原子即可完成测量;
- 与原子信息窗相同,单击测量信息窗可锁定;
- 要退出测量模式,只需再次点击“测量”,之后点击“关闭”按键。
编辑¶
进入编辑页面,修改晶胞数据,原子坐标和化学键规则:
- 基本信息:自由修改文件名,空间群和晶胞参数信息;
- 原子:点按“新建”在指定坐标新增原子。点按“修改”或”删除“,之后点击查看器内的原子,即可对原子信息作出修改。
- 化学键:定义键规则,或自动应用键规则。提供三种模式:
- 智能离子:采用 Voronoi 方法,计算原子键价和匹配对应半径。选用此规则时,原子信息窗将以
s=...显示当前原子键价; - 键合半径:用拟合的晶体内原子半径计算键规则;
- vdW 半径:使用 van der Waals 半径计算键规则(极其不精确!);
- 容忍度 \(\epsilon\) 可控制成键最大值。
- 扩展晶胞:从三个方向扩展晶胞得到超胞。
显示¶
进入显示页面,调节原子,化学键和配位多面体可见性:
- 原子:调节原子可见性及显示颜色;
- 化学键:调整对应化学键可见性。注意:取消勾选化学键不影响多面体显示。如需改变配位多面体,请进入编辑页面删除对应的键规则。 勾选“延伸至晶胞外”可汇出晶胞内原子与晶胞外原子配位的化学键。
- 多面体:调整对应原子的配位多面体可见性。
: material-info rmation: 信息¶
显示晶体信息窗。包含原子数目,空间群和晶胞参数等信息。
架构图¶
关于晶体的定义部分在 crystal-core 层中,关于化学键规则计算,配位计算等定义在 crystal-analysis。软件提供 Filament (renderer-filament) 和 Canvas (renderer-legacy) 两种渲染方式,二者基于 renderer-core 构建场景。crystal-io 负责读取与输出文件,目前软件仅适配 .cif 格式文件。
graph TD
subgraph App["Application Layer"]
APP[":app"]
end
subgraph Renderers["Renderer Layer"]
RF[":renderer-filament"]
RL[":renderer-legacy"]
end
subgraph Core["Logic Layer"]
IO[":crystal-io"]
IC[":interaction"]
RC[":renderer-core"]
AN[":crystal-analysis"]
end
subgraph Foundation["Foundation Layer"]
CC[":crystal-core"]
CD[":crystal-data"]
end
%% App dependencies
APP --> AN
APP --> IO
APP --> IC
APP --> RF
APP --> RL
%% Renderer dependencies
RF --> RC
RF --> IC
RL --> AN
RL --> RC
RL --> IC
RL --> CD
%% Core dependencies
IC --> RC
RC --> AN
IO --> AN
AN --> CC
AN --> CD
CC --> CD
构建安装包¶
主要依赖的环境:
- Android Studio with Android SDK 36
- Kotlin 2.1.21
- JDK 17
- Gradle 8.11.1
- Google Filament 1.71.5
- OkHttp 4.12.0
只需运行该脚本文件,即可下载所需环境并配置安装包:
.\scripts\bootstrap-build.ps1
构建输出的 APK 文件位于 app/build/outputs/apk。
软件提供的测试命令:
.\gradlew.bat :crystal-core:test :crystal-analysis:test :crystal-io:test :app:assembleDebug
贡献者¶
版权说明¶
本项目遵循 MIT 协议许可。
鸣谢¶
- 项目使用的 AI 模型:Openai ChatGPT-5.6-sol & Kimi-k3 & glm-5.2
- kunoyo-Galactose
- 参与软件测试版的测试人员