优化算法迭代对比 / 制作与迭代记录

任务与构图
制作前把模糊的“看算法下山”拆成可完整完成的工作：定义目标与初始点、比较真实更新、读停止原因、导出全部路径。三维是科学对象本身的相机投影和深度几何，不用 CSS 倾斜模拟。颜色用来指认算法，不能替代数值。

从第一版到最终场景
review/first.html、first-3d.png 和 first-map.png 保留第一次真正能工作的 Rosenbrock 场景。当时曲面前缘的挤出墙挡住了谷底路径。去掉立墙、采用连续材质、调整相机后更清楚，但主视图仍被两侧高坡占据。同伴明确指出狭谷压缩了最需要理解的优化关系。
最终将默认改为旋转凸二次曲面，并采用线性 f 高度归一化。共同起点与解析最小点的标签由实际相机投影定位，三条路径在曲面内都可追踪。Rosenbrock 保留为独立实验并有面向谷口的视角；对数高度作为明确可选模式，不偷偷改变数值。二维报告始终同步。
同伴进一步发现游标 range 输入在取消/隐藏而未触发 change 时可能残留快照，随后撤销错误地跨过一次模型编辑。加入 finishCursor 统一提交当前游标并清空快照；Node VM 实际执行 ui-code 的 8 条状态序列，确认取消、失焦、隐藏、离页、编辑、撤销与连续拖动的历史一致。替身只验证逻辑，不代表浏览器实际事件时序。
实际默认参数是不同方法使用各自学习率，因此把原来容易误导的“同一步长”标题改为“从同一起点出发”。路径比较需要一起读取参数。

模型与导出
AppModel.evaluate 返回目标函数和解析梯度；run/derive 求完整数值路径。SceneApp 只把同一组点转换成几何。Artwork 生成等高线、收敛图及三维覆盖注释。PNG 原生核对直接使用嵌入式 Atelier3D 的 A.frame；注释合成使用页面实际函数，没有事后手绘新元素。

独立核对
三函数梯度在多处与中心差分比较；凸二次首步与手算一致；Adam 首步含偏差修正；β=0 动量等于 GD。最小点立即停止，越界尝试不伪装成收敛。所有方法关闭时仍能导出，3000 步文档完整回读、未知字段拒绝。
默认 a=1,b=18,θ=32°，起点 (2.4,1.8)。GD、动量、Adam 实际分别在 142、232、233 步达到 10⁻⁵ 梯度容差。具体终点与数值见 default-summary.json。

真实证据与评价
最终 default-3d.png 是带同源覆盖注释的原生场景；default-map.png 是完整二维结果。edited-3d.png 为多峰实验，boundary-map.png 展示大步长越界原因。首次工作版本真实保留，没有为制造改进效果补造差图。
默认景物与优化过程的关联已经比初版明确，用户能从共同起点追踪每种路径，再去二维图核算。有限网格、曲面高度归一化和观察窗保护均公开。未使用获准浏览器，DOM/CSS、设备交互与帧率均不在验收范围内；原生渲染时间不等于浏览器帧率。
