下面给你 5 道可以直接复制给被测本地模型的完整测试题。它们不是五个外观相似的网页，而是分别测试五种不同的底层能力：
题目	视觉形态	主要测试能力
1. 奇点实验室	三维宇宙沙盘	数学、物理模拟、数值稳定、性能优化
2. 六十秒后重启	第一人称伪 3D	光线投射、碰撞、状态机、时序因果
3. 霓虹城：最后一单	GTA 式 2.5D 城市	多智能体、寻路、系统耦合、任务逻辑
4. 星槎异闻录	2.5D 水墨互动长卷	中文写作、语义映射、叙事、交互设计
5. 神经元熔炉	2.5D 数据实验室	神经网络、反向传播、动态图表、可解释性


建议每道题分别开一个全新对话，测试模型的第一次交付。不要先让它逐步分析，也不要修到第十版后再比较。
测试题 1：三维宇宙引力沙盘《奇点实验室》
你现在参加一次本地编程模型能力测试。请立即实现作品，不要先写方案，不要反问，不要输出伪代码。

任务：制作一个名为《奇点实验室》的三维宇宙引力沙盘，文件名必须是：

01-singularity-lab.html

【最终交付硬性要求】

1. 最终只能交付一个 HTML 文件。
2. HTML、CSS、JavaScript、图形、数据必须全部内嵌在这个文件中。
3. 禁止使用 Three.js、Babylon.js、p5.js、React、Vue、外部字体、外部图片、CDN、网络接口或任何第三方依赖。
4. 断开网络后，用户双击 HTML 文件即可直接运行。
5. 不得要求安装依赖、启动服务器或执行构建命令。
6. 如果你具备本地文件写入能力，直接把文件保存到当前工作目录；如果不具备，最终回复只能输出一个完整 HTML 代码块，不得附带解释。
7. 不允许用预录动画、写死轨迹或随机移动冒充物理模拟。
8. 页面必须自带可见的“系统自检”面板，通过程序自动检查核心状态，不能在未检查时直接写死“全部通过”。

【画面目标】

制作一个具有强烈视觉冲击力的深空实验室：

- 深色宇宙背景、动态星云、空间网格、发光恒星、粒子尾迹、冲击波和引力透镜感。
- 使用原生 Canvas 2D 的三维坐标、透视投影和景深，或者直接使用原生 WebGL。
- 整体必须具有明确的三维空间感，不能只是普通二维粒子背景。
- 适配 1280×720 和 1920×1080。
- UI 使用半透明科幻仪表盘风格。
- 粒子应有远近大小变化、亮度变化、遮挡顺序和运动轨迹。
- 高速运动、吞噬和爆炸时要有明显的视觉反馈。

【必须实现的真实系统】

一、三维空间

- 每个运动天体必须具有真实的 x、y、z 三维位置。
- 每个天体必须具有 vx、vy、vz 三维速度。
- 摄像机支持鼠标拖动旋转、滚轮缩放和缓慢自动环绕。
- 三维物体需要经过真实投影后绘制，不能只修改二维坐标伪装三维。

二、引力模拟

- 同时显示至少 700 个可运动的恒星或粒子。
- 场景中至少存在两个会移动的高质量引力源。
- 引力源之间必须真实互相影响。
- 普通粒子必须根据与引力源的距离和方向实时改变速度。
- 使用软化参数避免距离接近零时加速度无限增大。
- 使用固定时间步长或带上限的时间增量，防止窗口卡顿后系统爆炸。
- 必须检测并处理 NaN、Infinity、速度异常和粒子飞出边界。
- 被黑洞吞噬的粒子不能直接消失：需要产生吸积盘亮斑、粒子喷流或冲击波反馈。

三、用户交互

- 单击空间：在对应位置生成一个临时引力井。
- 双击空间：触发一次三维爆炸，对附近粒子施加方向正确、随距离衰减的冲量。
- 拖动鼠标：旋转摄像机。
- 滚轮：缩放。
- 空格：暂停或继续。
- R：使用相同随机种子重置。
- T：开启或关闭粒子轨迹。
- G：开启或关闭空间网格。
- C：切换跟随最大质量天体、自由观察和俯视模式。
- 右侧控制面板可调节引力常数、模拟速度、粒子数量、尾迹长度和爆炸强度。

四、可完成的挑战

页面中必须有一个普通观众能理解的挑战：

