# 初步开发与验收记录

截至 2026-10-11。这是工程证据，不代表赛事评审保证通过。

赛事口径说明：参赛者提供的九条验收指南包含 Mooncakes 发布，本项目按该指南执行。
官网公开摘要与正式章程可能另有补充，最终以赛事通知为准。
来源：https://moonbitlang.github.io/Hackathon2026/ ；
官网文字源码：https://github.com/moonbitlang/Hackathon2026/blob/main/src/App.tsx 。

| 要求 | 当前状态与证据 |
| --- | --- |
| MoonBit 主实现，moonc ≥ 0.10.14 | 核心算法与 CLI 逻辑为 MoonBit；本地 moonc 0.10.14 |
| 公开仓库、清晰提交 | https://github.com/wdgodghl/moontopolens ；按功能逐步提交 |
| 结构清晰且核心功能可运行 | H0/H1 与可选 H2、点云/矩阵/序列/二维网格/三维体数据 JSON 输入、有界 NIfTI-1/4D 导入、参数扫描、多帧点云与体数据轨迹、PGM/PNG 图像、批量距离与分组、点云/强度扰动稳定性、H2 代表面及三维投影、粗网格近似分析、瓶颈距离、尺度快照、景观向量和离线 HTML 等已实现 |
| README 可复现 | 安装、命令、预期结果、算法限制、三种完整场景 |
| CI 检查/构建/测试 | .github/workflows/ci.yml；含 GUDHI 外部 Rips/cubical 区间对照；0.17.0 对应运行全部通过 |
| 运行示例 | cmd/demo + examples 中的点云、矩阵、时间序列、网格、三维体素、多帧体数据、PGM、PNG、批量分组和 H2 输入；CLI smoke 已通过 |
| 核心测试 | JS 和 Wasm GC 各 95 个测试；另有 CLI 全流程覆盖 NIfTI 4D/仿射、粗网格、图像/体数据稳定性、多帧 H2 追踪及既有核心功能 |
| Mooncakes 生态发布 | [模块页](https://mooncakes.io/docs/wdgodghl/moontopolens)已公开；最新 0.17.0 注册表显示 MIT、构建成功，独立项目安装与新增 API 测试通过 |
| OSI 许可证与来源 | MIT；独立实现，公开算法背景见查重记录 |

## 本地验证

- 类型检查和构建：JS、Wasm GC。
- 测试：两后端各 95 个测试；参考测试内部覆盖 12×11 个形状/尺度组合，匹配见证覆盖 12 对形状。
- CLI：八种基础示例、九种分析导出文件、快捷摘要、尺度推荐、同图/异图比较、帮助、错误和输出冲突路径。
- 新功能：每个示例在全部事件尺度核对快照 H0/H1 与分组数；景观 JSON/CSV/向量一致，双洞帐篷高度已核对。
- 比较：三组报告导出、原始索引与代价 CSV 一致、同图零距离与存活类数量不同路径。
- 切片：分组着色 SVG、存活代表链高亮、无坐标仅 JSON；无效选择不创建输出目录。
- HTML：通过 DOM 替身验证分析页滑块/筛选/高亮/翻页、比较页维度/对角线筛选；未验证真实浏览器布局。
- 已知环路：正方形 H1 `[1,√2)`；网格中心填充 H1 `[0,1)`；短暂环路 `[0.004,0.005)` 不在均匀采样中出现，但保留在精确事件和 HTML 曲线。
- PGM：P2 示例与等价 JSON 网格的区间一致；P5 8/16 位、非法灰度、截断、输出冲突路径已验证。
- 图像预处理：Otsu 阈值、常量图、亮色前景反转、单图与批量参数元数据已核对。
- 批量：六个案例、三个配对的完整输出与总索引核对；清单中的 `../` 路径被拒绝且未创建输出目录。
- 全对矩阵：六案例 H0/H1 对称、主对角零、CSV 行数、与单独比较距离一致、离线热图与条件提醒已核对；新增四案例 H2 的零距离、截断数不一致、未分析维度三种路径，H2 CSV/热图/树图可复现；关闭开关时不生成矩阵文件。
- 尺度推荐：有限/截断 H1、无环路分簇和空特征路径均已核对；CLI 与分析、图像、批量导出的 JSON/CSV 一致，并在推荐尺度验证 H0/H1 和区间存活。
- 参数扫描：四组维数/滞后组合、统一景观采样网格、JSON/两份 CSV 的顺序与数值一致；重复或超量参数、信号长度不足会报错。
- 扩展功能：四案例层次分组与建议切分、点云八次固定扰动、参数候选排序、PNG 单图及批量输入、H2 八面体 `[1,2)` 及双侧比较均通过 CLI 场景。
- 网格填充与分页：尺度 0 的环形网格不绘制方格面，尺度 1 绘制四个；Rips 点云不绘制投影三角形。离线报告模拟超过 120 条区间，核对每页 50 条、翻页和筛选后页码重置。
- GUDHI 外部差分：30 个 Rips/cubical 案例的相应 H0/H1/H2 区间一致，含八面体与空心体 H2；方法和局限见 reference-validation.md。
- 性能基准：8–28 点稠密输入和 32–128 点稀疏输入，三次独立运行取中位数；记录核心耗时和分析后进程 RSS，见 performance.md。
- 时间序列滞后提示：交替序列和无效输入用例通过；CLI 示例产生六行扫描结果和两个参考值。
- 多帧追踪：正方形扩张后变为三角形的轨迹延续/终止、无环路、环路出现、截断类不匹配与非法输入路径均已核对；离线时间线和变化图的 DOM 场景测试通过。
- 新增体数据：20³ 稀疏网格、H2 代表面导出和切片高亮、三帧空腔消失/重现、PGM/PNG 与体数据零扰动、NIfTI-1 小端 uint8 与大端 float32 缩放均已测试；`.nii.gz` CLI、离线逐帧表格和异常路径通过端到端验证。
- 0.18 扩展：NIfTI-1 4D 帧序列及 sform/qform 仿射、单位和时间元数据；32³ 稠密体数据粗网格预算；代表面旋转、点击/键盘切片联动的 DOM 测试通过。真实浏览器本地文件检查受浏览器安全策略阻止，未宣称视觉布局已验证。
- GitHub 提交 `939a4a8` 的 [CI 运行](https://github.com/wdgodghl/moontopolens/actions/runs/38139045957) 显示全部通过；Mooncakes 注册表 `wdgodghl/moontopolens` 返回最新 0.17.0、MIT、`build_status=success`；独立项目安装 `wdgodghl/moontopolens@0.17.0` 后，新 API 的 JS/Wasm GC 样例均通过。

源码量由 `node scripts/check-source.mjs` 复算。
统计排除测试和 host.mbt FFI，并另报告去除纯括号行后的代码行数。
当前非空非注释行 6083；再排除纯括号行后为 4724 行（也排除 HTML/JS 多行模板）。
该统计口径用于内部质量检查，组织方“有效源码”口径由评审决定。

0.11.0 的单元覆盖率记录为 1125/1652 个计数点（约 68.1%）；新增功能尚未重测覆盖率，
CLI 另有端到端场景验证。覆盖率不等于全部行为正确；新增 cubical 与 H2 的 GUDHI 对照已在 GitHub CI 核验。

## 下一阶段

1. 扩充外部参考至更多异常尺度；有条件时再与 Ripser 独立交叉核验。
2. 后续版本按语义化版本更新，并持续核验 Mooncakes 的独立安装路径。
3. 扩大性能样本并记录峰值内存、不同硬件和更复杂输入分布。
4. 根据使用反馈完善离线报告的视觉布局与可访问性；在线上传应用不纳入本轮完成范围。

## 参赛者理解要点

提交前需能够解释直径约定、过滤排序、GF(2) 对称差、主元配对、
出生代表链、截止时未死亡语义、对角线匹配与见证非唯一性、事件合并、并查集分组、景观有限区间/采样约定、稠密参考验证和资源预算。
项目采用 AI 辅助实现，参赛者对最终成果质量负责。
