【学习工作】OmniMath Pro —— VSCode 风格的全能 AI 数学工作台

OmniMath Pro —— VSCode 风格的全能 AI 数学工作台


【标签】 学习工作 社会公益

【标题】 【学习工作】 + OmniMath Pro —— VSCode 风格的全能 AI 数学工作台


开源仓库: https://github.com/humanfirework/OmniMath-Pro

0. 先和大家打个招呼吧 :waving_hand:

大家好,我是 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*xarctan 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 源码一堆看不懂。

想解决的用户真实痛点

  1. 符号输入死板:arctan/π/ln 要翻菜单找按钮,不能直接打字

  2. 公式显示难读:只给 LaTeX 源码 \frac{x^3}{6},不渲染成正常分数

  3. 3D 图"一张死图":画完就定死了,不能转过去看背面

  4. 线代操作繁琐:Ax=b 只给答案不告诉你有几个解

  5. 界面简陋无工作流:没有 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 验证点全部通过:

  • :white_check_mark: 三模式输入 + 符号别名(arctan/atan/tg⁻¹ 等)

  • :white_check_mark: 2D 绘图(自适应采样、极值红点、零点蓝点、十字游标、PNG/LaTeX 导出)

  • :white_check_mark: 3D 绘图(OrbitControls 自由观察、三色坐标轴、高度渐变着色、PNG 导出)

  • :white_check_mark: 线代 11 种运算(加减乘、数乘、.*、./、求逆、转置、伴随、秩、迹、行列式、特征值)

  • :white_check_mark: LU/QR/SVD 分解

  • :white_check_mark: Ax=b 求解(秩比较分类+基础解系分块展示)

  • :white_check_mark: AI 助手(中文对话、LaTeX 渲染、```omnimath 代码块一键插入编辑器)

  • :white_check_mark: 节点蓝图(12 种节点、贝塞尔连线、拓扑排序自动执行、画布平移缩放)

  • :white_check_mark: 历史面板 / 变量面板 / 全局快捷计算条 / 命令面板

  • :white_check_mark: 三栏可拖拽 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 完整开发流程

  1. 第一阶段(基础搭建):用 TRAE 初始化 Next.js + Tauri 2 项目、配置 MIT 许可证、.gitignore、GitHub Actions 多平台 release 工作流(v* tag 自动构建 Windows/macOS/Linux 安装包)

  2. 第二阶段(Spec 驱动规划):进入 Spec 模式,把超长需求文档拆成 12 个任务、36 个验证点,AI 先对齐"做什么、不做什么"再动手

  3. 第三阶段(架构合并):上传最新 workbench 前端 zip,TRAE 帮我"取其精华去其糟粕"——保留 Tauri 桌面壳、合并 workbench 新组件.

  4. 第四阶段(并行修复):派 3 个子智能体同时工作——A 修 AI 面板、B 补线代 Ax=b、C 审计 UI/字体/动画

  5. 第五阶段(集成验证)bun run build 静态导出验证、bun run dev HTTP 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数学可视化计算器

比赛期间我修改了名字,我不知道能不能修改。这提醒一下,这是我的初赛报名成功。

1 个赞

欢迎大家体验我的Demo:star_struck:


现在还有许多地方还需完善,我会继续改进我的项目——OmniMath Pro

若想获取最新的信息可到我的 Githubhttps://github.com/humanfirework/OmniMath-Pro浏览。


喜欢的朋友希望给我点一个Star,谢谢支持!

1 个赞

已投票!这个数学工作台的设计思路太赞

2 个赞

谢谢支持和鼓励!

1 个赞

有3D动画来看函数是真的骚

1 个赞