Skip to content

Releases

MathCanvas 4.3.0

Choose a tag to compare

@Huo0077 Huo0077 released this 05 Nov 08:39

MathCanvas 4.3.0

发布日期: 2026-11-05

本版更新

  • 立体拖动与联动:绑定轨迹的动点可以直接用鼠标左键沿轨迹拖动。拖动上游点时,依赖的点、线、面等图元同步预览,不再等松手才跳到新位置。
  • 体积测量修复:修改立体顶点后,测量改用实际面边界计算并自动更新,不再沿用旧尺寸参数。未编辑的参数化立体仍保留解析体积公式;编辑后的多面体边界计算标为数值近似。
  • 编辑结果恢复:重新加载已编辑立体时不再重复生成顶点、棱和面,避免图形重叠与重复标识报错。
  • 外接球与内切球作图:在属性栏对应读数旁选择“作图”,即可生成跟随来源的半透明球体,支持显示、隐藏、一步撤销及保存。不存在或退化的球禁用作图。
  • 题图识别与模型兼容:包含桌面题图识别与 DeepSeek 兼容更新,支持同题题干与配图的识别、编辑和发送。
  • 立体题解析与核验:包含四道立体题的入口保真、解析构造、派生垂足、命名分点和折叠映射改进;目标结果与题设核验分开呈现。该改进不代表任意题目或真实模型均已通过验证。

下载

Windows x64 提供 NSIS 安装程序、MSI 安装包和免安装程序。所有安装包均由本次发布源码重新构建。

验证

  • 在独立发布副本执行类型检查,通过。
  • 代码检查:0 错误,16 条现有警告;补充指针捕获异常处理注释,不改变交互逻辑。
  • 单元测试:全量运行 5,496 项通过,1 项待办;初次失败的 6 项文档检查,在补齐发布副本 Git 索引及更新版本入口后重新验证通过。文档检查最终为 22/22 通过。
  • 浏览器回归:23/23 通过,覆盖四道立体题、题图识别、轨迹拖动、依赖联动、球体作图和体积测量的撤销/重做/重新加载。
  • 桌面 Rust 测试:280 项通过,4 项按配置忽略。
  • Windows x64 桌面构建成功;免安装程序可启动并显示 MathCanvas 窗口。
  • 未运行需要真实模型密钥或 Lean 环境的独立慢速评估,不据此声明任意题型均可正确解答。

SHA-256

文件 SHA-256
MathCanvas_4.3.0_x64.exe d5ad75eae7b3f0943348633785a0a5323fecf685cf4c731cbf27c47eccf31812
MathCanvas_4.3.0_x64-setup.exe c513340c1ccd202674702ac9724bd101ae507c22b8c3c08ba057487dc653932e
MathCanvas_4.3.0_x64_en-US.msi 6551e3af3a023208f17270feb880901d63befb2bebe3b865dc75ffc819c0f5f6

MathCanvas 4.2.0

Choose a tag to compare

@niujin66 niujin66 released this 04 Nov 13:01

MathCanvas 4.2.0

发布日期: 2026-11-04

  • 属性检查器统一了属性分组、字段、读数和操作按钮。拖动右栏左边缘调整宽度,双击恢复默认。键盘聚焦分隔线后可用左右方向键调整。平面几何、立体几何和工程制图共享这个设置,重启后会恢复上次宽度。
  • 平面绘图按实际显示的画布坐标确定直线与圆的落点。靠近已有点或曲线时,吸附指示、预览和最终落点使用相同的位置。
  • 立体动点可以按住圆轨道上的点直接拖动,点沿屏幕中可见的轨道实时更新。松手后可一步撤销。属性栏滑轨覆盖完整圆周,并提供四个快捷角度。
  • 右键菜单在平面和立体图元上提供改色、重命名、隐藏、锁定、依赖查看和级联删除。菜单支持方向键导航,并会避开窗口边缘。

Windows x64 可选择 MSI、NSIS 安装包或免安装程序。免安装程序已在 Windows 启动并确认窗口响应。

文件 字节 SHA-256
MathCanvas_4.2.0_x64.exe 17,740,800 73AA2CEF0CD805036252C1BEEEC51522EE014FCB67DC18968B8A32F9168111EE
MathCanvas_4.2.0_x64-setup.exe 5,367,330 CF78302FA06E8428C859016579BB595362BE6FE760B638A803D0DFD4705F6F1A
MathCanvas_4.2.0_x64_en-US.msi 7,225,344 953CD6A01318B741B1B210890C9FAA79E807A9600E6C573C2C0397760BD27A33

MathCanvas v4.1.0

Choose a tag to compare

@Huo0077 Huo0077 released this 02 Nov 10:55

MathCanvas v4.1.0

发布日期: 2026-11-02 | 类型: 特性版(v4.0.1 → v4.1.0;UI/UX 深度重构、2D/3D 点线面体交互闭环、右侧属性栏人机工程重排、灵动弹簧动效与专属多层几何品牌图标)

这一版改了什么

