# 源码与许可 基于 **[techccy/phantom](https://github.com/techccy/phantom)**(上游已归档), 依 **Mozilla Public License 2.0** 授权。全文: ## 范围 MPL-2.0 为 per-file copyleft,被修改的文件须以同一许可证提供源码形式, 触发条件为分发可执行形式。 - 前端会下发到访问者浏览器 → `frontend/` 提供全部被修改与新增的源码。 - 后端仅在服务器运行,不构成分发 → `backend/` 补丁为自愿提供。 未修改的上游文件请参见上游仓库。 ## 内容 ``` NOTICE.md frontend/ phantom.ts widget 主体:DOM 构建、交互状态机、验证提交(已修改) tracker.ts 轨迹采集:pointer/touch 事件 → 画布坐标序列(已修改) renderer.ts 画布渲染:噪声底 + 目标粒子簇沿贝塞尔路径运动(已修改) styles.ts widget 注入样式(已修改) config.ts 可调参数:构建期默认值 + 运行期覆盖(已修改) main.ts 演示页入口:主题切换、widget 挂载、调参台(已修改) surface.ts 输入面 → 画布坐标换算(新增) pad.ts 移动端触控板控制区与光标环(新增) loupe.ts 放大镜辅助(新增) backend/ trajectory-completeness.patch 轨迹完整性校验 ``` ## 修改 **移动端触控板模式**(`surface.ts` / `pad.ts` / `loupe.ts`,及 `tracker.ts`、 `phantom.ts` 的配套改动)——上游要求直接在画布上拖动,手机端拇指会遮住目标。 改为上下分区:画布只看不碰、下方控制区只摸不看,等比映射,画布内绘制光标环。 坐标换算收敛为 `surface.ts` 一份,供采集与光标环共用。后端收到的仍是画布坐标。 **调参台**(`main.ts` / `config.ts`)——演示页的可视化参数面板,覆盖值存 `localStorage`。画布尺寸与通过阈值未开放:前者参与 DTW 归一化,后者是判定本身。 **轨迹完整性校验**(`backend/` 补丁)——上游判定侧重轨迹形状相似度,对是否走完 着墨较少:最终落点未参与判定,DTW 截断代价经 `max(n, m)` 归一化后所剩无几, challenge 的 `duration` 已存入 Redis 但未传给评分。补丁增加终点命中与时长下限 两道一票否决,均可经环境变量调整或关闭,参数缺省时自动跳过。 ## 省略 `backend/` 补丁不含本站与自有业务系统之间的接入代码。该部分不属于 Covered Software 的功能,省略不影响补丁完整性。 --- # 免责声明 **按「现状」与「现有」提供(AS IS / AS AVAILABLE)** 依 MPL-2.0 §6,本软件及本页面所载内容按「现状」(AS IS)与「现有」 (AS AVAILABLE)提供,不附任何明示或默示的担保,包括但不限于对适销性、 特定用途适用性及不侵权的担保。 依 MPL-2.0 §7,在适用法律允许的最大范围内,任何贡献者、分发者均不对因 使用或无法使用本软件而产生的任何直接、间接、附带、特殊、惩罚性或 后果性损害承担责任。 **安全性说明** 本项目为人机验证组件,不对任何特定强度的防护效果作出保证。任何验证方案 均可能被绕过,不应作为唯一的安全边界使用;部署方应结合自身场景独立评估 风险,并自行承担部署与使用的全部后果。 上游仓库已归档,本处的修改未经上游审阅,亦不代表上游立场。 **可用性说明** 本页面的在线演示与相关接口不作为服务承诺,可能随时变更、中断或下线, 不提供任何可用性保证。 --- # AI 辅助声明 本项目(文档)部分内容由 AI 工具辅助整理完成。 AI 生成内容可能存在: - 表述不准确 - 信息遗漏 - 与实际环境存在差异 使用者应结合实际情况进行人工审核和判断。 最终项目设计、代码实现以及使用行为应由使用者自行负责。