“建立一个稳定的双星系统，并让至少 60% 的粒子连续存活 30 秒。”

挑战面板实时显示：

- 当前存活率；
- 最大质量天体；
- 系统总能量的近似变化；
- 已稳定运行时间；
- 当前帧率；
- 当前粒子数量；
- 挑战成功或系统崩溃状态。

达到条件后，要出现明显但不遮挡整个画面的成功动画。粒子存活率过低时，要显示失败原因并允许一键重试。

【性能要求】

- 动画使用 requestAnimationFrame。
- 避免每帧创建大量临时对象。
- 当平均帧率连续低于 30 FPS 时，自动降低尾迹质量或星云细节，不能直接停止物理计算。
- 当帧率恢复后可以逐步恢复画质。
- 浏览器窗口切回前台后不能因为超大时间差导致模拟崩溃。
- 所有按钮、滑块和键盘操作都必须真实有效。

【系统自检面板】

页面右上角必须显示一个可折叠的自检面板，至少自动检查：

- 三维位置和速度是否存在；
- 粒子数量是否达到要求；
- 引力是否真实改变粒子速度；
- 暂停后位置是否停止变化；
- 重置后固定随机种子是否复现相同初始状态；
- 是否出现 NaN 或 Infinity；
- 是否加载了外部资源；
- 当前 FPS；
- 最近一次运行时错误。

每一项动态显示“通过、警告、失败”，不能把结果写死。

现在直接实现并交付 01-singularity-lab.html。
测试题 2：第一人称时间循环游戏《六十秒后重启》
你现在参加一次本地编程模型能力测试。请立即实现作品，不要先写方案，不要反问，不要输出伪代码。

任务：制作一款名为《六十秒后重启》的第一人称科幻逃生游戏，文件名必须是：

02-time-loop-station.html

【最终交付硬性要求】

1. 最终只能交付一个 HTML 文件。
2. 所有 HTML、CSS、JavaScript、地图、贴图效果、音效逻辑和数据必须内嵌。
3. 禁止使用 Three.js、Babylon.js、p5.js、React、Vue、外部图片、外部字体、CDN、网络接口或第三方依赖。
4. 断网后双击 HTML 文件即可运行。
5. 不得要求安装依赖、启动服务器或执行构建命令。
6. 如果具备文件写入能力，直接保存到当前工作目录；否则最终回复只能输出一个完整 HTML 代码块。
7. 不允许用静态背景、CSS 透视走廊或预录镜头冒充第一人称游戏。
8. 页面必须包含动态“系统自检”面板，不能写死检测结果。

【核心设定】

玩家在一座即将爆炸的空间站醒来。每一轮只有 60 秒。倒计时归零后，空间站重启，玩家回到起点。

普通物体和机关会重置，但玩家已经发现的“永久线索”会保留。玩家必须通过多轮探索，理解事件发生顺序，最终在爆炸前完成能源节点操作并进入逃生舱。

【第一人称渲染要求】

- 使用原生 Canvas 实现真实的网格光线投射 Ray Casting，或者实现等价的第一人称伪三维渲染。
- 地图必须由二维网格表示，但画面呈现为第一人称三维走廊。
- 墙体距离必须影响墙柱高度、亮度和雾化。
- 不能只切换几张房间图片。
- 支持 W、A、S、D 移动，鼠标或方向键转向。
- 玩家必须具有半径，不能穿墙、穿门或穿过关闭的障碍。
- 墙角移动时要避免明显卡死。
- 至少有 8 个连通区域，包括控制室、反应堆、维护通道、冷却室、档案室、机器人仓、观景台和逃生舱。
- 画面必须有手持终端、倒计时、准星、血量或警戒值、任务提示和小地图。
- 实现动态灯光、警报红光、屏幕震动、故障闪烁、火花和空间雾。

【真实时间循环系统】

每轮倒计时 60 秒，至少包含这些定时事件：

- 50 秒：主灯闪烁，维护门短暂解锁；
- 42 秒：巡逻机器人启动；
- 34 秒：冷却系统故障；
- 25 秒：部分走廊起火；
- 15 秒：逃生舱拒绝启动；
- 8 秒：反应堆进入不可逆过载；
- 0 秒：空间站爆炸并重置。

这些事件必须真实改变地图、门、灯光、机器人或危险区域，不能只显示文字。

【重置状态与永久状态】

