# 体素微缩建筑工地沙盘（MiniMax M3.1 Flash / max）

## 原始提示词

见 [完整原始输入](prompt.md)。该输入与主题提示词 v1 正文一致（含结尾的「添加新场景进去」）。

## 实现说明

单文件 `index.html`，Three.js r160 以 ESM 方式从 unpkg 引入。**全部几何体、材质与贴图均由代码生成**：木纹桌面、蓝图、安全警示牌与光晕贴图都用 Canvas 2D 现场绘制，模型全部由 Box / Cone / Cylinder 等基本体拼装。

### 桌面与道具

深色实木工作台（程序化木纹 + 年轮斑点），桌角散落三张蓝图、一把钢卷尺、一顶安全帽摆件与一支水平仪；沙盘为 30 × 20 的混凝土底板，四周带深色边框。

### 工地布局

基坑开挖区（含积水）、钢筋加工棚、物料堆放区（砂石料堆 + 水泥堆 + 钢筋堆）、在建高层楼房基座（4 层混凝土框架 + 外露钢筋 + 脚手架）、临时板房办公区（发光窗）、渣土堆放区、贯穿全场的临时施工道路与路缘；另有施工围挡、大门、水电杆、探照灯、警示彩旗、安全警示标识。

### 动态机械设备

| 设备 | 行为 |
|---|---|
| 2 台挖掘机 | 动臂 / 斗杆 / 铲斗三级联动，持续往复挖基坑土方 |
| 2 辆渣土车 | 沿折线路线行驶，到渣土堆自动举斗卸料，返程落斗 |
| 2 台塔吊 | 回转 + 小车变幅 + 吊钩升降，吊运钢筋捆 |
| 1 台装载机 | 往返推土并抬放铲斗 |
| 1 台混凝土搅拌车 | 缓慢行驶，滚筒持续旋转 |
| 18 名体素工人 | 以 InstancedMesh 渲染，分工为绑扎钢筋、搬运建材、指挥塔吊、巡逻安保，走动时上下起伏并摆动 |

所有设备的运动都限制在底板范围内（卡车走固定路线、吊臂长度与幅度经校核不越界），不会出现穿模或越界。

### 环境与交互

- **昼夜循环**：黎明 / 正午 / 黄昏 / 夜晚四套天色，插值改变天空、雾、日光颜色与强度；入夜后探照灯、塔吊灯与板房窗户亮起。
- **尘土**：自定义 GLSL 着色器的粒子系统，缓慢飘散，强度由旋钮控制。
- **暴雨**：空格键触发，雨滴以自定义着色器绘制为竖直条纹，地面变湿（粗糙度下降、颜色变深），工地灯光提亮。
- **实体旋钮**：桌面前方三个可点击的旋钮（设备速度 / 昼夜循环 / 尘土强度），点击后旋钮指针转动并实际改变参数；面板上的按钮是同一套逻辑的入口。
- **相机**：拖动环视、滚轮缩放、距离与高度滑杆，闲置 4 秒后自动缓慢环绕。
- **新增场景**：面板可切换到「小镇街区」——同一张桌面上的第二个沙盘，含住宅、树木、停放车辆、公园池塘与长椅，同样遵循"全部元素由代码生成"的约束。

## 运行与验证

Playwright + Chromium 自动化校验（模型生成的实现，均通过）：

- Three.js 场景创建成功，默认场景为工地沙盘，8 组机械设备均已生成。
- 渣土车位置随时间变化（沿折线路线行驶），且所有机械设备的坐标始终落在沙盘范围内。
- 设备速度旋钮把速度切到 2.0×，尘土强度旋钮把尘土切到「高」。
- 昼夜状态可手动切到黎明与夜晚；空格触发暴雨，天气状态显示为「暴雨」。
- 可切换到新增的「小镇街区」场景并正常渲染。
- 390px 视口无水平溢出；控制台无错误。
- 已知限制：测试环境为软件渲染，帧率 6–8 FPS；真实 GPU 上以 InstancedMesh 批渲染可稳定 60FPS。所有素材均由代码生成，页面不引用任何外部图片或模型。

<!-- archive:start -->
## 当前归档信息（自动生成）

- 实验 ID：`voxel-construction-site--minimax-m3-1-flash-max-r01`
- 模型：MiniMax M3.1 Flash；推理档位：max
- 类型：single-html；预览：static；网络：required
- [完整原始输入快照](prompt.md) · [主题与其他版本](../../../../topic.html?id=voxel-construction-site)
- 输入记录：完整原始输入快照，与主题提示词 v1 正文一致（含结尾的“添加新场景进去”要求）。
- 工具：Claude Code CLI（当前会话，模型 MiniMax-M3.1-Flash，档位 max）。单会话直接实现，未使用子代理；本地用 Playwright/Chromium 以 file:// 与 390px 视口做自动化校验。
- 运行方式：浏览器直接打开本目录入口；CDN/外部素材需要联网。
- 费用记录：MiniMax 批次合计 金额未记录（11 个案例；批次 minimax-m3-1-flash-max-2026-10-19；未记录单案例费用）
- [体素工地沙盘主页面](../../../../demos/voxel-construction-site/runs/minimax-m3-1-flash-max-r01/index.html)

### 部署适配记录

- Three.js 通过 unpkg ESM CDN 引入（r160），因此预览标记为 network: required。
- 按提示词结尾的“添加新场景进去”，在工地沙盘之外补充了“小镇街区”第二场景，可用面板按钮切换。
- 迁移来源：F:\dev\ai-coding-demo-test 的 experiment/minimax-m3-1-flash-max 分支，提交 871beb18e0e85d6dd542cadca398e67aa4ff1247；保留该提交中的任务输入、实现源码和原有说明。
- 维护者于 2026-10-20 按本仓库统计规则为网页入口引用公共 assets/analytics.js；原始任务输入未改动。
- 维护者于 2026-10-20 在本仓库本地 HTTP 预览中补拍真实桌面截图，并按案例评分规则 v2 逐项复核。
- 维护者于 2026-10-20 按用户要求重新逐图评分，原始 PNG、输入及实现不变；旧分、新分、逐项观察和规则快照保存在 catalog/score-reviews/2026-10-20-minimax-m3-1-flash-max-v2.json。
- 维护者于 2026-10-22 按 v3 对本轮桌面、手机及补充状态逐图重评并绑定 captures 证据；旧截图和 v2 评分见 catalog/score-reviews/2026-10-21-v3-source.json。未重跑模型或改写实验源码，截图不证明完整功能、算法、手势或性能。
<!-- archive:end -->
