实验摘要

依据当前归档元数据整理;正文中的历史验证记录保留原有时间与口径。

模型 / 档位
MiniMax M3.1 Flash Preview · max
任务版本 / 轮次
v1 · 03
实验 / 归档日期
2026-10-14 / 未记录
输入留存
未记录
执行模式
按原任务执行
工具
Claude Code
截图评分
65/100 · 规则 v3
费用
批次合计 · 108 %(Max 订阅套餐五小时额度) · 12 个案例,不拆算单案例
耗时
批次耗时 · 2h 8m 32s · 12 个案例
人工修改
查看 12 条修改记录第 3 轮:地形分辨率 240×168 放大后海岸线呈明显方块阶梯;已提升到 384×256 并给沙滩色带加过渡,同时按新规模重标定河流分级与城镇间距。;第 3 轮:海深用线性映射出现等深线色带;已改为幂函数过渡。;第 4 轮:海平面滑块每次都重新生成噪声(约 130ms);已保留原始地形,改为只重排行程与水系(约 63ms)。;第 1 轮:setPointerCapture 未做保护;已改为 try/catch。;第 6 轮:参数拖动按帧合并——原先 30 次连续 input 会跑 30 次重算(实测 1707ms),改为 rAF 合并后同样 30 次只重算 1 次(0ms 阻塞),陆地占比与水系读数仍然正确更新。;第 6 轮:区分轻重参数——海平面只重排行程与水系(复用同一份噪声缓存),崎岖度与岛屿数量才整图重新生成。;第 7 轮:容器自适应——ResizeObserver 跟随画布宿主宽度,嵌入窄栏时画布等比缩放且不溢出;侧栏在宽度 <780px 时折叠为可滚动抽屉。;第 8 轮:键盘操作与播报——方向键平移、+/- 缩放、F 适应窗口;结果写入 aria-live 区域;补齐 focus-visible 焦点环。;第 9 轮:城镇命名与地形挂钩——新增 terrainKind(沿海/河畔/山口/平原),后缀改为港/渡/关/原,而非与地形无关的随机组合。;第 10 轮:视图状态集中为 view 对象(zoomBy/setZoom/pan),滚轮、缩放滑杆、键盘三处入口复用同一套夹取逻辑;同时新增 clampPan,把视口限制在地图范围内,修正经纬度读数越界(原为 -197.8° ~ 162.2°,现为 -180° ~ 162°)。;同轮更新归档:测试分支后续更新的完整产物、执行记录和文档已并入本条实验记录,不另建新轮次。来源:F:/dev/ai-coding-demo-test(model-test-base)/demos/fantasy-map-generator/runs/minimax-m3-1-flash-preview-max-r01。;维护者于 2026-10-22 按 v3 对本轮桌面、手机及补充状态逐图重评并绑定 captures 证据;旧截图和 v2 评分见 catalog/score-reviews/2026-10-21-v3-source.json。未重跑模型或改写实验源码,截图不证明完整功能、算法、手势或性能。

查看完整原始输入 →

奇幻地图生成器

原始提示词

见 完整原始输入。本轮为模型 minimax-m3-1-flash-preview、档位 max 在测试分支执行任务正文 v1。

运行方式

入口为本目录 index.html,单文件、零依赖、无 CDN。首屏即为可操作的默认地图(种子 1306),支持 file:// 直接打开。

实现要点

  • 种子经 FNV-1a 哈希后驱动 mulberry32 伪随机,保证「同种子 + 同参数 = 同地图」。
  • 地形 = 值噪声 fBm + 域扭曲 + 脊状噪声(ridged) + 多岛中心掩膜;最后做按秩归一化,海平面滑块直接对应陆地占比,避免出现大片无意义雪原。
  • 河流是真正的汇流模型:按高度降序处理格子,降雨量向下坡累积,flow 超过阈值的格子标为河道,因此河流只会沿地势下降流向海洋或洼地,绝不会翻越山峰。
  • 没有出口的局部洼地标记为内陆湖泊。
  • 渲染走离屏 canvas + 视口变换,支持平移、滚轮缩放、双指捏合;坐标换算统一走屏幕→地图映射,缩放后绘制位置仍然正确。
  • 画笔(升高 / 降低 / 挖海)直接改写高度图,改完立即重算海岸、河流、湖泊与城镇。
  • 城镇位置由种子伪随机 + 平坦度 + 相互间距筛选,保证可复现且不扎堆。