v4.1.0 是一次聚焦人机交互体验、2D/3D 空间操纵精确度、右侧属性检查器操作逻辑重排、灵动柔和动效与产品视觉辨识度的重大升级。针对长期存在的“按键与功能交互逻辑反人类、立体几何拖点导致整体乱跑或残影错位、右侧属性栏层次混乱、画图手感割裂、阻断操作多”的核心痛点,经过对主流数学工具(GeoGebra、Desmos)与工业级生产力软件(Figma、AutoCAD)的深度对照,全面落地 11 个区块(Block 1–11)的体验重构。

1. 连续作图心流与统一画布落点(Sticky Tools)

  • 连续作图心流(Sticky Continuous Drafting):平面作图工具(点 point、直线 line、线段 segment、射线 ray、圆 circle、圆弧 arc、折线 polyline)在完成一个图元创建后保持激活状态(center: null, sticky: true),工具按钮保持高亮状态,支持一气呵成连续绘制多个几何图元(如连画三条线段构成三角形),彻底消除画完单个图元被迫中断清空工具的阻断体验。
  • 统一空白画布点放置:统一平面画布空白处/曲线上直接点击添加点图元(creationMode === "point"),补齐与线/圆同构的直观落点交互。
  • 轻量退出与解脱机制:在画布任意位置按 Esc 键或点击鼠标右键(contextmenu)直接解脱取消当前工具模式或撤回正在拉拽的橡皮筋第一落点,退回自由选择/平移模式。

2. 智能级联删除与单步事务化(Cascade Delete)

  • 依赖拓扑闭包分析:在 packages/scene-graph/src/deletion.ts 中实现图元依赖图分析工具 primitiveDirectDependencies 与下游递归依赖闭包计算器 cascadeDeletionClosure,遍历 2D 与 3D 拓扑 DAG 依赖关系。
  • 单步批量原子删除与一键撤销:删除父图元(如顶点 A)时自动将所有下游依赖图元(如线段、以点定义的平面等)一并纳入批量单步事务(applyBatch),废除阻断弹窗,且按一次 Ctrl+Z 即可完整无损恢复整族图元。

3. 动点在轨直接绑定与画布直通(Direct Curve Binding)

  • 画布直通在轨动点绑定(Drop-to-Bind):支持将自由点直接拖拽贴合至任意曲线轨(直线、线段、射线、圆、圆弧、抛物线、双曲线、函数图像)自动建立在轨约束,靠近曲线 14px 阈值时触发高亮贴轨光环与 贴轨「<曲线名>」 徽标指示。
  • 属性栏交互滑轨与快捷解绑:为在轨动点提供直观的路径参数滑轨 <input type="range" aria-label="路径滑轨" /> 与「解绑为自由点」快捷按钮。

4. AI Copilot 同屏人机共创抽屉与实时 Ghost 草稿检视(Live-Canvas Co-Creation)

  • AI Copilot 同屏抽屉:在传统工作台引入同屏可折叠的 AI 抽屉组件 CopilotDrawer.tsx,状态栏提供 ✨ AI 助手 停靠按钮,边查看/旋转画布边与智能助手对话,画布绝不卸载。
  • 画布实时 Ghost 幽灵草稿预览与双通道确认:2D 画布与 3D 场景实时以半透明蓝色 #3d5a80 与脉冲虚线呈现待确认草稿图元,画布正上方浮现胶囊确认横幅,支持 Enter 键单步合并入库或 Esc 键静默丢弃。

5. 画布右键上下文菜单与双击内联重命名(Context Menu & Inline Renaming)

  • 画布图元与空白处原生风格上下文菜单:在 2D/3D 图元上右键弹出包含 6 色快捷调色板、重命名、隐藏/显示、锁定/解锁、查看从属依赖拓扑及级联删除的微拟物菜单;在空白处右键提供撤销/重做、快速画点/线/圆及全选。
  • 双击与 F2 原位内联重命名:双击画布图元或按 F2 原位展开内联输入框,支持即时重名冲突校验。

6. 2D/3D 点、线、面、体深度交互逻辑闭环(Block 7 & Block 8)

  • 3D 顶点独立拖拽形变与零残影同步:在 threeDrag.ts 中为 point3 建立原子隔离,拖动立方体等模板实体的单个顶点只移动该点并实时拉伸相连棱面,自动将模板多面体升级为显式面环模式(fromFaces);在 threePrimitives.ts、projectionVisuals.ts 与 intersectionPreviews3d.ts 中过滤 fromFaces.sourceId 原位残影重绘与自交误报;在 threeSceneInteraction.ts 中抬手自动归零 visualApplied 临时矩阵偏移,彻底根除“松手后图形复位而标注点未复位”的错位缺陷。
  • 多面体子元素拾取归属与变形后整体平移/旋转:在 templateTopologyOwners 中补齐 fromPoints(正四面体)与 fromFaces(变形后实体)的面/棱归属,防止拖动表面撕裂单块面;在 apply.ts 中支持变形后实体的整体刚体平移与三色环旋转。
  • 2D 动点圆、锚定切线与旋转跟随曲线实时拖拽预览:在 GraphicsView.tsx 中同步 previewDocument,使动点圆心、切线/法线与旋转跟随曲线在拖拽期间全程实时跟手预览。