每轮重置的内容至少包括：

- 门的开关状态；
- 能源节点状态；
- 火灾区域；
- 机器人位置和警戒状态；
- 玩家位置；
- 临时拾取物；
- 当前倒计时；
- 空间站灯光状态。

跨轮永久保存的内容至少包括：

- 已经读取的档案；
- 已经发现的四位数密码；
- 已标记的隐藏维护通道；
- 玩家终端中的事件时间表；
- 通关次数和循环次数。

页面必须清晰区分“本轮状态”和“永久记忆”。重置后不允许产生前后矛盾。

【机器人与追逐】

- 至少一个巡逻机器人。
- 机器人具有巡逻、发现、追逐、搜索、返回巡逻五种状态。
- 机器人需要根据地图寻找玩家，不能只朝玩家直线穿墙移动。
- 玩家离开视野后，机器人应前往最后发现位置进行搜索。
- 警戒状态变化必须通过声音、灯光、UI 和机器人颜色表现出来。

【谜题和通关逻辑】

玩家需要：

1. 在档案室找到一段跨轮保留的密码线索；
2. 在正确时间进入短暂开启的维护通道；
3. 按正确顺序启动三个能源节点；
4. 关闭冷却故障；
5. 在爆炸前进入逃生舱。

能源节点顺序必须由场景中的线索推导，不能在 HUD 中直接给出答案。

错误顺序会触发真实后果，例如关闭一扇门、提前唤醒机器人或损失时间。

游戏必须存在：

- 可验证的成功结局；
- 倒计时失败；
- 被机器人捕获失败；
- 火灾或反应堆伤害失败；
- 一键开始下一轮；
- 完成后的循环统计。

【系统自检面板】

页面右上角必须有可折叠自检面板，动态检查：

- 地图是否存在可通行路径；
- 玩家是否能被墙体阻挡；
- 关闭的门是否阻挡玩家；
- 倒计时事件是否按顺序触发；
- 重置后临时状态是否恢复；
- 永久线索是否仍然保留；
- 机器人是否具有多个真实状态；
- 机器人是否会被墙阻挡；
- 是否存在可完成的通关路径；
- 是否加载外部资源；
- 当前 FPS；
- 最近一次运行时错误。

【最低可玩性要求】

- 首屏必须有简洁的操作说明。
- 玩家必须在不看代码的情况下理解目标。
- 必须可以真正完成至少一次完整通关。
- 失败、重置、永久记忆和成功结局必须有明显不同的画面反馈。
- 所有键盘、鼠标、按钮和游戏状态必须真实有效。

现在直接实现并交付 02-time-loop-station.html。
测试题 3：GTA 式 2.5D 开放城市《霓虹城：最后一单》
你现在参加一次本地编程模型能力测试。请立即实现作品，不要先写方案，不要反问，不要输出伪代码。

任务：制作一款名为《霓虹城：最后一单》的 2.5D 开放城市驾驶游戏，文件名必须是：

03-neon-open-city.html

【最终交付硬性要求】

1. 最终只能交付一个 HTML 文件。
2. HTML、CSS、JavaScript、城市地图、角色、车辆、视觉效果和数据必须全部内嵌。
3. 禁止使用游戏引擎、Three.js、PixiJS、p5.js、外部图片、外部字体、CDN、网络接口和第三方依赖。
4. 断网后双击 HTML 文件即可运行。
5. 不得要求安装依赖、启动服务器或执行构建命令。
6. 如果具备本地文件写入能力，直接保存到当前工作目录；否则最终回复只能包含一个完整 HTML 代码块。
7. 不允许用写死路线、循环播放车辆动画或随机移动冒充交通系统。
8. 页面必须自带动态“系统自检”面板，检测结果不能写死。

【视觉方向】

- 采用俯视或斜 45 度 2.5D 城市视角。
- 城市具有霓虹灯、车灯、雨水反光、广告牌、道路标线、建筑阴影、路灯和粒子效果。
- 镜头平滑跟随玩家车辆，并根据速度产生轻微缩放、拖尾和震动。
- 白天、黄昏、夜晚三个环境阶段能够循环。
- 夜间车辆大灯应照亮前方区域。
- 警车、任务车辆和普通车辆必须具有明显不同的视觉识别。
- 适配 1280×720 和 1920×1080。
- UI 至少包含小地图、车速、车辆耐久、通缉等级、任务目标、剩余时间和现金。

