用 SwiftUI 把 MATLAB 求解器包装成原生 macOS 应用,4 模块侧边栏切换,纯 Swift 信号处理管线。
项目成果汇报 · 2026 年 6 月
从想法到能运行的作品。
五个项目,五个方向——科研求解器包装为桌面 App、文献阅读器从 tkinter 重构到 Web、日历助手接入 Claude Agent、AI 研发看板从零搭建、个人网页上线。
Portfolio at a glance
五个项目,从科研工具到效率应用,完整覆盖。
从 tkinter 桌面端重写为 FastAPI Web 应用,双轨并行(DeepSeek 文本 + MiMo 视觉),SSE 实时进度。
SwiftUI 原生 macOS 应用,Claude CLI 驱动智能对话,双层记忆系统,结构化指令解析创建事件。
FastAPI + SQLite + 零构建前端,DeepSeek AI 分析项目进展,灵感推荐池 + 项目管理全流程。
Apple 风格单页简历,项目经历 + 论文配图 + 荣誉展示,纯 HTML/CSS/JS,已部署上线。
Project 01 · 从 MATLAB 脚本到 macOS App
最大的创新不是求解器能算什么,而是把它变成了一个真正的 App。
之前的求解器是一个 MATLAB 项目——只有装了 MATLAB 的人才跑得动。这次的核心工作是用 SwiftUI 把它包装成一个原生 macOS 应用:用户不需要装 MATLAB、不需要懂命令行、不需要打开 IDE。双击 App,点按钮就能跑仿真和分析数据。
底层求解器面向船舶水润滑轴承 PEEK 材料超声无损检测,App 封装了仿真求解和数据信号处理两大功能模块,反演和报告模块已预留接口。
仿真求解模块
8 个预置案例,点按钮就跑。
NavigationSplitView 侧边栏切换 4 个模块。SolverView 通过 Swift Process → zsh -c → MATLAB 命令行(Rosetta x86_64),实时捕获 stdout 显示在日志区,运行完成后自动查找最新图像并弹出预览。
数据处理模块
纯 Swift DSP 管线,零 Python 依赖。
用 Accelerate 框架(vDSP FFT / vDSP_vrampD)实现了完整信号分析:Butterworth 低通滤波 → Hilbert 包络 → 自动双峰检测 → TOF/声速。Canvas 绘制波形图,支持 CSV(自动检测分隔符)和 TDMS 二进制格式。
⭐ 底层物理创新
压力声学:让水层模拟更准确。
之前把水润滑层当作弹性固体处理,会产生虚假剪切波——这是物理原理层面的错误。新增的压力声学模块用标量声压方程替代弹性波方程(3 DOF/节点 vs 6 DOF/节点),固-液界面的反射/透射系数计算因此正确,这是求解器唯一的物理创新点。
📸 App 演示预留
Project 02 · 文献全景分析工具
从 tkinter 桌面端到 FastAPI Web 应用的完整重构。
重构动机:原版使用 tkinter / customtkinter 构建桌面 UI,界面现代感不足、无法跨设备访问、进度展示不够直观。本次重构废弃全部 5 个 UI 文件和 1 个桥接层,新增 FastAPI 后端 + Web 前端,业务逻辑层零改动。
❌ 废弃
app/ui/ (5 文件) · controller.py · main.py
★ 新增
server.py · web_controller.py · web/ (SPA)
核心架构
双轨并行提取:文本 + 视觉。
PDF 逐页解析后,启发式页面分类器自动判断每页类型:纯文本页走 DeepSeek 文本轨,图表页走 MiMo VLM 视觉轨,混合页双轨并行。最终 DataMerger 融合去重,导出结构化 Excel 报告。
deepseek-v4-pro
Temperature 0.3 · Max 4096 tokens
MiMo-V2.5
Temperature 0.2 · Max 4096 tokens
预留中的模块显示"开发中"占位视图,功能尚未实现。
FastAPI Web 应用:左侧配置面板 + 右侧 SSE 实时日志/结果表格。
方法调研
参考了 8 个 GitHub 高分项目。
| 类别 | 项目 | Stars | 借鉴要点 |
|---|---|---|---|
| 科研全能 | gpt_academic | 70.8k | PDF 解析 + 模块化插件 + 多 LLM 后端 |
| 论文总结 | ChatPaper | 19.5k | 总结 + 翻译 + 审稿意见全流程 |
| RAG 问答 | paper-qa | 8.6k | 高精度带引用的文献问答 |
| PDF 对话 | pdfGPT | 7.1k | 上传即对话 |
| 多文件 RAG | ChatFiles | 3.3k | 多文档 + Embedding 聊天 |
| 本地离线 | ChatPDF | 853 | 本地 LLM + RAG,无需联网 |
| 思维导图 | ChatPaper2Xmind | 586 | 论文 → XMind 导图 |
| 论文实现 | labmlai/annotated | 66.9k | 60+ 论文带注释实现 |
Project 03 · macOS 日历助手
SwiftUI 原生应用 + Claude CLI Agent 智能对话。
这是一个 macOS 原生日历应用,使用 SwiftUI + EventKit 构建,三栏布局(侧边栏 / 日历区 / 面板),MVVM 架构。集成了 Claude CLI Agent 实现自然语言日程管理——用户直接说"明天下午3点开会",Agent 自动解析并创建事件。
三栏日历主界面。
侧边栏(日历列表 + 模式切换)+ 月视图 6×7 网格 + 右侧事件详情面板。EventKit 直接读写系统日历,SwiftUI 原生渲染,MVVM 架构。
设置界面。
API 设置(Claude Code / MiMo 模型选择 + API Key)+ 版本号与关于页面。齿轮按钮从侧边栏打开独立设置窗口。
📸 演示素材预留
Project 04 · AI R&D Dashboard
AI Borad:把学习项目变成可持续管理的系统。
AI Borad 是一个本地 AI 研发看板。后端用 FastAPI + SQLAlchemy + SQLite 管理 Project 和 Recommendation 数据,前端用原生 HTML/CSS/ES Module 构建零打包的单页应用。深色极客风设计(Slate #1e293b + Cyan #22d3ee)。
核心设计原则:绝对解耦——后端任何 .py 文件不出现 HTML,前端任何 .js 不硬编码业务规则。后端只输出 JSON,前端只负责渲染。
技术架构
前后端绝对解耦,零构建工具链。
不引入 webpack/vite/npm——前端通过 ES Module 实现模块化,Chart.js 走 CDN 按需加载。后端 FastAPI 自动生成 OpenAPI 文档,SQLite 单文件零配置。深色极客风设计(Slate #1e293b + Cyan #22d3ee)。
Project 05 · 个人介绍网页
Apple 风格单页简历,已上线。
技术实现
纯 HTML + CSS + JS,零依赖。
CSS Variables 管理设计令牌,Grid + Flexbox 响应式布局,毛玻璃导航栏,IntersectionObserver 滚动动画。一次开发,桌面/平板/手机三端适配。
- 固定顶部导航 + 平滑滚动定位
- Hero 区域动态蓝图 CSS 动画背景
- 8 个 Section:教育 · 概览 · 能力 · 经历 · 项目 · 论文 · 联系
- 15+ 张论文配图(温度场 / TOF / 热流分析等)
内容亮点
不只是技术展示,更是个人品牌。
教育背景、6 项发明专利(3 公开 + 3 受理)、全国海洋航行器大赛国赛特等奖 + 一等奖、论文核心配图——所有内容围绕一个目标:让访客 30 秒内了解"这个候选人能做什么"。
- 综合测评 93 分 · 武理工卓越实验班
- 4 大工程方向:机械设计 · 仿真 · 超声 · 算法
- 毕业论文:PEEK 材料超声无损检测
- 支持简历 PDF 一键下载
Token 消耗统计
各平台 Token 使用情况。
⚠️ 具体数据待补充,以下为占位结构。
| 平台 | 用途 | Token 消耗 | 说明 |
|---|---|---|---|
| Claude (Anthropic API) | 求解器重构 / 日历开发 / 文献阅读器开发 | 待填写 | — |
| DeepSeek API | 文献阅读器文本轨 / AI Borad 进度分析 | 待填写 | — |
| MiMo API | 文献阅读器视觉轨 | 待填写 | — |
| Claude CLI (本地) | 日历 Agent 对话 | 待填写 | 本地 Process 调用,不计 API Token |
| 合计 | — | 待填写 | — |