OmniMath Pro —— VSCode 风格的全能 AI 数学工作台
【标签】 学习工作 社会公益
【标题】 【学习工作】 + OmniMath Pro —— VSCode 风格的全能 AI 数学工作台
0. 先和大家打个招呼吧 
大家好,我是 humanfireworks ,是一名大三学生,下面是的初赛 Demo。
我做了一件事:OmniMath不是又一个按钮计算器,我是为思考而生的数学工作台。
我诞生于一个简单的困惑——为什么打开电脑算一个矩阵特征值,要么得翻出尘封的 MATLAB,要么得在网页工具和系统计算器之间反复横跳?系统计算器太弱,专业软件太重,中间那片空白,就是我存在的理由。
我把 Desmos 的直觉、MATLAB 的专业和 VSCode 的顺手揉在了一起。你可以用最自然的语法敲下一行公式,也能切换到 Python 或 MATLAB 模式;我会在右边实时渲染 LaTeX、画出 2D/3D 图像,甚至允许你像 ComfyUI 那样把节点拖成一张蓝图,让计算流程一眼可见。
并且,我已经全部开源:https://github.com/humanfirework/OmniMath-Pro
我由 TRAE 全程驱动开发——代码摆在那里,任何人都可以审查、验证、复现。这个 Demo 本身,就是「TRAE 能做什么」的最好证明。我信奉一件事:好的数学工具不该让人敬畏,而该让人想多算一点。
1. Demo 简介
是什么:OmniMath Pro 是一款跨平台桌面数学软件(Windows / macOS / Linux),基于 Tauri 2 + Next.js 16 + React 19 + three.js + mathjs 构建,用 Rust 做桌面壳、Web 技术做界面。一句话:“VSCode 外观 + Desmos 直觉 + MATLAB 专业 + AI 赋能”,填补系统自带计算器与 MATLAB/Mathematica 之间的空白。
面向谁:大学生(高数/线代/离散)、算法工程师(公式验证)、教师(课堂可视化演示)。
主要功能:
【截图1:主界面 —— 三栏工作流】 主界面:三栏工作流
上图:VSCode 风格三栏布局。左栏计算历史(可点击重载、全文搜索),中栏脚本编辑器(三模式切换)
-
三模式智能输入:Simple 模式像 Desmos 一样
2x→2*x、arctan x自动识别;Python/MATLAB 模式支持np.linalg.inv(A)与A=[1,2;3,4]语法;公式实时渲染为标准书写形式 -
完整线性代数 + 交互式 2D/3D 可视化:矩阵网格编辑器支持 Excel 粘贴,LU/QR/SVD 分解、Ax=b 自动判无解/唯一/无穷多解并展示基础解系;3D 曲面可自由旋转/缩放/平移
-
AI 自然语言转脚本 + ComfyUI 风格节点蓝图:说"帮我画正弦叠加方波"自动生成可执行脚本;节点画布拖拽连线搭建计算流水线
2. Demo 创作思路
灵感来源:我是一名经常推导公式的学生。每次要快速验证一个线代运算、看看函数长啥样,都得在"系统计算器(太弱)"和"开 MATLAB(太重还要等启动)"之间痛苦抉择。网上计算器要么按钮密密麻麻点半天,要么 LaTeX 源码一堆看不懂。
想解决的用户真实痛点:
-
符号输入死板:arctan/π/ln 要翻菜单找按钮,不能直接打字
-
公式显示难读:只给 LaTeX 源码
\frac{x^3}{6},不渲染成正常分数 -
3D 图"一张死图":画完就定死了,不能转过去看背面
-
线代操作繁琐:Ax=b 只给答案不告诉你有几个解
-
界面简陋无工作流:没有 IDE 那种历史、变量、脚本、预览协同感
为什么做这个方向(判断与取舍):
-
选桌面软件而非纯 Web:科研场景需要本地变量持久化、全局快捷键 Alt+Space 瞬间唤起、离线可用,Web 做不到
-
选 VSCode 外观而非"科技感乱炫":用户已经熟悉 VSCode 布局,零学习成本比花哨重要
-
不做 OCR:明确砍掉("OCR 没有用"是我自己实测的结论——公式识别错一个符号比手打还慢)
-
AI 做"语法纠错+意图转脚本"而非"替你算":数学软件核心是算得准,AI 帮你降低语法门槛,但底层用 mathjs 保证精度
3. Demo 体验地址
项目在Github下载:`[OmniMath-Pro-demo.zip]
https://github.com/humanfirework/OmniMath-Pro/releases
体验方式:
【其一】下载解压 → 立即体验:
OmniMath Pro.zip (4.5 MB)
【其二】下载介绍版本HTML:
OmniMath-Pro-介绍网站.html (55.9 KB)
AI 助手面板右上角齿轮可配置自己的 OpenAI 兼容 API Key(Key 仅存本地 localStorage);其余功能开箱即用。
4. 对应评审维度的实现
4.1 创新性
需求创新:识别了"系统计算器太弱 / 专业软件太重 / 在线工具难用"这个长期存在但没被有效解决的学生/科研人员痛点。Desmos 只做 2D、MATLAB 太贵太重、微软计算器只到高中水平——三者中间存在明确空白。
解决思路创新:
-
“三模式融合输入”:Desmos 式宽松语法(2x 自动补乘号)+ Python + MATLAB 三种模式一键切换,同一份脚本支持不同背景的用户
-
“ComfyUI 式节点蓝图 + 脚本编辑器双轨”:既给专业用户代码控制感,又给新手可视化拖拽搭建流水线的直觉入口
【截图2:节点蓝图】 节点蓝图:ComfyUI风格可视化编程
上图:计算流水线节点画布。5 个节点 3 条贝塞尔曲线连接——底部提示"滚轮缩放+Shift滚轮上下平移+方向键移动”。这种"蓝图"交互在数学软件里属首创。
技术创新(TRAE 能力运用):
-
用 TRAE Spec 模式把超长需求文档拆解成
spec.md/tasks.md/checklist.md三件套,再派多个子智能体并行修复不同模块(AI面板/线代/UI审计同时进行),避免串行等待 -
AI 面板从"Next.js API 路由"改造成"纯客户端 OpenAI 兼容直连"以适配 Tauri 静态导出——这种架构级重构由 TRAE 子智能体自主完成
4.2 实用性
场景洞察:
-
大学生学线代时,对着课本 Ax=b 想快速验证"这题到底几个解"——OmniMath 直接告诉你秩比较结果
rank(A)=2, rank([A|b])=3 ⇒ 无解,无穷多解时还拆分展示特解和基础解系 -
工程师要看一个二元函数
z = sin(√(x²+y²))/√(x²+y²)长啥样——直接输入 3D 旋转观察
【截图3:线性代数工作区-3D 曲面交互】
上图:线性代数模块运算 Tab,这种"答案+推导+可视化"三合一体验比 MATLAB 命令行更友好。
上图:3D 曲面大图查看器,右上角一键导出 PNG。彻底解决"3D 图只是一张图片不可观察"的痛点。
解决效果:
-
本地软件启动秒开 vs MATLAB 启动等 30 秒+
-
全局快捷键 Alt+Space 唤出快速计算条(类 Alfred 体验)
-
变量跨会话保存(localStorage),下次打开不用重新定义
-
历史面板全文搜索(如搜"matrix"找回之前算过的矩阵)
落地可行性:Demo 已打包成双击即开,同时提供 Tauri 桌面壳源码可编译为 Windows/macOS/Linux 原生应用,GitHub Actions 配好 v* tag 自动多平台构建发布。
4.3 完成度
核心链路跑通:输入 → 解析(三模式)→ 计算(mathjs)→ 渲染(KaTeX/Canvas/three.js)→ 交互(缩放/旋转/游标)→ 历史/变量持久化,整条链路无断点。
12 个任务清单全部完成,36 个 checklist 验证点全部通过:
-
三模式输入 + 符号别名(arctan/atan/tg⁻¹ 等) -
2D 绘图(自适应采样、极值红点、零点蓝点、十字游标、PNG/LaTeX 导出) -
3D 绘图(OrbitControls 自由观察、三色坐标轴、高度渐变着色、PNG 导出) -
线代 11 种运算(加减乘、数乘、.*、./、求逆、转置、伴随、秩、迹、行列式、特征值) -
LU/QR/SVD 分解 -
Ax=b 求解(秩比较分类+基础解系分块展示) -
AI 助手(中文对话、LaTeX 渲染、```omnimath 代码块一键插入编辑器) -
节点蓝图(12 种节点、贝塞尔连线、拓扑排序自动执行、画布平移缩放) -
历史面板 / 变量面板 / 全局快捷计算条 / 命令面板 -
三栏可拖拽 Resizable 布局
用户体验流畅度:framer-motion 过渡动画(面板切换、消息入场、按钮反馈),三栏拖拽无卡顿,3D 曲面 frameloop="demand" GPU 节能(只在交互时渲染)。
4.4 美观度 / 设计体验
视觉设计:
-
VSCode 同款布局:TitleBar / ActivityBar / SidePanel / Editor / Preview / StatusBar 六区划分,用户零学习成本
-
青绿色主色调(#2dd4bf teal-400),搭配琥珀/玫红辅助色(坐标轴三色区分),避免纯 RGB 刺眼
-
KaTeX 公式提亮至 #ececec,深色背景
oklch(0.235) -
字体栈:Geist(Claude 同款)+ PingFang SC / 微软雅黑 / Noto Sans SC 中文回退;等宽字体开
tnum表格数字对齐 -
节点蓝图:暗色网格背景、毛玻璃卡片、青绿色连接端口、虚线贝塞尔曲线动画流动感
交互友好度:
-
三栏全部可拖拽调整(react-resizable-panels)
-
2D 图滚轮缩放 + 拖拽平移 + 十字游标(类似 Desmos)
-
3D 图 OrbitControls 旋转/缩放/平移,左键旋转/右键平移/滚轮缩放符合 3D 软件惯例
-
编辑器快捷键:Enter 运行、Shift+Enter 换行、Ctrl+/ 注释
-
所有按钮都有 hover/active 状态,过渡动画 150-200ms 不抢注意力
5. TRAE 实践过程
5.1 完整开发流程
-
第一阶段(基础搭建):用 TRAE 初始化 Next.js + Tauri 2 项目、配置 MIT 许可证、.gitignore、GitHub Actions 多平台 release 工作流(v* tag 自动构建 Windows/macOS/Linux 安装包)
-
第二阶段(Spec 驱动规划):进入 Spec 模式,把超长需求文档拆成 12 个任务、36 个验证点,AI 先对齐"做什么、不做什么"再动手
-
第三阶段(架构合并):上传最新 workbench 前端 zip,TRAE 帮我"取其精华去其糟粕"——保留 Tauri 桌面壳、合并 workbench 新组件.
-
第四阶段(并行修复):派 3 个子智能体同时工作——A 修 AI 面板、B 补线代 Ax=b、C 审计 UI/字体/动画
-
第五阶段(集成验证):
bun run build静态导出验证、bun run devHTTP 200 验证、grep 确认无 OCR 残留
5.2 关键开发步骤截图
【截图1:修复并发布版本到Github】
【截图2:修复蓝图、2D3D绘图BUG】
【截图3:Trae Work初始构建代码和框架】
5.3 关键任务对话 Session ID
-
.3745406479509932:3af12e3436209620298f9463531aefed_6a48c2dde167258eb29e4ca3.6a48fcceb36b0634b630e815.6a48fcce28b59fac87041db0:Trae CN.T(2026/7/4 20:30:06) -
.3745406479509932:5bc2e61b47014dadd7ae1a567d079732_6a48fc1349a1c3a885309475.6a4d17433d8c7c8adc0ac728.6a4d174233a25f720a414655:Trae CN.T(2026/7/7 23:12:03) -
CN.3745406479509932:979e67e3bad7382404cb7dc8ea8a2823_6a41040baadb1b80243c64e4.6a48a90eb51799652f187679.6a48a90d332f99c11621cf8a:TRAE Work CN.1.0.0.2036.a3859502-807d-43a0-8144-46ccb1edaceb.no_ppe.T(2026/7/4 15:43:15) -
.3745406479509932:f8e0a03bd1e3cffa530245e8c31c532f_6a4d18c3746e11ef0b9f2d45.6a5506bdbe6e7443f9b6f42a.6a5506bba010dff6e645afa8:Trae CN.T(2026/7/13 23:39:41)
(双击 TRAE 对话即可复制 Session ID,以上 4 个用于证明作品由 TRAE 开发完成)
5.4 开发踩坑与心得
| 踩坑 | 现象 | 解决 |
|---|---|---|
| 静态导出与 API 路由冲突 | AI 面板"界面显示不出",因为 /api/ai/chat 在 static export 下不存在 |
改纯客户端 fetch 直连 OpenAI 兼容端点,key 存 localStorage |
| zip 缺关键 lib 文件 | 合并后 build 报 @/lib/plots/plot3d 模块不存在 |
让子智能体反读 Plot3DScene 的 SurfaceMesh 用法,逆向出 Float32Array/Normals/Indices 数据结构重建 |
| mathjs v15 没有 math.svd | 文档说有,实际 typeof math.svd === 'undefined' |
手写单边 Jacobi SVD 算法 |
| 图标转换变白方块 | 第一次 SVG→PNG 渲染时加了白底 | 改用 Pillow LANCZOS 重采样保留 alpha 通道 |
最大心得:TRAE 的 Spec 模式 + 多子智能体并行是处理大型重构的神器。关键是任务描述里写清"不要碰哪些文件"避免冲突,每个子智能体各管一块互不打架。这种"AI 帮你拆任务 + AI 并行执行 + AI 自己验证"的体验是传统 IDE 完全给不了的。
现在软件还正在完善中,还有许多的功能,还有细节的打磨。若未来想要更新版本或者查看源代码,可以去我的Github。
初赛报名帖已通过审核,链接如下:【学习工作】OmniMath——全能AI数学可视化计算器
比赛期间我修改了名字,我不知道能不能修改。这提醒一下,这是我的初赛报名成功。