7. 灵动柔和的 UI 弹簧动效与专属多层几何品牌图标(Block 9 & Block 10)

  • 物理弹簧缓动与抓取光标感知(保持既有冷色调配色不变):在 tokens.css 与 global.css 中引入现代 CSS linear() 阻尼弹簧缓动曲线 --ease-spring、柔和卡片入场动画 mc-card-soft-enter 及 prefers-reduced-motion 无障碍保护;3D 视口悬停于可拖拽点/手柄时自动切换为 cursor: grab,抓取中锁定为 cursor: grabbing。
  • MathCanvas 专属多层几何品牌图标(BrandMarkIcon & App Icons):设计融合“三维等轴测六面体 + 虚线剖切对角面 + 2D 内接解析圆与倾角椭圆轨道 + 暗环控制顶点与琥珀金动点 #f59e0b + 顶部 AI 智慧四芒星”的专属品牌徽标,全端替换顶栏、模块侧栏、网页 favicon.svg 以及 Windows 桌面应用图标(.ico / .png);在 build.rs 中注册图标资源依赖并在 lib.rs 启动时显式绑定窗口图标(window.set_icon),确保可执行文件 PE 资源、标题栏与任务栏图标 100% 同步生效。

8. 右侧属性检查器(PropertiesBar)人机工程重排与 3D 拓扑卡片补完(Block 11)

  • 三级清晰手风琴折叠架构(几何参数 → 外观样式 → 标注与工程):修复此前 <InspectorAccordion> 自闭合空标签与“外观样式穿插在 3D 与 2D 几何参数之间”的排版错乱,将全部属性卡片真正归入可折叠分组容器。
  • 符合直觉的卡片内部操作流(核心坐标/尺寸 → 约束绑定 → 只读测量指标 → 快捷派生作图 → 精炼底部提示):重排 点坐标、直线性图元、圆/圆弧、圆锥曲线、函数、空间点、空间实体 等全部卡片,将高频修改的坐标与尺寸输入置于顶部,将次级作图按钮与说明沉底,消除重复的图元名称与锁定开关。
  • 3D 坐标三列网格与点线面体全类型属性覆盖:将 3D 向量 (X, Y, Z) 升级为紧凑的 3 列网格(.vector3-grid),并补齐 3D 线段/直线/射线/棱(selectedLinear3 长度、方向向量、关联顶点)、3D 多边形面(face3Metrics 面积、周长、顶点环)与多面体(polyhedron3Metrics 顶/棱/面计数与几何中心)专属属性卡片。

产物

产物 文件名 大小 字节 SHA256
MSI 安装包 MathCanvas_4.1.0_x64_en-US.msi 6.88 MB 7,213,056 5A0C48325D1A77171AEF3075D37C4BEDC3A05D885320D044692324BCB767E525
NSIS 安装包 MathCanvas_4.1.0_x64-setup.exe 5.10 MB 5,348,907 7B114392FF9E4076730A51F2773B592CEDC2A61B763218F971D1D57DAB468082
免安装 exe MathCanvas_4.1.0_x64.exe(上游文件名 mathcanvas-desktop.exe) 16.90 MB 17,717,760 E71DC6A8D4FF84C941AEE90BF06A74911CF9FF5804442F682028FF21A5CE8B21

版本号写入 apps/desktop/src-tauri/tauri.conf.json 与 src-tauri/Cargo.toml(两者本版均为 4.1.0);Cargo.lock 由 cargo 构建时同步。

构建命令:npm --workspace @draw/desktop run bundle(= tauri build,exit 0)——先执行 beforeBuildCommand(vite build → build-check/mathcanvas-current,609 个模块),再 Finished release profile [optimized] target(s) in 1m 42s,WiX 出 MSI、NSIS 出 setup。桌面外壳前端取自 build-check/mathcanvas-current。

验证与质量门禁

  • 单元测试:全库 505 文件 / 5376+ 通过 + 1 todo / 0 失败(vitest run);
  • 全量 e2e 测试:Playwright 79 文件 / 253 项用例通过 / 0 失败(exit 0);
  • 代码规范与类型:npm run typecheck exit 0(0 错误);npm run lint 0 错误 / 15 警告;
  • 文档一致性门禁:npm run test:docs(docs-consistency)8 文件 / 22 项测试全部通过;
  • 离线可靠性与明确实体评测:npm run eval:explicit-solid -- --offline 54/54 通过;npm run eval:reliability -- --offline 29/29 通过、incomplete 0。

MathCanvas v4.0.1

Choose a tag to compare

@Huo0077 Huo0077 released this 20 Oct 02:51

补丁版(4.0.0 → 4.0.1):不改契约、纯增量 —— 读得更多、判得更多、文档与门禁对齐。

完整发布说明见仓库内 docs/release/v4.0.1.md。这里只放摘要。