【城市生成】

- 使用固定随机种子生成城市，重置后得到相同布局。
- 城市至少包含 12×12 个街区。
- 包含主干道、次级道路、十字路口、小巷、广场、停车场、河道或高架桥。
- 建筑不能只是一排相同矩形，要有高度、颜色、屋顶结构和灯光差异。
- 道路必须形成可供车辆寻路的连通图。
- 小地图必须与实际城市一致。

【玩家车辆】

- 支持 W、A、S、D 或方向键驾驶。
- 具有加速、刹车、倒车、转向、惯性、侧滑、摩擦和最高速度。
- 转向效果必须受到当前速度影响。
- 车辆不能穿过建筑。
- 撞击建筑或其他车辆时要改变速度、方向和耐久。
- 高速碰撞必须有火花、碎片、镜头震动和耐久损失。
- 玩家车辆完全损坏后触发任务失败。

【交通系统】

至少同时存在：

- 24 辆普通车辆；
- 40 名行人；
- 4 辆警车；
- 12 组红绿灯。

普通车辆必须：

- 沿道路网络规划路径；
- 在路口根据红绿灯停车；
- 与前车保持距离；
- 尽量避免碰撞；
- 到达目的地后选择新目的地；
- 道路被阻挡时重新规划路线；
- 具有至少三种不同驾驶性格：谨慎、普通、激进。

行人必须：

- 沿人行道或街区边缘行走；
- 在部分路口过街；
- 遇到高速车辆时躲避或逃跑；
- 听到警笛后表现出恐慌；
- 不能直接穿越建筑。

禁止让所有车辆和行人只做随机游走。

【通缉与警察系统】

- 通缉等级为 0—5 星。
- 撞击车辆、冲撞行人、长时间逆行、拒绝停车等行为会提高通缉值。
- 脱离警察视野并隐藏一段时间后，通缉值下降。
- 警车具有巡逻、发现、追击、包抄、搜索和返回巡逻状态。
- 警车必须使用道路网络追踪，不能穿过建筑直线扑向玩家。
- 高通缉等级时增加警车数量、设置路障或从前方路口包抄。
- 警察失去玩家后，应在最后发现位置附近搜索。

【完整任务】

主任务名为“最后一单”，必须具有完整流程：

1. 前往仓库接取货物；
2. 在限定时间内送到指定区域；
3. 途中随机发生一次道路封锁；
4. 系统重新计算路线；
5. 玩家可选择绕行或冒险突破；
6. 送达后触发追击；
7. 成功摆脱警察并进入安全屋；
8. 显示任务结算。

结算至少包含：

- 用时；
- 碰撞次数；
- 最高通缉等级；
- 车辆剩余耐久；
- 对城市造成的损失；
- 是否伤及行人；
- 获得现金；
- 总评价等级。

必须存在成功和失败条件，不能只有无限驾驶。

【系统耦合要求】

以下系统必须互相影响：

- 撞车会造成道路拥堵；
- 拥堵会改变普通车辆路径；
- 普通车辆阻塞会影响警车追击；
- 警笛会影响行人；
- 玩家破坏红绿灯会影响路口交通；
- 道路封锁会改变任务路线；
- 通缉等级会改变警察数量和策略；
- 天气或夜晚会改变可见度、灯光和车辆制动表现。

【系统自检面板】

页面右上角必须显示动态自检面板，至少检查：

- 城市道路图是否连通；
- 玩家是否被建筑碰撞体阻挡；
- 普通车辆是否拥有路径；
- 车辆是否会在红灯处停车；
- 行人是否被建筑阻挡；
- 警车是否使用道路追击；
- 道路封锁后是否发生重新规划；
- 通缉值是否能上升和下降；
- 主任务是否存在完整成功路径；
- 是否加载外部资源；
- 当前车辆数、行人数和 FPS；
- 最近一次运行时错误。

【性能要求】

- 使用 requestAnimationFrame。
- 空间查询应使用网格分区、邻域查询或其他合理方法，不能让所有实体每帧无条件两两比较。
- 帧率连续低于 30 FPS 时，可降低雨滴、反光和远处行人细节，但不能删除核心交通逻辑。
- 所有按钮、任务、交通灯、警察、行人和车辆状态必须真实有效。

