【学习工作赛道】MD UI:一站式分子模拟工作流管理平台
【标签】
学习工作
0.先和大家打个招呼吧
大家好,我是一名刚刚结束大一生活的化学专业学生,目前在高分子物理科研课题组参与MD(分子动力学模拟)相关研 究。
在真实的科研过程中,我们经常需要反复修改代码参数、上传服务器文件、提交终端命令、查看日志和下载结果。这些操作本身并不复杂,但非常机械、重复,也很容易打断研究思路。尤其是我们依赖的国际权威分子模拟软件GALAMOST本身没有图形化UI,通常只能通过终端命令运行。每次要在一堆服务器目录和历史案例里找到正在运行的任务,都很容易让人从原本的科研问题中被迫抽离 出来。
更麻烦的是,传统分子模拟工作流往往需要同时打开多个工具:一个用来编辑脚本,一个用来上传文件,一个用来登录服务器提交命令,一个用来查看结果或做可视化分析。对刚进入科研训练的学生来说,这种割裂的流程既不直观,也很容 易出错。
Agent的出现让我看到了改变这种局面的可能。对我个人来说,我一直对计算机技术有比较浓厚的兴趣,大学期间也辅修了一些计算机相关课程。于是我开始思考:能不能在AI的帮助下,自己写一个软件,把这些原本分散、混乱、重复的操作统一 管理起来?
这个项目就是在这样的想 法下诞生的。
因为我有一些基础的程序开发经验,也参加过华为HSD、TRAE ON CAMPUS等线下活动,所以对软件开发流程有基本理解。在确定了基础功能和产品方向之后,我开始尝试把需求交给Trae,一步步 推进这个项目。
坦白说,在复杂推理能力上,Trae国内版模型还有继续提升的空间。但在实际执行任务和反馈过程方面,它给我的体验很深。相比一些“埋头干”的开发工具,Trae在执行每一步任务时会清晰展示thinking、权限申请和操作过程,让我能理解它到底做了什么、改了哪些文件、为什么这么改。这一点对新手开发者或者技术小白非常友好,也在一定程度上避免了AI陷入“梦境 ”后乱改代码。
不避讳地说,在这个复杂项目中,我也使用了ChatGPT、Codex等强大模型和工具的协助。但在整个项目构建过程,以及我对vibe coding的理解和启蒙中,Trae给我留 下了很深刻的印象。
由于科研工作本身的需要,项目中非常详细的开发过程和完整源代码暂时不能完全开放展示。但无论最后是否获奖,我都认为Trae在这个项目中给了我很大帮助,所以我想把这个故事分享出来。也希望大家在比赛中都能取得满意的成绩,并在之后的vibe coding过程中,用AI agent激发出更 多真正有价值的创意。
1. De mo简介
是什么
MD UI是一款面向分子动力学模拟工作流的macOS桌面应用。它将初始构型准备、模拟脚本生成、服务器任务提交、运行状态监控、结果下载和数据后处理整合在同一个可视化界面中,帮助用户更高效、更可靠 地完成一次完 整的分子模拟。
面向谁
MD UI主要面向从事分子模拟、计算化学、材料科学和软物质研究的学生及科研人员,尤其适合需要频繁修改参数、重复提交模拟任务,或者不熟悉服 务器命令和复杂 脚本语法的用户。
主要功能
1.模块化脚本生成与参数配置
用户可以从GALAMOST指令模块库中选择所需模块,通过表单配置参数,并生成可提交的模拟脚本。系统正在从GALAMOST官方手册中提取API索引,逐步建立模块化schema,使脚本生成不再依赖固 定模板,而是由可组合的模拟模块构成。
2.完整的模拟项目与运行历史管理
每个模拟项目都有独立目录,参数、脚本、运行记录和下载结果都会被统一保存。每次提交都会生成独立的`run_id`,避免覆盖历史任务,并通过`run_history.json`记录PID 、运行时间和远程路径,便于复现和追踪。
3.本地与服务器一体化提交和监控
用户可以在界面中完成服务器测试、参数校验、脚本渲染、任务提交、状态检查、日志读取和结果下载。软件通过SSH将任务提交到服务器,并固定使用指定 GPU,降低手动输入命令带来的错 误风险。
4.结果摘要与数据后处理
任务完成后,MD UI会下载运行日志和结果文件,自动生成`resultsummary.json`,并将`data.log`解析为`datatable.json`。用户可以在界面中查看结果摘要、表格数据和基础曲线图,形成从“准备 模拟”到 “分析结果”的完整工作闭环 。
2. Demo创作思路
灵感来源
在真实的分子动力学研究中,一次模拟通常不只是“运行一段代码”。研究人员需要准备初始构型、编写模拟脚本、反复修改参数、登录服务器提交任务、监 控GPU和进程状态,最后还要下载轨迹并进行数据分析。
这些步骤往往分散在代码编辑器、终端、服务器文件夹和多个分析脚本之间。随着项目数量和参数版本增多,很容易出现代码与参数不一致、找不到历史版本、任务 重复提交,或者无法确认某个结果究竟由哪一套配置产生的问题。
因此,我希望 把这些原本割裂的操 作整合成一套连贯、可视化、可追溯的工作流。
想解决的问题
MD UI重点解决以下几个真实痛点:
1.脚本编写门槛高
分子模拟指令数量多、参数复杂, 手写脚本容易遗漏细节或产生语法错误。
2.传统代码难以迁移
科研人员通常已经积累了大 量脚本,不能为了使用图形界面而全部重写。
3.多次模拟难以追踪
同一项 目经常需要反复修改参数。靠手工复制文 件和命名文件夹,很难形成可靠的版本体系。
4.本地与服务器操作割裂
构型生成、模拟执行和后处理可能分 别运行在不同环境,容易把代码提交到错误位置。
5.任务提交存在安全风险
如果重复提交或在同一 GPU上同时运行多个任务, 可能造成服务器过载,因此需要明确的任务检查和提交保护。
6.运行状态不透明
用户需要频 繁切换终端查看命令、进程日志和GPU状态,难以及时发现异常。
为什么选择这个方向
我没有把MD UI做成一个简单的“脚本生成器”,因为生成代码只是整个模拟流程中的一小部分。我 更希望它成为一个覆盖项目创建、参数管 理、脚本生成、任务提交、状态监控和结果分 析的桌面工作台。
在设计中,我做了三个重要取舍:
1.可视化操作与专业代码并存
模块化表单适合快速配置,但代码仍然是科研工作的核心资产。因此, MD UI后续会继续支持导入和识别已有 GALAMOST脚本,而不是把用户限制在固定模板中。
2.优先保证可复现性和服务器安全
每次提交都会保存独立运行记录,避免历史结果被覆盖。远程运行目录采用`runs/<run_id>`结构 ,并通过PID和运行历史管理任务状态 。即使这会增加一些流程约束,也比无记录地反复提交任务更加可靠。
3.采用可扩展的模块配置结构
GALAMOST手册中的API正在被整理成模块schema。未来用户可以通过选择模块和填写参数生成脚本,而不是每个案例 都重新写模板。这样MD UI不会被限定在某一个固定案例上,而是可以逐步扩展到更多模拟体系和后处理流程。
最终,我希望MD UI不只是 减少几次命令输入,而是 让研究人员能够 更清楚地理解、管理和复现整个分子模拟过程,把更多时间投入到科学问题本身。
3. Demo
本项目目前是 本地macOS桌面应用,暂不提供公开在线体验地址。
4. TRAE 实践过程
核心开发会话ID
Ses sion ID:`6a5398aa673312a 5d30b4e42`
说明:贯穿整 个开发周期的主会话。
开发阶段
阶段一:Python Core基 础框架搭建
步骤1:设计模块化任务管理架构
实现项目创建、参数管理、脚本渲 染、任务提交、日志读取和结果下载等核心命令。
主要成果:
创建`c ore/job_manager.py`,实现项目生命周期管理
创建`core/main.py`,使用Typer构建CLI接口
建立服务器配置文 件`configs/servers.yaml`
建立模块模板系统`templates/modules/g alamost_ modules.yaml`
步骤2:实现GALAMOST 远程执行支持
针对服务器环境适配GALAMOS T4的运行方式。
主要成果:
固定服务器使用`CUDA_VISI BLE_DEVICES=3`
GA LAMOST内 部参数保持`gpu=0`
添加Python2.7兼容 层
实现远程PID管理和运行状态检查
步骤 3:添加运行历史和数据后处理
主要成果:
使用`run _history.json`记录每次运行
下载后自动生成`resu ltsummar y.json`
将`data .log`解析为`datatable.json `
阶段二:SwiftUI桌面应用开发
步骤4:构建主界面布局
主要成果:
左侧项目列 表
右侧参 数编辑区
底部操作日志和Pyt hon Core输出
Startup Check、Server I nfo和About面板
步骤5:实现项目管理功能
主要成果:
New P roject弹 窗
Clone Pr oject
Delete Loc al Project
Clean Project
Run H istory展示
步骤6:实现服务器交互功能
主要成果:
Test Server
Load Server Info
Vali date / Render / Submi t安全提交流程
Logs / Download / Status检查
Auto Re fresh Status和Auto Download Finishe d Run
步骤7:实现 结果查看与数据可视化
主要成果 :
Result Summary结果摘要
Quick Open常用输出文件
Data Table表格展示
Plot简单曲线绘制
阶 段三:发布准备和问题修复
步骤8:修复打包版输 入异常
排查发现,最初`.a pp`打包时使 用shell脚本作 为`CFBundleExecutable`,导致打包版输入框异常。后续改为直接使用真正的Swift可执行文件:
Contents/MacOS/ GalaGUIApp
步骤9:优化窗口布局和尺寸
主要成果 :
设置最小窗口尺寸
限制Start up Check、About、C ore Output和Operation Log 的高度
修复面板挤压和滚动区域混乱问题
步 骤10:提取 GALAMOST API文档
主要成果:
解析GALAMOST Sphinx手册包
提取20个模块的API索引
创建 `modules_schema.yaml`
开始构建A5B5案例的composer配置
关键 任务记录
|序号|功能|时间|
||||
| 1 |项目 创建/渲染/提交/下载核心命令| 20260712 22:48 |
| 2 | Python2.7 + GALAMOST4远程执行配置| 202607 13 11:19 |
| 3 | DPD A/B Test模块注册| 202 60713 11:24 |
| 4 | Result Summary功能| 20260713 12:21 |
| 5 | Server Info 读取| 20260713 21:27 |
| 6 |一键启 动脚本+环境检查脚本| 20260713 21:42 |
| 7 | macOS App打包脚本| 20260713 21:52 |
| 8 |输入框无法输入问题修复| 20260 713 23:3 3 |
| 9 |窗口布局优化| 20260713 23:45 |
| 10 | GALAMOST A PI索引提取| 20260714 10:14 |
| 11 |模块schema + A5B5 c omposer配置| 20260714 10:40 |
开发工具链
Python Core:Typer、Rich、Jinja2、PyYAML、Paramiko
SwiftUI :macOS原生桌面应用
项目 结构:CLI与GUI分离,配置文件驱动
远程运行环境:GALAMOST4、Python2.7、 GPU3
开发方式 :使用Trae进行任务拆分、代码修改、文件生成和调试反馈,并结合ChatGPT、Codex等工具进行方案推敲和问题定位
5.对应的报名审核通过帖子链 接
NanoTherm Lab 是一个面向先进芯片热管理研究的材料—结构—器件协同设计平台,旨在帮助跨学科科研学习者更高效地完成建模、仿真、测试与数据分析流程。
6.补充说明
这个项目对我来说不仅是一次比赛作品,也是一段真实的学习过程。它让我第一次比较系统地把化学科研中的实际痛点,转化为一个可 以运行、可以迭代、可以服务真实工作流的软件 原型。
AI agent没有替我“凭空完成”一个软件,而是在我不断拆解需求、验证结果、修正错误的过程中,成为了一个高效的协作伙伴。这个过程让我更直观地理解了vibe coding的意义:不是放弃思考,而是把人的想法、判断和方向感,与AI的执行力结合起来。
这也是我最想通过这个作品表达的内容。