读得更多(解析器)

  • 命名圆锥曲线 椭圆C:x²/16+y²/4=1、函数式抛物线 y=x²/4、圆的一般方程、曲线过点、直线的一般式 3x+4y+15=0(含"直线写在曲线前面"的语序)
  • 链式等号 AB=AC=AA₁=2;线段AB的长度为3 / AB的长为3;AC 上一点 D(点写在线段后面)
  • AD 是 BC 边上的中线;焦点 + 离心率 ⇒ 曲线参数

判得更多(核验判据)

  • 实体标量尺寸:圆锥 / 圆柱 / 正 N 棱锥 / 球 / 长方体的外接球与内切球半径
  • 一般多面体:体积与表面积派生内切球(解球心,残余含"各面是否真的相切")、外接球(最小二乘,残余含"顶点是否真的共球")
  • 三角形的心:角平分线、内心、重心、垂心、旁心、外心
  • 圆上的度量:弦心距、弧长(只按劣弧);中位线(存在性地判)

读不出也不许消失

十几族没有判据的条件现在会如实落进未核验并给具体理由;确认面板在"没有任何题设被核验"时会明确说出来(此前与"核验通过"在界面上看起来一样)。

产物与门禁

  • MathCanvas_4.0.1_x64.exe 17,611,776 B / MathCanvas_4.0.1_x64_en-US.msi 7,118,848 B / MathCanvas_4.0.1_x64-setup.exe 5,282,976 B
  • 单测 479 文件 / 5054 通过 + 1 todo / 0 失败;typecheck exit 0;lint 0 error / 15 warning;docs-consistency 7 条判据 / 18 项;全量 e2e 239 通过 / 0 失败
  • 边界:MSI 是 per-machine,本机非管理员装不上(Error 1925,载荷完整性已用管理安装验证);真实 provider 复跑没有读数(本机没有 API key);干净机器 / 断网发行 / 教师学生走查未做。

MathCanvas v4.0

Choose a tag to compare

@Huo0077 Huo0077 released this 19 Oct 16:21

MathCanvas v4.0

题面读入、解析式构造、空间原子动作、核验判据四条主线一起落地。版本真值由 3.2.0 升到 4.0.0(跨大版本,v3.2.0 之后 566 个提交)。

本版内容(相对 v3.2.0)