验证记录

  • 相同种子连续两次生成,画布像素完全一致;更换种子后结果明显不同。
  • 画笔在地图中央拖动后,最高海拔与河流像素段数量都发生变化,说明地形与水系联动生效。
  • 河流像素约 1300 段且连通成树状,符合汇流模型;不存在横穿山脊的孤立河道。
  • 「显示河流」「显示城镇标签」两个开关真实控制渲染结果。
  • 缩放与平移后画笔落点与光标一致(屏幕→地图换算统一)。
  • 390px 视口无水平溢出;内联脚本通过 node --check;控制台无报错。

复盘

做得好的:任务正文最难的一条是「河流沿地势下降流向海洋或合理内陆水体,不能随机穿越山峰」,实现用了完整的流量累积而不是「随机撒点画河」,这条是真的算出来的。另外按秩归一化让海平面滑块有了明确物理含义(陆地占比),是可重复性与可调性兼得的处理。

不足:

  1. 初版地形是「圆顶」,山体连成一大片白色平原,河流呈放射状直线——单看数值全部正确,视觉上却完全不像地图。加入脊状噪声后才有山脉形态。
  2. 海岸线仍有明显的方块阶梯(单个地图像素被放大),与「手绘风格」的预期有差距;应该做一次地形平滑或提高离屏分辨率。
  3. 城镇名只是「字 + 字」的随机组合,重复度高,且没有任何地形语义关联。
  4. 海平面滑块改变时是整图重新生成(排序 4 万格),连续拖动会有轻微卡顿。
  5. 没有地图保存 / 加载(种子之外的状态无法保存),画笔编辑结果只能靠重新生成覆盖。

十轮评审改进记录

本轮由模型 MiniMax M3.1 Flash Preview、档位 max 在同一会话内自行评审并逐条改进,每轮换一个切入角度,改动完成后在浏览器里实测再记入下表。历史输入与历史产物未被覆盖。

  • 第 3 轮:地形分辨率 240×168 放大后海岸线呈明显方块阶梯;已提升到 384×256 并给沙滩色带加过渡,同时按新规模重标定河流分级与城镇间距。
  • 第 3 轮:海深用线性映射出现等深线色带;已改为幂函数过渡。
  • 第 4 轮:海平面滑块每次都重新生成噪声(约 130ms);已保留原始地形,改为只重排行程与水系(约 63ms)。
  • 第 1 轮:setPointerCapture 未做保护;已改为 try/catch。
  • 第 6 轮:参数拖动按帧合并——原先 30 次连续 input 会跑 30 次重算(实测 1707ms),改为 rAF 合并后同样 30 次只重算 1 次(0ms 阻塞),陆地占比与水系读数仍然正确更新。
  • 第 6 轮:区分轻重参数——海平面只重排行程与水系(复用同一份噪声缓存),崎岖度与岛屿数量才整图重新生成。
  • 第 7 轮:容器自适应——ResizeObserver 跟随画布宿主宽度,嵌入窄栏时画布等比缩放且不溢出;侧栏在宽度 <780px 时折叠为可滚动抽屉。
  • 第 8 轮:键盘操作与播报——方向键平移、+/- 缩放、F 适应窗口;结果写入 aria-live 区域;补齐 focus-visible 焦点环。
  • 第 9 轮:城镇命名与地形挂钩——新增 terrainKind(沿海/河畔/山口/平原),后缀改为港/渡/关/原,而非与地形无关的随机组合。
  • 第 10 轮:视图状态集中为 view 对象(zoomBy/setZoom/pan),滚轮、缩放滑杆、键盘三处入口复用同一套夹取逻辑;同时新增 clampPan,把视口限制在地图范围内,修正经纬度读数越界(原为 -197.8° ~ 162.2°,现为 -180° ~ 162°)。

以上每条改动也登记在本目录 run.json 的 changes 字段,可与本表逐条对照。

轮次归并与批次汇总