现在直接实现并交付 03-neon-open-city.html。
测试题 4：水墨互动长卷《星槎异闻录》
你现在参加一次本地模型综合能力测试。请立即实现作品，不要先写方案，不要反问，不要输出伪代码。

任务：制作一部名为《星槎异闻录》的 2.5D 水墨互动长卷，文件名必须是：

04-astral-scroll.html

这道题不仅测试网页编程，还测试中文写作、古文表达、叙事一致性、信息组织、语义映射和视觉设计。

【最终交付硬性要求】

1. 最终只能交付一个 HTML 文件。
2. HTML、CSS、JavaScript、SVG、Canvas、文字、图形、动画、数据和音效逻辑全部内嵌。
3. 禁止使用外部图片、外部字体、CDN、网络接口、第三方库或在线音频。
4. 断开网络后双击 HTML 文件即可直接运行。
5. 不得要求安装依赖、启动服务器或执行构建命令。
6. 如果具备文件写入能力，直接保存到当前工作目录；否则最终回复只能输出一个完整 HTML 代码块。
7. 不允许把网络图片转换成链接后嵌入。
8. 页面必须具有动态“文景一致性自检”面板，检测结果不能写死。

【作品设定】

创作一篇原创仿古短篇《星槎异闻录》。

故事讲述一位古代观星者乘坐“星槎”进入五重天境，寻找可以修复崩裂星图的五枚天印。五个场景分别是：

1. 雾海孤城；
2. 倒悬山；
3. 无字碑林；
4. 赤焰天河；
5. 星图天宫。

注意：

- 全文必须明确标注“原创仿古文本”，不能冒充真实古籍、出土文献或历史名篇。
- 不得捏造真实作者、真实朝代出处、真实文献编号。
- 古文应有完整起因、发展、转折和结局，不能只是古风词语堆砌。
- 原创古文正文为 350—550 个汉字。
- 同时提供准确、通顺的现代汉语译文。
- 提供至少 10 个词语的注释，但必须区分：
  - 真实古汉语词义；
  - 本故事原创世界观名词。
- 原创世界观名词不能伪装成真实古籍词条。

【2.5D 水墨长卷视觉】

- 整体采用横向展开的中国水墨长卷。
- 至少使用五层视差：前景、中景、远景、天空、雾气或粒子层。
- 滚轮、拖动或方向键可以沿长卷横向移动。
- 山峦、云雾、水面、星河、楼阁、碑林和天宫均由内嵌 SVG、Canvas 或 CSS 程序化绘制。
- 不允许用简单渐变背景加几段文字冒充长卷。
- 水墨轮廓应有浓淡、晕染、纸张纹理和留白。
- 鼠标移动时，各层以不同速度产生视差。
- 五个场景必须有明显不同的色彩气质和环境动画。
- 场景之间要有自然过渡，不能像五张互不相关的幻灯片。
- 加入纸屑、墨点、流云、星尘、萤火、火星等细节。
- UI 使用印章、卷轴、竹简、朱砂批注等视觉元素。

【文景联动】

古文正文与画面必须语义对应：

- 古文按句或按段显示在卷轴下方。
- 鼠标悬停某一句时，画面中对应的物体必须发光、移动或出现墨圈。
- 点击场景中的关键物体时，必须定位并高亮对应古文句子。
- 现代译文必须与当前古文段落同步。
- 注释必须随所选词语弹出，不能一次性堆在页面底部。
- 页面必须维护清晰的“文本段落—场景—物体—事件”映射数据。
- 不允许只用固定延时随机高亮。

【互动谜题】

五个场景中各隐藏一枚“天印”。用户需要根据古文中的线索找到它们。

每枚天印都对应一种交互：

- 雾海孤城：调整三盏灯的明暗顺序；
- 倒悬山：旋转三块山石，使水流连通；
- 无字碑林：根据古文线索选择正确碑文；
- 赤焰天河：在限定时间内引导星槎避开火流；
- 星图天宫：将五枚天印放入正确星位。

谜题答案必须由古文内容推导，不能让用户盲猜。

错误操作需要有明确反馈，但不能直接公布答案。完成谜题后，古文、场景和 UI 都要发生相应变化。

【分支结局】

至少实现三个结局：

1. 五印归位：星图修复；
2. 印序错误：星图变成另一片未知天域；
3. 未读懂碑林警告：星槎被永远困在循环长卷中。

结局必须由玩家的实际操作和阅读选择决定，不能随机抽取。