1. 题面读入 —— 卷面原话进得来

  • LaTeX / OCR 归一:\triangle、\angle、\frac 先归一成语义句;0↔O、全角符号等常见 OCR 误识按限定表纠正,表外不猜。
  • 点名一种定义:撇号全部变体(' / ′ / ’ / ´)归一到同一字形;ASCII 数字后缀按下标读(A2 → A₂、A12 → A₁₂);点名放宽到两段后缀 —— 正四棱柱 A₂B₂C₂D₂ 这类题面终于能对上计划里的名字。
  • 形状从句:Rt△ABC / △ABC 都认(此前只认"三角形"三个字,于是单字母角 ∠C=90° 无处落);正五、正六边形底面按正多边形代表元支持。
  • 条件读取器扩表:定比分点的分数写法 AE=2/5 AD、为 表二面角、单字母角按形状环解析、点在圆锥曲线上、弦长、线面角、函数与直线的交点个数、等边长度;数字句拆分与前导条件词剥离,减少"整句落进未解析"。
  • 不静默丢条件:读不出的题设进 unverified 并给出理由;答案句((2)求…)不再被当成题设。

2. 解析式构造 —— 不靠模型也能把图造出来

新增一批按题面条件直接造坐标的构造器:四面体(六棱长)、长方体(三棱长)、正四棱锥(侧棱 + 底棱)、正三棱锥(棱长)、正三棱柱、梯形棱柱(含基面绕序排序)、直角三角形棱柱、垂直平面的棱锥、两面二面角构型;折图按题面比例合成("将 △AEF 沿 EF 翻折" ⇒ 系统自己补那一笔折);圆台作为参数化动作落地(按既有多边形近似);球作为派生对象跟随宿主实体(外接球 / 内切球按宿主自己的坐标核验,不采信求解器的说法);平面多边形按度量条件构造。

3. 空间原子动作

立体几何此前缺细粒度动作,模型只能拿 create_polyhedron 硬凑。本版补齐:solid.create_segment(只给两个点名,坐标由前面几笔决定,不让模型手写第二份真源)、自由空间点、点投影、点旋转、点平移、对平面反射、线面交点;开放多面体与折角可直接画,不再被"必须闭合"挡住。

4. 核验判据 —— 说得出"哪里不满足"

点在线段上拆成共线 / 落在段内两条判据(该改的东西不同);点在三角形内、锐角 / 直角 / 钝角三角形、锐角不等式、向量点积条件、外心重建、点在圆锥曲线上;线面角真的量、弦长、函数与直线的交点个数、立体隐藏边的虚线证据。渲染证据新增标签碰撞风险与近重合 / 共线点告警 —— "画出来了但看不清 / 不成立"能够显形。

5. 救援与修复 —— 只救不抢

  • 见证搜索(按题面条件搜坐标)默认开启:候选已满足题设时一步不动,只有核验没通过才搜,且第二遍必须真的通过才采用。
  • 题面说要折、计划里没有折 ⇒ 系统补那一笔(补了什么写进 assumptions)。
  • 结构缺陷与折缺陷的合并救援有用例钉住。
  • 修复提示按失败签名扩表:点名缺失、动作顺序错、信封被写成 JSON 字符串、⊥平面 的几何含义等。
  • 预算:generation / network 由 6 抬到 8(用户 2026-10-15 批准);point3 投影求解器加墙钟预算。

6. 形式证明(Lean 4)

后端准入落成十栏审查契约,一个目标类已闭环(真 lake env lean 核验);延迟返回的证明结果在图形已变化时过期;npm run proof:smoke 可单独跑。

7. 评测与基准

付费 exam run 收成一条受门禁的单命令(--exam-run,无授权即拒绝),成本未实测时记 null 而不是 0;样本与阈值在看到任何付费结果之前冻结;报告契约新增 planning 层,"模型反问"有独立状态 clarification;记录 30 题联考试卷作图评测。

8. 课程与题集

2025 课标内容按单元建索引(fail-closed 审计)、跨域数学校验用例集。

产物(Windows x64)

产物 字节 SHA-256
MathCanvas_4.0.0_x64.exe(免安装) 17,595,392 0038F812E076046A34C5EBFE4271EB553B97D5BCE05D89240905E4A3584613BF
MathCanvas_4.0.0_x64_en-US.msi 7,102,464 C6C16F8FD0761C43B6920C6A1A8F4DB566FD948F6C940C5AADC0328A3724BDF2
MathCanvas_4.0.0_x64-setup.exe 5,267,037 68D0E28CFE76DA455268396FE49CC525EBE909F126A93C95A988F9FBE47D316F

构建:npm --workspace @draw/desktop run bundle(= tauri build,exit 0)—— 先跑 beforeBuildCommand(vite build → build-check/mathcanvas-current,591 模块 / 18.62 s),再 Finished release profile [optimized] in 1m 54s,WiX 出 MSI、NSIS 出 setup。

验证

  • 单测:全库 457 文件 / 4852 项通过 + 1 todo / 0 失败(174.86 s)。
  • typecheck exit 0;lint exit 0(0 error / 15 warning);docs-consistency 7 条判据 / 18 项通过。
  • Rust(2026-10-20 补跑):npm run test:rust exit 0 —— 17 个测试二进制合计 263 通过 / 0 失败 / 4 ignored。
  • 免安装 exe 本机启动实测:真窗口句柄 1376356、标题 MathCanvas、Responding=True、存活 T+12s。

边界(如实)

  • 全量 e2e(2026-10-20 补跑):npx playwright test --workers=3 → 239 通过 / 0 失败(4.5 min,exit 0)。默认并发下首轮 1 条 net::ERR_NO_BUFFER_SPACE(Windows 套接字缓冲耗尽,环境抖动),该条单独复跑通过 —— 不是产品失败。
  • MSI 的"装 → 启动 → 卸载"未验:本环境非管理员,MSI 按 Tauri 默认是每机器安装;NSIS(每用户)那一半在 v3.1.0 验收时走完过完整一圈。
  • 教师 / 学生走查未做;立体几何的 3D 画面进 HTML、GeoGebra .ggb、题目截图识图都不在本版。
  • 真题四族的真实 provider 质量仍以 docs/current-status.md 为准,不由本文件代替。

完整说明见 docs/release/v4.0.md。

MathCanvas v3.2.0

Choose a tag to compare

@Huo0077 Huo0077 released this 02 Oct 13:51

MathCanvas v3.2.0

HTML 导出(自包含快照 + 可再导入存档)与三处修复。版本真值由 3.1.0 升到 3.2.0(新能力走 minor)。

本版内容(相对 v3.1.0)

  • HTML 导出:导出菜单新增「导出 HTML」—— 单文件、零外部引用;内嵌既有 SVG 产出器(平面几何走标准视野含网格、工程制图走四视图,不是重画一遍);正文写清"这次导出漏了什么"(隐藏对象 / 导出器画不出来的类型 / 工程视图诊断,无损失时明确写"无");内嵌 .mgeo 使文件兼作可再导入的存档;立体几何明确拒绝并说明原因(3D 画布是 WebGL,没有矢量产出器)。文档派生文本一律转义,内嵌 JSON 把 < 写成 \u003c(用户标签里可以出现 </script>,那是注入)。
  • 拖动 / 滚轮立刻取消进行中的自动取景动画:过去只在卸载时取消,于是"换文档触发取景"之后在 250 ms 窗口内开始拖,剩下的帧会把用户刚拖出来的视角覆盖回去。顺带把取景动画三态做成可观测读数 data-fit-animation。
  • 悬停读数随内容自愈:data-preview-hovering 过去只由 pointermove 写入,而预览几何是内容同步建的 —— "指针先到、预览后到"会永远停在 false。现在内容同步后按最后一次指针位置重算。
  • 本地规划器不再把分析题当建模指令:"这个正方体的内切球半径是多少"过去会去新建一只正方体,现在落到既有的"老实问路"。

产物(Windows x64)

产物 字节 SHA-256
MathCanvas_3.2.0_x64.exe(免安装) 17,209,344 94253819D54ED351BF7AC4289C438B5D687B506F6DBF45D6349B6679B0CE783A
MathCanvas_3.2.0_x64_en-US.msi 6,860,800 6671DACB382B35A595C0A8DFFE4F2756D034E237CA6076CA5195D1E85DC6AB33
MathCanvas_3.2.0_x64-setup.exe 5,040,418 6EFFDB276945537EF3F0C7937C7E04F764B216DC3FD5CBA6F6AB2B2D87BA5680

验证

  • 全量 e2e 184 通过 / 0 失败;全库单测 280 文件 / 3203 通过 + 1 todo / 0 失败;typecheck exit 0;lint 0 error / 13 warning。
  • 免安装 exe 本机启动实测:真窗口句柄 2886386、标题 MathCanvas、Responding=True、存活 T+20s,优雅关闭成功。
  • main 顶端 CI 四项全绿。

边界(如实)

  • MSI 的"装 → 启动 → 卸载"未验:本环境 admin=False,MSI 按 Tauri 默认是每机器安装;NSIS(每用户)那一半已在 v3.1.0 那次验收里走完装 / 启动 / 卸载完整一圈。
  • 立体几何的 3D 画面进 HTML、GeoGebra .ggb、题目截图识图、平面/函数逐题补缺都不在本版;教师/学生走查未做。
  • HTML 快照不可交互;平面几何用标准视野(用户平移/缩放过的话,HTML 里的图与屏幕上看到的不完全一样,换来的是同一份文档永远得到同一张图)。

MathCanvas v3.1.0

Choose a tag to compare

@niujin66 niujin66 released this 02 Oct 08:52

MathCanvas v3.1.0

球体与球截面(实施计划 Task 1–9)整条线交付,作为 v3.1.0 发布。版本真值由 3.0.1 升到 3.1.0。

本版内容(相对 v3.0.1)

  • 解析球文档类型:只存球心 + 半径,有限性与正半径校验,.mgeo 往返逐值相同
  • 球-平面精确截交:圆 / 单点切触 / 空集三态,退化容差与模型尺度同源(不把相切近似成小圆)
  • 场景事务与数值测量:球心、半径可编辑,可平移,一步撤销;表面积 4πr²、体积 4πr³/3 标 exact-input
  • 截面接入 SectionPrimitive:过球心给精确圆(exact.kind = "circle"、status = "exact");相切给可见切点;空集不留旧环
  • 球布尔门禁:球-球 / 球-实体明确拒绝、留诊断、不改文档;界面也不给"点一下就建"的虚线预览
  • 3D 渲染:球面网格 + 拾取;不画可被选中的经纬细线
  • 手工入口:「常用立体」新增球体预设(球心 X/Y/Z + 半径),属性栏沿用同一套控件
  • 工程投影与导出:主 / 俯 / 左 / 轴测四视图给出同样大的圆,SVG / DXF / PDF 三件套均输出
  • Agent 动作 solid.create_sphere:动作 / 传输 / 登记三层一起接通,能力表翻成 available;缺 center / radius 走 ask_user,不静默填默认
  • Agent 端到端:一句话造球(本地确定性规划器 → 隔离草稿 → 用户确认 → 一步撤销)
  • 修复一处审计查出的静默缺口:球的面积 / 体积测量此前不会画在画布上(硬编码类型名单漏了 sphere),而属性栏照样有数字

产物(本机打包,SHA-256 可复核)

文件 大小 SHA-256
MathCanvas_3.1.0_x64_en-US.msi 6,848,512 B(6.53 MB) 3531e488383d6902d3d659e2c10a589f83d5efc3f151a9a117a0902b5a2f17eb
MathCanvas_3.1.0_x64-setup.exe 5,030,195 B(4.80 MB) 1a4b2aa1a5278e8a5b1da92b23b6fd6b47b74d6fd151b1c02c4343cf11d5052a
MathCanvas_3.1.0_x64.exe(未打包的 release 裸 exe,原名 mathcanvas-desktop.exe) 17,190,400 B(16.39 MB) 2c70f1c9c24c8d64c985a19ce5bc7d3d7421d9734443e29252779ddc9ebf7b23

构建与验证

  • npm run build(根,全部工作区)exit 0
  • npm --workspace @draw/desktop run bundle exit 0:vite build 510 modules / 3.65 s;Rust release 26.28 s;candle/light(MSI) 与 makensis(NSIS) 全部成功
  • 全库单测 278 文件 / 3182 项通过 + 1 todo / 0 失败;typecheck exit 0;lint exit 0(0 error / 13 warning)
  • 球体 e2e 7 / 7;CI 四项(checks / build / rust / e2e)全绿

边界说明(如实)

  • 桌面外壳打包的前端来自 build-check/mathcanvas-current(tauri.conf.json 的 frontendDist),不是 apps/web/dist。打包前已核对那份产物时间戳距打包仅 0.3 分钟、且含「球体」与 create_sphere。
  • 本机安装实测(装 → 启动 → 卸载)尚未进行,不在本版的主张范围内。本版证明的是"源码与安装包一一对应、哈希可复核"。
  • 第三个资产 MathCanvas_3.1.0_x64.exe 是 Tauri 产出、未经打包的 release 裸 exe(上游文件名 mathcanvas-desktop.exe)。启动实测已做(2026-10-02):存活 T+10s 与 T+18s、真窗口句柄、标题 MathCanvas、Responding=True、工作集 32.6 MB;仅按窗口句柄截图(不截整屏)确认画面是完整应用界面而非白窗。截图存临时目录、未入库,其 SHA-256 为 eb243753fb60496c25c2a138fedf4321c7ca9f35de75c1dc140c7d2fa4a53b85。
  • 本机全量 e2e 有一条既有的环境敏感用例会红(相机平移的 toBeCloseTo,与球体工作无关,回到更早提交同样失败);CI 的 e2e 作业为准。

MathCanvas v3.0

Choose a tag to compare

@niujin66 niujin66 released this 28 Sep 16:06

带 typed tool loop 的桌面版。打包版本 3.0.0,Release 标签 v3.0。

这一版带来什么

  • 只读观察循环:模型可先调 4 个只读工具看画布,工具结果以 provider 原生 tool_call/tool_result 回到下一轮。
  • 有界的批次执行:一次响应里的多个工具调用整批判定后原子执行;任一调用不是已发布的只读工具就整批拒绝、一个都不执行。(修掉了两个 review 抓出的严重缺陷:与只读调用同批到达的合法计划曾被静默丢弃;批次曾非原子,9 个调用的批次执行了 4 个才抛错。)
  • 没有证据不许说完成:声明了验收条件的运行,报告不构成证据时到不了确认面板。
  • 工具与字段的单一真源:模型可见但宿主不会执行的工具不存在(有测试逐条核对)。
  • 运行账本记录四个版本号与已脱敏的结构化工具痕迹;npm run eval:agent 打印离线记分卡。

实测(都来自本机实跑)

项 读数
npm run typecheck exit 0
npx vitest run 257 文件 / 3010 用例通过 + 1 todo / 0 失败
npm run test:rust 242 例通过 + 3 ignored / 0 失败
npm run lint 0 error / 13 warning(基线)
离线评测 pass@1 4/8(模式 deterministic_local,不是模型准确率)

真实 provider 实跑:用项目自己的 planner,只把传输换成直连 DeepSeek(deepseek-chat,tools 能力已验证),喂一道椭圆题(中心在原点、焦点在 x 轴、过 P(2,1)、离心率 √2/2)。模型自己推出 x²/6 + y²/3 = 1,给出两个动作,2.3 秒一轮完成;传输日志 tools=5 正是模型面那 5 个工具。

如实缺口(不要当成"都好了")

  1. 没有真实 provider 的 pass@1 / pass@3 / 成本 / 延迟基线 —— 上面那次是单题,不是比率。
  2. 圆锥曲线题目拿不到完成判定:deriveAcceptance 的形状表里没有椭圆/抛物线/双曲线。
  3. 草稿类工具刻意不对模型开放(模型看不见草稿,启用会变成盲验)。
  4. 视觉证据只到本地布局判据,render.capture 未接线。
  5. Agent Worker 入口明确禁用;几何编译跑在 geometry.worker。
  6. 两个安装包只验证了构建成功,没有在本机实际安装过。

文件校验(SHA-256)

文件 大小 SHA-256
mathcanvas-desktop.exe 16.38 MB 473b7fd661e5512dffa29aed540ed3963547a751f900c070173e22ba5398d09e
MathCanvas_3.0.0_x64-setup.exe 4.79 MB 9f3eb6ea59b51495a9e29511e26aff51ffcc505b929caeb09901cb8100e688f4
MathCanvas_3.0.0_x64_en-US.msi 6.52 MB acae93b437d0930ab98a880319ece14a3e447897f9e457057e1dcaa9aa42b99b

exe 内嵌版本(Windows 文件属性):FileVersion 3.0.0 / ProductVersion 3.0.0 / ProductName MathCanvas。

完整的发布说明在仓库里:docs/release/v3.0.md

MathCanvas 桌面版 v0.2.0(Windows x64)

Choose a tag to compare

@Huo0077 Huo0077 released this 23 Sep 14:03

MathCanvas 桌面版 v0.2.0(Windows x64)

免安装 mathcanvas-desktop.exe、NSIS 安装包 MathCanvas_0.2.0_x64-setup.exe、MSI MathCanvas_0.2.0_x64_en-US.msi。
本机实测:npm --workspace @draw/desktop run bundle exit 0;免安装 exe 真的启动过(10 秒后仍存活、窗口标题 MathCanvas、47 个 WebView2 进程、随后干净退出)。

自 v0.1.0 以来的 37 个提交

四份 2026-09-21 计划(设计真源:docs/superpowers/specs/2026-09-21-incremental-geometry-agent-and-conversations-design.md)

  • 统一 Solid 与拉伸式 Prism:Prism(basePolygon, vector) 为真源,规范里「底面平面 + 二维多边形」的写法在编解码边界抬升为世界坐标后接受;拓扑纯函数生成、子对象 id 确定性、id 取文档占用集;外接球 / 内切球 / 截面返回 exact/undefined/degenerate/approximate 四态;旧 .mgeo 可读。
  • Reactive DAG:纯 evaluator 图(拓扑增量、先拒环、结构化诊断)、参数化宿主约束、三角形五心与外接 / 内切圆、切线 / 截面 / 测量 / 轨迹(自适应采样,临时 Trace 不入历史,一次拖动一步撤销)。
  • Agent DSL 与参数审计:六层编译(传输解析 → 字段审计 → 引用解析 → 参数补全 → 几何语义校验 → 隔离草稿动作编译)、欠定特值选择保留符号参数、一次性修复、版本化系统提示。
  • 多会话上下文:SQLite 迁移 v3(会话 / 消息 / 事实三表)、8 条具名 IPC、会话绑定 project/document/workspace、上下文按 §5.3 预算组装并在一次运行内固定、摘要按文档存放。

收口轮:Solid 派生读数进属性面板与模型观测(approximate 与 exact 可区分、超限时模型看得见 truncated_derived);编译阶段的一次性修复回路真正接通(只修一次、与运行预算共享、提交的是通过编译的那一份);会话事实 stale/retracted 与摘要落盘诊断。

外部审查发现的修复(2 Critical / 14 Important / Minor 16 条中 15 条):桌面文档仓储不再用随机 id 探针(SQLite 重新成为文档真源)、一次性同意绑定草稿基 handle、批量提交、附件引用登记与单事务导入、内容哈希校验、删除目标接受棱柱、事务校验当前文档、棱柱朝向与描述符重对齐、三角形心与轨迹采样、引用字段全覆盖、等待相位说清缺什么、空操作走成功通道等;逐条见 docs/project-progress.md 的「已知缺陷清单」与 docs/research/external-audit-2026-09-22/。

新能力:正四面体切片(内核构造器 → solid.create_tetrahedron 动作 → 传输层 / 能力表 / 技能清单 / 提示词 + 本地规划器)。

现场缺陷修复:棱锥不再套用立方体形状;工作区判据不再由第一笔动作决定(平面文档里也能建立体);流式工具调用参数按 index 攒分片(不再把半截 JSON 当字符串发下去);信封不是对象时说清实际形状并把模型原文(有界)留在开发者详细视图。

验证(本机实跑)

npm test 215 个测试文件 / 2611 用例通过 + 1 todo;npm run typecheck 6 个 workspace exit 0;npm run lint 0 error / 14 warning;npm run test:e2e 140/140;npm run test:rust 232 例通过 + 3 ignored。

MathCanvas 桌面版 v0.1.0(Windows x64)

Choose a tag to compare

@niujin66 niujin66 released this 22 Sep 04:34

MathCanvas 桌面版 v0.1.0(Windows x64)

桌面外壳的第一份可下载构建:在 Agent 工作区里把要求写成一句话 → 真实模型规划 → 隔离草稿预览 → 你确认 → 真的落盘 → 一步撤销。确认之前画布一个字节都不会变。

对应 main 的提交 72e94a0(源码修复在 6330cb8:非空画布上的两处必然失败 —— 动作层的 id 分配器不知道文档里已经有哪些 id,以及规范化哈希不接受 undefined,详见 docs/project-progress.md)。

资产

文件 说明
mathcanvas-desktop.exe 免安装,双击即用。需要 WebView2 运行时(Windows 11 自带;Windows 10 若缺失请装 Microsoft Edge WebView2 Runtime)
MathCanvas_0.1.0_x64-setup.exe NSIS 安装包(当前用户级安装)
MathCanvas_0.1.0_x64_en-US.msi MSI 安装包

用之前要知道的(如实)

  • 模型服务要自己配:在「服务」里加一份 API key。密钥存进 Windows 凭据管理器,既不会回显、也不会写进项目库或 localStorage。
  • 项目、快照与附件落在 %APPDATA%\com.mathcanvas.desktop。
  • 尚未验证的部分:vision 能力探针没有对真实服务跑过(deepseek-chat 是纯文本模型)、Anthropic 档没有真实往返、tauri dev 热重载路径未实测;这两个安装包本身在本机没有安装过(只是构建出来了,exe 那份是反复启动过的)。
  • 图标仍是 Tauri 脚手架的默认图标。
  • 工具链:Rust 1.98.1 / Tauri 2 / WebView2;构建命令 npm --workspace @draw/desktop run bundle。

这一版修好的两处(用户截图报障)

  1. 画布上已经有对象时,Agent 新建同类对象必然 compile_failed: duplicate object id;
  2. 修掉第 1 条后暴露的第 2 条:启动恢复过的文档(子对象带 undefined)哈希不出来,运行报 canonicalContentHash: unsupported value of type undefined。

两条都按 RED→GREEN 修完并进回归(新增 11 例单测 + 2 条浏览器级回归);门禁:单测 193 文件 / 2207 用例、typecheck exit 0、lint 0 error / 14 warning、Playwright 124/124。