[控场AI]
· 5 分钟阅读· 2,591 字

Yonkers 站起来:一次 Three.js 机甲动画的实测

Yonkers 站起来:一次 Three.js 机甲动画的实测

Simon Willison 用 Claude Fable 5.2 把城市 Yonkers 生成 Three.js 机甲动画,兼作地理记忆与模型能力测试。

文章记录了开发者 Simon Willison 的一次小实验:他原本不知道纽约州城市 Yonkers 的位置,为加深记忆,便让 Claude Fable 5.2 生成一段 Three.js 动画,使 Yonkers 以巨型机甲形态站起,并在曼哈顿、皇后区和布鲁克林之间踩踏,同时使用 OpenStreetMap 地图数据。实验中最受关注的细节是提示词里的拼写错误 "átomos",模型正确推断其为 "stomps"(踩踏)并照此执行。作者认为,这类任务要求模型整合地理数据、3D 几何构建与动画编排,属于跨领域任务分解;其价值在于快速验证创意,而非产出生产级代码,也体现了 AI 编程工具在模糊需求和噪声输入下的实用能力。

AI 编程工具最近一年最常被讨论的能力,不再只是生成一段函数或补全代码,而是能不能把一个模糊的想法直接变成可运行、可观看的完整作品。开发者 Simon Willison 最近的一次小实验,给出了一个相当生动的样本:他让 Claude Fable 5.2 把纽约州城市 Yonkers 做成一台巨型机甲,在曼哈顿、皇后区和布鲁克林之间迈步踩踏。

Yonkers Rises 来源截图

实验起点:一个地理位置的记忆需求

Willison 在文章开头坦承,他原本并不知道 Yonkers 在哪里,于是去 Google Maps 查了一下。为了让这个城市的位置和轮廓真正"长在脑子里",他决定用一种更有视觉冲击力的方式加深记忆——把 Yonkers 做成一个从地图上站起来的巨型机甲。

这同时也是一个测试机会。他正好想试试 Claude Fable 5.2 在 3D 建模和动画方面的能力,于是用 Fable 5.2 Medium 模型发起了一次提示,要求生成一个 Three.js 动画:Yonkers 以帅气的动作站起成为一台大机甲,然后在曼哈顿、皇后区和布鲁克林周边踩踏,并使用 OpenStreetMap 地图数据。

这个需求的巧妙之处在于,它把"学习一个地理知识"和"测试一个模型能力"合并成了同一个任务。产物不是一个抽象的技术 demo,而是一个有具体对象、有空间关系、有动作叙事的完整场景。

Claude Fable 5.2 在文中被描述为一款具备 3D 建模与动画生成能力的 AI 编程模型,Willison 使用的是其 Medium 档位。这类模型与传统代码补全工具的区别在于,它接收的是自然语言目标而非具体的函数签名,需要自行推断技术方案、选择库、组织数据结构并写出可运行的完整代码。Medium 之类的档位命名通常对应模型在速度、成本与推理深度之间的权衡,较高档位更擅长处理需要多步规划的长任务。对于本文这种“一句话描述一个带动作叙事的 3D 场景”的需求,模型必须同时完成方案设计与代码实现,这正是评估其端到端任务执行能力的合适场景。

提示词里的错字与模型的纠错

这次实验最值得玩味的细节,是提示词里出现了一个打字错误。Willison 原文写的是 "átomos around manhattan",这显然是移动端键盘输入 "stomps" 时产生的误触。

模型正确地推断出 "átomos" 是 "stomps"(踩踏)的笔误,并按照"踩踏"的含义完成了动画。这个细节看起来很小,却反映了当前模型在理解真实用户输入时的实用能力:人在手机上打字出错是常态,如果一个编程模型对每个拼写错误都严格按字面执行,实际可用性会大打折扣。能够结合上下文意图纠正输入,是它从"代码生成器"走向"任务执行者"的一个标志。

据 Willison 的描述,最终的输出是一个可播放的 Three.js 动画视频,画面中 Yonkers 以机甲形态站起并在纽约各区之间移动。完整提示词和生成结果都通过 Claude 的分享链接公开,动画视频也以 mp4 形式挂在原文中。

Three.js 与 OpenStreetMap 的组合意味着什么

从技术选型看,这个任务要求模型同时处理三层内容:地理数据的获取与转换(OpenStreetMap)、3D 几何体的构建(把城市轮廓拉伸成机甲造型),以及动画编排(站起、行走、踩踏的时序与镜头)。

Three.js 是浏览器端 3D 渲染的常用库,OpenStreetMap 则提供了开放的地理数据。两者结合,意味着模型需要理解地理坐标如何映射到三维空间,以及如何把二维的城市边界转化为有体积、有关节的立体形态。这不是简单的代码片段拼装,而是一次跨领域的任务分解。

值得强调的是,这类生成的价值不在于产出可直接上线的生产代码,而在于快速验证一个创意是否成立。Willison 的目的一直是"帮助自己记住 Yonkers 的位置和形状",动画只是手段。模型在这里扮演的是一个能立刻把想法变成可视结果的执行者。

Three.js 是一个基于 WebGL 的开源 JavaScript 3D 库,它把底层的图形接口(着色器、缓冲区、矩阵变换)封装成场景图(Scene)、相机(Camera)、网格(Mesh)、材质(Material)等高层对象。开发者用它可以在浏览器里直接渲染三维几何体、光照和动画,而无需接触 WebGL 原始 API。Three.js 的核心抽象包括几何体(决定形状的顶点数据)、材质(决定表面外观)、以及通过 requestAnimationFrame 驱动的渲染循环,动画通常靠逐帧更新物体的位置、旋转或骨骼姿态来实现。

OpenStreetMap(OSM) 是一个由志愿者协作维护的开放地图数据库,提供道路、建筑轮廓、行政边界等矢量数据,采用 ODbL 开放许可,可免费下载和二次使用。它的数据以节点、路径、关系三种基本元素组织,开发者可以通过 Overpass API 按区域和标签查询特定地理要素。与商业地图服务相比,OSM 的优势在于数据可自由获取和加工,适合做可视化、路径分析或像本文这样把城市轮廓转换成 3D 模型。

对 AI 编程工具的一点观察

这次实验规模很小,却浓缩了当下 AI 编程工具的几种典型用法:用自然语言描述一个带视觉想象的目标,让模型自行选择技术栈(Three.js + OpenStreetMap),容忍输入中的噪声,最终交付一个可以直接观看的成品。

Willison 把这次实验打上了 three-js、llms、ai、generative-ai 等标签,也说明他把它归入生成式 AI 能力展示的范畴,而非严肃的工程实践。对于想评估模型 3D 与动画能力的开发者来说,这类"小任务大想象"的测试方式,比跑标准 benchmark 更能看出模型在真实模糊需求下的表现。

一个值得记住的细节是,整个实验的起点只是"我不知道 Yonkers 在哪"。当工具足够顺手时,学习一个新知识点和做一次技术验证之间的界限,会变得越来越模糊。

#Yonkers Rises#Claude Fable 5.2#Three.js 动画#AI 编程工具#OpenStreetMap 3D#生成式 AI 建模#Simon Willison
分享:

相关推荐