每个结局要有不同的：

- 最终古文段落；
- 现代译文；
- 画面变化；
- 印章式结局标题；
- 可重新展开长卷的入口。

【声音】

- 使用原生 Web Audio API 程序化生成风声、钟磬、火焰或低沉环境声。
- 必须由用户主动点击后才启用声音。
- 页面静音时不影响玩法。
- 禁止引用外部音频文件。

【文景一致性自检】

页面必须有可折叠自检面板，动态检查：

- 是否存在五个场景；
- 是否存在五层以上视差；
- 是否有 350—550 字原创古文；
- 是否明确标注为原创仿古文本；
- 是否存在现代译文；
- 是否存在至少 10 条分类注释；
- 每个古文段落是否关联真实场景元素；
- 每枚天印是否有对应文字线索；
- 是否存在三个可到达结局；
- 是否加载外部资源；
- 当前场景、已取得天印和当前结局；
- 最近一次运行时错误。

【体验要求】

- 普通观众打开页面后，10 秒内能理解它是一幅可以探索和解谜的水墨长卷。
- 即使不通关，也要有足够强烈的录屏展示效果。
- 古文、译文、谜题和画面必须前后一致。
- 不能为了视觉效果牺牲文本可读性。
- 所有场景、按钮、谜题、注释、结局和声音开关必须真实有效。

现在直接实现并交付 04-astral-scroll.html。
测试题 5：可解释神经网络实验室《神经元熔炉》
你现在参加一次本地模型数学、编程和可视化能力测试。请立即实现作品，不要先写方案，不要反问，不要输出伪代码。

任务：制作一个名为《神经元熔炉》的可交互神经网络训练实验室，文件名必须是：

05-neural-forge.html

【最终交付硬性要求】

1. 最终只能交付一个 HTML 文件。
2. HTML、CSS、JavaScript、训练数据、神经网络、图表、图形和动画全部内嵌。
3. 禁止使用 TensorFlow.js、PyTorch、ONNX、D3、Chart.js、p5.js、外部字体、CDN、网络接口或任何第三方依赖。
4. 神经网络的前向传播、损失计算、反向传播和参数更新必须使用原生 JavaScript 从零实现。
5. 断开网络后双击 HTML 文件即可运行。
6. 不得要求安装依赖、启动服务器或执行构建命令。
7. 如果具备文件写入能力，直接保存到当前工作目录；否则最终回复只能输出一个完整 HTML 代码块。
8. 禁止使用写死的损失曲线、预先计算的权重或随机变化的准确率冒充训练。
9. 页面必须有动态“数学自检”面板，检测结果不能写死。

【视觉目标】

把神经网络训练过程设计成一座 2.5D 全息实验室：

- 左侧是数据样本舱；
- 中间是神经网络结构；
- 右侧是决策边界和训练曲线；
- 数据点像发光粒子一样流入网络；
- 神经元像悬浮能量核心；
- 权重连接具有颜色、粗细、方向和脉冲动画；
- 正权重、负权重和接近零的权重有明显区别；
- 误差反向传播时，使用反向流动的光脉冲表现梯度；
- 背景具有网格、景深、光晕和半透明玻璃面板；
- 整体具有强烈的 2.5D 空间层次，而不是普通后台管理界面。

【真实神经网络】

必须从零实现一个全连接神经网络：

- 输入层：2 个输入；
- 隐藏层：允许 1—3 层；
- 每层神经元数量可在 4—24 之间调节；
- 输出层根据任务使用 1 个或多个输出；
- 激活函数至少支持 Tanh 和 ReLU；
- 输出和损失函数要与分类任务匹配；
- 使用真实前向传播；
- 使用真实反向传播；
- 使用随机梯度下降或小批量梯度下降；
- 支持学习率；
- 支持批大小；
- 支持 L2 正则化；
- 权重初始化必须合理；
- 每次训练都要真实更新参数；
- 检测 NaN、Infinity、梯度爆炸和梯度消失。

不允许调用任何现成机器学习库。

【数据集】

至少内置四种程序化二维数据集：

1. XOR；
2. 双月；
3. 同心圆；
4. 三螺旋或多螺旋。

要求：

- 数据由当前页面使用固定随机种子生成；
- 可调节样本数量和噪声；
- 用户可在数据平面中点击添加正类或负类样本；
- 用户可删除错误样本；
- 更换数据集后必须真正重新初始化模型和训练状态；
- 重置相同随机种子时，数据必须一致。

