Skip to content

MathCanvas v4.0

Choose a tag to compare

@Huo0077 Huo0077 released this 19 Oct 16:21
· 128 commits to main since this release

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。