本次后续导入是同一轮测试的更新结果,现已合并到此前归档的实验记录,不另建第 4 轮。普通主题沿用第 3 轮记录;蓝皮书 v1/v2 沿用各自已有的记录 ID。

  • 本批:11 个主题案例、12 条实验记录(蓝皮书含 v1/v2)。
  • Max 五小时额度累计消耗:108%(此前 44% + 本次 64%)。
  • 累计耗时:2h 8m 32s(57m 10s + 1h 11m 22s)。
  • 累计 Token:156M。
  • 执行备注:自我审查十轮。以上额度消耗、耗时和 Token 为批次口径,不拆分到单案例。

当前归档信息(自动生成)

  • 实验 ID:fantasy-map-generator--minimax-m3-1-flash-preview-max-r03
  • 模型:MiniMax M3.1 Flash Preview;推理档位:max
  • 执行模式:按原任务执行;备注:自我审查十轮
  • 类型:single-html;预览:static;网络:offline
  • 完整原始输入快照 · 主题与其他版本
  • 输入记录:完整原始输入,等同于主题任务正文 v1(未增删),保存于本目录 prompt.md。
  • 工具:Claude Code。Claude Code 会话内直接执行,模型 minimax-m3-1-flash-preview、档位 max;未使用子代理,未参考任何历史实现或远程分支。
  • 运行方式:浏览器直接打开本目录入口;CDN/外部素材需要联网。
  • 费用记录:MiniMax 批次合计 108 %(Max 订阅套餐五小时额度)(12 个案例;批次 minimax-m3-1-flash-preview-max-2026-10-14;未记录单案例费用)
  • 生成器入口

部署适配记录

  • 第 3 轮:地形分辨率 240×168 放大后海岸线呈明显方块阶梯;已提升到 384×256 并给沙滩色带加过渡,同时按新规模重标定河流分级与城镇间距。
  • 第 3 轮:海深用线性映射出现等深线色带;已改为幂函数过渡。
  • 第 4 轮:海平面滑块每次都重新生成噪声(约 130ms);已保留原始地形,改为只重排行程与水系(约 63ms)。
  • 第 1 轮:setPointerCapture 未做保护;已改为 try/catch。
  • 第 6 轮:参数拖动按帧合并——原先 30 次连续 input 会跑 30 次重算(实测 1707ms),改为 rAF 合并后同样 30 次只重算 1 次(0ms 阻塞),陆地占比与水系读数仍然正确更新。
  • 第 6 轮:区分轻重参数——海平面只重排行程与水系(复用同一份噪声缓存),崎岖度与岛屿数量才整图重新生成。
  • 第 7 轮:容器自适应——ResizeObserver 跟随画布宿主宽度,嵌入窄栏时画布等比缩放且不溢出;侧栏在宽度 <780px 时折叠为可滚动抽屉。
  • 第 8 轮:键盘操作与播报——方向键平移、+/- 缩放、F 适应窗口;结果写入 aria-live 区域;补齐 focus-visible 焦点环。
  • 第 9 轮:城镇命名与地形挂钩——新增 terrainKind(沿海/河畔/山口/平原),后缀改为港/渡/关/原,而非与地形无关的随机组合。
  • 第 10 轮:视图状态集中为 view 对象(zoomBy/setZoom/pan),滚轮、缩放滑杆、键盘三处入口复用同一套夹取逻辑;同时新增 clampPan,把视口限制在地图范围内,修正经纬度读数越界(原为 -197.8° ~ 162.2°,现为 -180° ~ 162°)。
  • 同轮更新归档:测试分支后续更新的完整产物、执行记录和文档已并入本条实验记录,不另建新轮次。来源:F:/dev/ai-coding-demo-test(model-test-base)/demos/fantasy-map-generator/runs/minimax-m3-1-flash-preview-max-r01。
  • 维护者于 2026-10-22 按 v3 对本轮桌面、手机及补充状态逐图重评并绑定 captures 证据;旧截图和 v2 评分见 catalog/score-reviews/2026-10-21-v3-source.json。未重跑模型或改写实验源码,截图不证明完整功能、算法、手势或性能。

本页目录 ↑