【实时可视化】

一、决策边界

- 将二维空间划分为网格；
- 使用当前真实模型对每个网格位置进行推理；
- 根据预测概率绘制平滑决策区域；
- 决策边界必须随训练实时变化；
- 不允许根据训练轮数播放预设动画。

二、网络结构

- 显示每层真实神经元。
- 显示真实连接权重。
- 连接线粗细反映权重绝对值。
- 颜色反映权重正负。
- 点击神经元后显示其偏置、激活值和最近一次梯度。
- 点击连接后显示当前权重、梯度和最近更新量。
- 调整网络层数或神经元数量后，网络图必须真实重建。

三、训练曲线

- 实时绘制真实损失曲线。
- 实时绘制训练准确率和验证准确率。
- 支持查看最近 100、500 或全部训练步。
- 图表坐标必须根据真实数据更新。
- 暂停训练后图表必须停止变化。

【控制系统】

用户可以调节：

- 数据集；
- 样本数量；
- 噪声；
- 随机种子；
- 隐藏层数量；
- 每层神经元数量；
- 激活函数；
- 学习率；
- 批大小；
- L2 正则化；
- 每帧训练步数；
- 训练、暂停、单步、重置；
- 正常速度和高速训练模式。

调整结构参数时，应明确提示模型将被重新初始化。

【可完成的挑战】

页面设置三项挑战：

1. XOR：在 30 秒内达到至少 95% 验证准确率；
2. 双月：在 45 秒内达到至少 90% 验证准确率；
3. 螺旋：在 90 秒内达到至少 80% 验证准确率。

达到目标时：

- 网络核心变成稳定的高亮状态；
- 出现简洁的成功动画；
- 显示使用的结构、学习率、训练步数、最终损失和准确率；
- 可以保存本次配置到页面内的“实验记录”。

如果训练发散，要明确显示可能原因，例如学习率过高、梯度爆炸或结构容量不足，不能只显示“失败”。

【数学自检】

页面必须自动完成并显示以下真实检测：

- 用有限差分法对一个小型网络执行数值梯度检查；
- 显示解析梯度与数值梯度的最大相对误差；
- 检查损失是否为有限数；
- 检查所有权重是否为有限数；
- 检查单步训练是否真正改变至少一个权重；
- 检查暂停后权重是否停止变化；
- 检查重置后相同随机种子是否复现相同初始权重；
- 检查决策边界是否来自当前模型推理；
- 检查曲线点是否来自真实训练记录；
- 检查是否加载外部资源；
- 显示当前 FPS、训练步数和最近一次运行时错误。

每项动态显示“通过、警告、失败”，不允许将结果直接写死。

【性能要求】

- 使用 requestAnimationFrame 更新视觉。
- 训练计算不得长时间阻塞界面。
- 高速模式可以分批执行训练，但每批后必须把控制权交回浏览器。
- 决策边界分辨率可根据帧率动态调整。
- 降低画质时不能伪造或减少核心训练步骤。
- 所有图表、按钮、滑块、训练状态和挑战必须真实有效。

现在直接实现并交付 05-neural-forge.html。
建议的统一评分方法
每题满分 100 分，尽量只评第一次生成的原始文件：
- 20 分：是否真的是一个文件，断网双击能否运行。
- 20 分：核心玩法或交互是否完整，按钮是否真实有效。
- 20 分：底层逻辑是否真实，不是写死动画、随机数字或假图表。
- 15 分：是否有明确目标、进度、失败、成功和结算。
- 15 分：视觉冲击力、动画连贯性、画面层次和录屏展示效果。
- 10 分：帧率、分辨率适配、错误处理、自检和操作细节。
建议额外记录四个客观指标：
- 第一次输出是否能够直接运行；
- 浏览器控制台有多少个致命错误；
- 是否偷偷使用外部依赖；
- 从收到题目到交付文件用了多长时间。
以下情况可以直接判定核心失败：
- 输出多个文件；
- 要求安装依赖或启动服务器；
- 断网后失效；
- 只有一张静态界面；
- 按钮没有实际功能；
- 用随机数字冒充真实计算；
- 用写死路线冒充寻路；
- 用预设曲线冒充神经网络训练；
- 没有真正的成功或失败状态；
- 自检面板只是固定显示“全部通过”。
