Blender 3D 场景搭建

Agent 在 Blender 里完成客户口吻的 3D 需求,交付 .blend 场景和完整轨迹。

按需生产对应:Blender 3D 建模

索取样例
每条轨迹的 API 请求数
38–⁠15749–⁠198 次工具调用
每单可核验的要求
3–⁠12尺寸、命名、时长、面数与材质上限等
单条耗时中位数
51 分钟范围 17–⁠169 分钟
一条数据
一个成品 .blend 场景及其完整的请求级轨迹
格式
.blend(Blender 4.5 LTS)+ JSONL 轨迹,zstd 压缩
Agent
Claude Code + Claude Opus 5.5,max effort
工具
通过 MCP 操作 Blender(Python、场景查询、截图)、shell、文件读写
客户需求
英文,1–⁠3 条消息;可附户型图、图纸、表格、logo 或 .blend 文件

概览

每条数据对应一份按客户口吻写的 3D 需求,有的附带户型图、图纸、logo 或 .blend 文件。Agent 直接操作 Blender 完成任务,场景里新加的每样东西都用 Python 代码搭出来,最后交回成品场景和完整的请求级轨迹。

交付内容

<task>/
├── scene.blend         成品场景
├── requests.jsonl.zst  轨迹
├── request/            需求和附带的文件
├── checks.json         验收结果
└── previews/           预览图
  • 轨迹:每次 Messages API 请求记一行 JSON,包括完整的请求(连同工具定义和每一张截图)和完整的回复。
  • 截图:Agent 查看自己作品时截的每一张图都在轨迹里,下面样例里的过程画面就取自其中。
  • 思考:思考内容是 API 返回的摘要。
  • 验收结果:每一项写明对应的要求、实测值和是否通过。
  • 体积:场景加轨迹,每条 3–⁠31 MB。

难点覆盖

10 条样例各有侧重。点列号可跳到对应样例。

难点 1 2 3 4 5 6 7 8 9 10
以附带文件为准(户型图、图纸、logo、.blend) ● ● ● ●
追加消息改需求 ● ● ●
真实尺寸与单位 ● ● ● ● ● ● ●
命名与场景组织规则 ● ● ● ● ● ● ● ●
限定时长的动画(定长、无缝循环或结尾静止) ● ● ● ● ●
面数和材质上限,UV 与原点要求 ● ● ●
颜色必须精确(色值或限定色板) ● ●
明确禁止项 ● ● ● ● ●
专项技术:物理、绑定、参数化建模、文件整理 ● ● ● ●

样例

每张卡片对应一个任务,从需求一直讲到成品:需求原文、随需求附带的文件、Agent 在制作过程中自己截的图和试渲染,最后是成品场景。点任意一张图可以放大,并按顺序逐张翻看。

样例 1 / 10

按户型图建平房,再改黄昏光线、加漫游镜头

  • 建筑
  • 室内
  • 灯光
  • 镜头动画
  • 2 条消息
  • 附件:平面图、JSON 版平面图、房间表
  • 难点
  • 尺寸严格按图纸
  • 每个房间单独成组并按图命名
  • 第 2 条消息:黄昏光线、25 秒漫游
  • 两扇门照图放不下

一对退休夫妇发来建筑师画的首层平面图(图纸、同一份图的 JSON 数字版和房间表各一份),要求严格照图建出这座平房:客厅和厨房、餐厅配好家具,泳池、露台和花园都按真实尺寸,每个房间单独成组、名字与图纸一致。第 2 条消息要求把光线改成黄昏,太阳低低地从泳池一侧照来,再加一段从正门走到泳池边、约 25 秒的慢速漫游镜头。读图时 Agent 就发现图上有两扇门的门边嵌进了外墙 5 cm,它照图建模,并在回复里说明了改法。

需求原文

第 1 条消息

… My husband and I are retired and building our first new house, a two-bedroom bungalow near the coast. Before the builder starts in the spring, we would like to walk around it in 3D and get a feel for the rooms. The architect's plan is attached as plan.png. The same plan is in plan.json as numbers, and the room sizes are in room_schedule.csv. Please build it exactly to those measurements, with the doors and windows where the plan shows them. We'd like the living room and the kitchen-dining furnished properly, with a sofa, table, chairs and so on, so we can judge whether the space works. The bedrooms can stay empty for now. Outside we need the pool, which is 9 m by 4 m, plus the terrace, the lawn and some planting, all at real size. Our grandson wants to walk through it in a game engine later. He asked that each room be kept as its own separate group, named the same as on the plan. Could you have it ready in about three weeks? …

中文大意

…… 我和丈夫已经退休,正在海边附近盖我们的第一栋新房子,一座两居室的平房。春天施工方就要开工,在那之前,我们想先在 3D 里四处走走,感受一下各个房间。 建筑师画的平面图附在 plan.png 里;同一份图纸的数字版在 plan.json 里,各房间的尺寸在 room_schedule.csv 里。请严格按这些尺寸来建,门窗位置照图纸。客厅和厨房、餐厅请好好配上家具,沙发、桌子、椅子之类,好让我们判断空间合不合用。卧室暂时空着就行。室外要有泳池,尺寸是 9 m × 4 m,还要有露台、草坪和一些绿植,都按真实尺寸。 我们的孙子以后想在游戏引擎里走一走。他希望每个房间都单独成组,名字和图纸上一样。 大约三周能做好吗? ……

第 2 条消息

Thank you, it's lovely to see it. Could you set the light to golden hour, with the low sun coming from the pool side? And please add a slow walk-through camera that starts at the front door, goes through the living room and out to the pool, about 25 seconds long.

中文大意

谢谢,能看到它真好。能把光线调成黄昏时分、太阳低低地从泳池那边照过来的样子吗?另外请加一个慢速漫游镜头:从正门开始,穿过客厅,一直走到外面的泳池边,长约 25 秒。

从需求到成品

  1. 附件

    建筑师画的首层平面图:地块 25 × 25 m,房子按墙中线 12.30 × 7.20 m,室内净高 3.00 m,泳池 9.00 × 4.00 m,露台 6.00 × 2.70 m。

    建筑师画的首层平面图:地块 25 × 25 m,房子按墙中线 12.30 × 7.20 m,室内净高 3.00 m,泳池 9.00 × 4.00 m,露台 6.00 × 2.70 m。

  2. 第 1 条消息,工具调用 27/125

    Agent 第一次试搭的结果,隐藏了屋顶和天花板,左边从上往下看,右边从临街一侧看:七个房间按图纸坐标排好,门窗洞口已经开出,地面已分成木地板、瓷砖和地毯。

    Agent 第一次试搭的结果,隐藏了屋顶和天花板,左边从上往下看,右边从临街一侧看:七个房间按图纸坐标排好,门窗洞口已经开出,地面已分成木地板、瓷砖和地毯。

  3. 第 1 条消息,工具调用 45/125

    相机在 2.9 m 高处把房子水平剖开,俯看带家具的平面:餐厅是六人餐桌,客厅有沙发、扶手椅和地毯,厨房是 L 形橱柜加一张早餐桌,两间卧室按要求空着。

    相机在 2.9 m 高处把房子水平剖开,俯看带家具的平面:餐厅是六人餐桌,客厅有沙发、扶手椅和地毯,厨房是 L 形橱柜加一张早餐桌,两间卧室按要求空着。

  4. 第 1 条消息,工具调用 54/125

    客厅的试渲染:沙发对着电视墙,旁边是书架和扶手椅。左边通往门厅的洞口正对着敞开的正门,一直能看到街上;右边是通往露台的推拉门。

    客厅的试渲染:沙发对着电视墙,旁边是书架和扶手椅。左边通往门厅的洞口正对着敞开的正门,一直能看到街上;右边是通往露台的推拉门。

  5. 第 1 条消息,工具调用 66/125

    第 2 条消息之前,白天的花园一侧:9 × 4 m 的泳池和入水台阶、推拉门外的露台、几处花坛,还有图纸上的两棵树。

    第 2 条消息之前,白天的花园一侧:9 × 4 m 的泳池和入水台阶、推拉门外的露台、几处花坛,还有图纸上的两棵树。

  6. 第 1 条消息,工具调用 82/125

    厨房:L 形橱柜,水槽在窗下,还有灶台和烟机、烤箱和冰箱高柜。橱柜在右边的后门前收住,门可以完全打开。

    厨房:L 形橱柜,水槽在窗下,还有灶台和烟机、烤箱和冰箱高柜。橱柜在右边的后门前收住,门可以完全打开。

  7. 第 2 条消息,工具调用 115/125

    Agent 为检查漫游镜头渲出的六帧(第 1、60、120、300、450、600 帧):从门前小路靠街的一端出发,穿过敞开的正门和门厅,在客厅停下看向电视墙,再穿过草坪走到泳池边。太阳低低地落在泳池那一侧,临街的一面处在阴影里,草坪上是一道道长影子。

    Agent 为检查漫游镜头渲出的六帧(第 1、60、120、300、450、600 帧):从门前小路靠街的一端出发,穿过敞开的正门和门厅,在客厅停下看向电视墙,再穿过草坪走到泳池边。太阳低低地落在泳池那一侧,临街的一面处在阴影里,草坪上是一道道长影子。

  8. 成品场景

    第 2 条消息之后交付的场景,黄昏光线:太阳低低地落在泳池那一侧,后院边界的灌木在草坪上投下长长的影子。

    第 2 条消息之后交付的场景,黄昏光线:太阳低低地落在泳池那一侧,后院边界的灌木在草坪上投下长长的影子。

  9. 成品场景,俯视

    同一场景从正上方看,屋顶已剖开,可以和平面图对照:带家具的房间、露台、泳池、两棵树,后边和侧边沿地界种的灌木,还有车道和门前小路。

    同一场景从正上方看,屋顶已剖开,可以和平面图对照:带家具的房间、露台、泳池、两棵树,后边和侧边沿地界种的灌木,还有车道和门前小路。

结果

用时(分钟)
107
API 请求
103
工具调用
125
物体
143
三角面
77,414
验收项(11 项)
  • 集合 Bedroom 2(卧室 2),名字与图纸一致:找到。
  • 集合 Living Room(客厅),名字与图纸一致:找到。
  • 集合 Dining Room(餐厅),名字与图纸一致:找到。
  • 集合 Kitchen(厨房),名字与图纸一致:找到。
  • 图纸上每个房间至少一个集合(共 7 个房间):共 18 个集合,即 7 个房间,加上房子、屋顶、花园各部分和相机。
  • 场景长度不小于房子外轮廓的 12.6 m:达标。
  • 场景高度不小于 3.0 m 的室内净高:达标。
  • 泳池 9 × 4 m:泳池水体实测 9.0 × 4.0 m。
  • 漫游相机(第 2 条消息):找到。
  • 相机沿漫游路线移动(第 2 条消息):它是场景里唯一在动的物体。
  • 漫游时长约 25 秒(第 2 条消息):600 帧,24 fps,共 25.0 秒。
轨迹节选:Agent 的交付说明

对第 1 条消息的回复

- All seven rooms match the room schedule exactly, 88.56 m² in total, with 3.00 m ceilings. - All 9 doors and 8 windows are where the plan puts them, at the right width, height and sill height. … Two doors don't quite fit where they're drawn: - the door from the hall into Bedroom 2 (D2) - the door from the living room into the dining room (D5) Each is 90 cm wide, but its edge sits 5 cm inside the outside wall, and the drawing shows the same. As drawn, the builder would have to cut into the outside wall, and the door would rub against it when opened. I've modelled both exactly as drawn, with the frame packed out on that side so the door can still open. The fix is easy: move each door 5–10 cm away from the outside wall, or use an 80 cm door. It's best settled before the builder starts.

中文大意

- 七个房间都与房间表完全一致,总面积 88.56 m²,室内净高 3.00 m。 - 9 扇门和 8 扇窗都在图纸标的位置,宽度、高度和窗台高度都对。 ……有两扇门照图上画的位置放不太下: - 门厅通往卧室 2 的门(D2) - 客厅通往餐厅的门(D5) 两扇门都宽 90 cm,但门边嵌进了外墙 5 cm,图纸上画的也是这样。照图施工的话,施工方得在外墙上凿掉一块,门开的时候还会蹭到墙。 这两扇门我都完全照图建模,只是在那一侧把门框垫出来,让门还能打开。改起来很容易:把门往远离外墙的方向挪 5–10 cm,或者换成 80 cm 宽的门。最好在施工方开工前定下来。

对第 2 条消息的回复

- I checked the whole route by measuring it: it never passes through a wall or furniture, it keeps at least 35 cm clear at body height, and the head turns stay gentle.

中文大意

- 整条路线我都实测过:不会穿过任何墙或家具,在身体高度上始终和周围保持至少 35 cm 的距离,转头也都很平缓。

样例 2 / 10

竖版游戏广告:保龄球撞倒积木小镇

  • 物理模拟
  • 动画
  • 手游广告
  • 1 条消息
  • 难点
  • 三栋楼全部撞倒
  • 最后一秒完全静止
  • 低机位跟拍
  • 场景整洁、命名规范

一位在小工作室做手游广告的制片,想要一条 8 秒的竖版开头:一颗巨型保龄球沿着明亮的玩具小镇街道滚过去,把三栋用约 300 块敦实积木搭成的楼统统撞倒,低机位贴着球跟拍。积木怎么倒,由真实的刚体物理决定:Agent 最初几次模拟时,球先被小屋挡停,后来又卡在高楼前,散落的积木也一直在挪动、翻倒,直到最后一帧;可需求要求最后一秒一切静止,好接片尾卡。Agent 让球沿一条引导路径穿过三栋楼,把最后的余动平稳收住,第 198 帧之后再没有东西移动,然后把运动烘焙成关键帧。

需求原文

… So I'm a producer at a small studio that makes short ads for mobile games and apps. One of our puzzle game clients has seen installs flatten out, so we're testing a few new hooks. The one everyone liked in the pitch is basically a giant bowling ball flattening a toy town, ha. What I'm picturing is about 8 seconds at 30 fps: a bright street with three buildings made of stacked toy blocks, roughly 300 blocks total, chunky and soft like plastic or clay toys. The ball rolls down the street and knocks all three over. By the last second everything has settled with nothing wobbling, because that's where our end card comes in. Camera low, down near the ball and following it, and vertical for phones. Sorry in advance, our editor is fussy, so a tidy, sensibly named scene would save me some grief.

中文大意

……我是一家小工作室的制片,我们专做手游和 App 的短广告。我们有个做益智游戏的客户,最近安装量涨不上去了,所以我们在测试几个新的开头创意。提案时大家最喜欢的一个,说白了就是一颗巨型保龄球把玩具小镇碾平,哈。 我设想的是 30 fps、8 秒左右:一条明亮的街道,三栋用玩具积木垒成的楼,积木总共 300 块上下,要敦实、软乎乎的,像塑料或黏土玩具。球沿着街道滚过去,把三栋楼全部撞倒。到最后一秒,所有东西都要停稳,不能有一点晃动,因为片尾卡就从那里进来。 机位要低,贴近球,跟着它走;画面竖屏,给手机看。 先说声抱歉,我们的剪辑师比较挑剔,场景整洁、命名合理的话,我能少挨点埋怨。

从需求到成品

  1. 第 1 条消息,工具调用 16/167

    Agent 搭好街道后视口里的样子:红砖小屋、蓝黄相间的高楼和带塔楼的市政厅,一共 292 块积木,这时还没有开始物理模拟。

    Agent 搭好街道后视口里的样子:红砖小屋、蓝黄相间的高楼和带塔楼的市政厅,一共 292 块积木,这时还没有开始物理模拟。

  2. 第 1 条消息,工具调用 54/167

    Agent 把较早的一版机位运动拼成 15 格缩略图来检查(第 1 到 240 帧)。相机离小屋太近:砖块直接穿过镜头,第 58 帧整个画面被一块红砖挡满。

    Agent 把较早的一版机位运动拼成 15 格缩略图来检查(第 1 到 240 帧)。相机离小屋太近:砖块直接穿过镜头,第 58 帧整个画面被一块红砖挡满。

  3. 第 1 条消息,工具调用 80/167

    又一次 15 格检查(第 1 到 240 帧)。此前 Agent 算出每块积木离相机最近有多远,把路边的树往外挪,在街道旁让出一条机位通道,又重新模拟、重新设计了机位运动:这一次没有一帧被挡住,积木离相机最近也有 0.78 m。

    又一次 15 格检查(第 1 到 240 帧)。此前 Agent 算出每块积木离相机最近有多远,把路边的树往外挪,在街道旁让出一条机位通道,又重新模拟、重新设计了机位运动:这一次没有一帧被挡住,积木离相机最近也有 0.78 m。

  4. 第 1 条消息,工具调用 131/167

    第 1、50、96、240 帧的试渲染。此前 Agent 把球面的花纹调得更柔和,又改了球的转动,让它在碎积木上是滚而不是滑,停下时指孔正对镜头。

    第 1、50、96、240 帧的试渲染。此前 Agent 把球面的花纹调得更柔和,又改了球的转动,让它在碎积木上是滚而不是滑,停下时指孔正对镜头。

  5. 第 1 条消息,工具调用 151/167

    第 36 帧的全分辨率试渲染:小屋在球的冲撞下四散飞开,画面带运动模糊和景深,高楼和市政厅还立在街道远处。

    第 36 帧的全分辨率试渲染:小屋在球的冲撞下四散飞开,画面带运动模糊和景深,高楼和市政厅还立在街道远处。

  6. 成品场景,第 1 帧

    从交付场景的相机看出去:球正滚向红砖小屋。

    从交付场景的相机看出去:球正滚向红砖小屋。

  7. 成品场景,第 240 帧

    最后一帧:球停在积木堆上,指孔朝向镜头;第 198 帧之后就再没有东西动过,上方留出的天空可以放片尾卡。

    最后一帧:球停在积木堆上,指孔朝向镜头;第 198 帧之后就再没有东西动过,上方留出的天空可以放片尾卡。

结果

用时(分钟)
94
API 请求
157
工具调用
167
物体,其中 295 个会动
364
帧(30 fps)
240
验收项(5 项)
  • 约 8 秒、30 fps:时间轴共 240 帧,30 fps。
  • 约 300 块独立积木:场景里有 361 个独立的网格物体,其中 292 个是三栋楼的积木。
  • 球和积木确实在动:整个镜头过程中有 295 个物体在动,球和全部 292 块积木都在其中。
  • 为片尾卡停稳:最后两帧之间没有任何物体移动。
  • 拍摄用的相机:场景里有 1 台相机,并已设为场景相机。
轨迹节选:Agent 的交付说明
- Frame 24: it smashes through the red brick cottage. - Frame 58: it knocks down the blue-and-yellow apartment tower. - Frame 90: it plows through the town hall with its turrets and clock tower. - Frame 144: the ball comes to rest on the rubble with its finger holes turned toward camera. - End card: nothing moves after frame 198. Frames 211–240 are a completely still frame: every block, the ball, the camera and the zoom. … - Everything sits in named groups: CAMERA, LIGHTS, BALL, BUILDINGS (one group per building) and ENVIRONMENT. Objects, materials and animations all have readable names, with no leftover defaults. - The timeline has markers on each hit, on "ball at rest", on "all still" and on "end card in".

中文大意

- 第 24 帧:球撞穿红砖小屋。 - 第 58 帧:撞倒蓝黄相间的公寓楼。 - 第 90 帧:碾过带塔楼和钟楼的市政厅。 - 第 144 帧:球停在碎积木上,指孔转向镜头。 - 片尾卡:第 198 帧之后没有任何东西移动。第 211–240 帧是一个完全静止的画面:每块积木、球、相机和变焦都纹丝不动。 …… - 所有东西都放在有名字的组里:CAMERA、LIGHTS、BALL、BUILDINGS(每栋楼一个组)和 ENVIRONMENT。物体、材质和动画都起了好认的名字,没有留下默认名。 - 时间轴上打了标记:每次撞击处,以及“ball at rest”(球停稳)、“all still”(全部静止)和“end card in”(片尾卡进入)处。

样例 3 / 10

按工程图纸建蒸汽机车,车轮连杆能转

  • 机械
  • 载具
  • 硬表面建模
  • 动画
  • 1 条消息
  • 附件:2 张图纸、零件表
  • 难点
  • 尺寸取自两张图纸
  • 66 个零件按零件表命名
  • 3 秒一圈、无缝循环
  • 按图纸会相撞的零件

一位遗产铁路的志愿者要为车站里的互动展览做一台 0-4-0 侧水柜蒸汽机车的 3D 模型,观众在屏幕上点哪个零件,就能看到它的名字。需求附带侧视图和正视图(SVG 和 PNG 各一份)以及 33 行的零件表:每个看得见的零件都要单独成物体、名字与零件表完全一致,两端缓冲器之间长 5.7 m,车轮和连杆每 3 秒转一圈并无缝循环。下面的画面从图纸一直跟到成品,包括 Agent 把两张图纸叠在模型等比例渲染图上做的核对。Agent 在读图纸、检查运动部件时发现,按图纸原样有四处零件会互相穿过:其中两处它直接改了,改动在两张图纸上都看不出来;另外两处照图保留,写进交付说明请对方核对。

需求原文

… I volunteer with a small heritage railway, and we're putting together an interactive display in the station shed about the little quarry engines that worked the line before the war. We'd like a 3D model of one of them, built from the attached drawings. The vector versions are loco_side.svg and loco_front.svg, with loco_side.png and loco_front.png in case those are easier to read, and parts.csv is the parts list. It's a 0-4-0 side tank, 5.7 m over the buffers. The idea is that visitors pick a part on screen and see what it's called. So every visible part needs to be its own separate piece, named exactly as in the parts list. Just the engine please, no track or scenery, because we have our own backdrop. We'd also like the wheels and coupling rods turning through one full revolution in 3 s, looping smoothly so it can run all day. Accuracy matters more than shine to us. A few of our members know these engines down to the last rivet and will spot anything wrong!

中文大意

……我在一条小型遗产铁路做志愿者。我们正在车站的机车库里布置一个互动展览,介绍战前在这条线上干活的小型采石场机车,想按附件里的图纸给其中一台做个 3D 模型。矢量图是 loco_side.svg 和 loco_front.svg,如果 PNG 更好认,还有 loco_side.png 和 loco_front.png;parts.csv 是零件表。这是一台 0-4-0 侧水柜机车,两端缓冲器之间长 5.7 m。 我们的设想是:观众在屏幕上点一个零件,就能看到它叫什么。所以每个看得见的零件都要单独成件,名字和零件表里的完全一致。只要机车本身,不要轨道和场景,背景我们自己有。我们还希望车轮和连杆转起来,3 秒转一整圈,循环衔接顺滑,可以全天播放。对我们来说,准确比好看重要。我们有几位会员对这种机车熟到每一颗铆钉,哪里不对一眼就能看出来!

附件 parts.csv 节选(33 行中的 4 行):

part qty material note
wheel 4 cast steel spoked, 1000 mm dia. on tread, 12 spokes
coupling_rod 2 forged steel 1950 mm centres
smokebox_door 1 steel plate dished, hinged on the right
cab_window 2 glass in brass frame round front spectacles

从需求到成品

  1. 附件

    loco_side.png:1:20 侧视图,主要零件都有标注。缓冲器之间 5700 mm,到司机室顶 3100 mm,车轮直径 1000 mm,轴距 1950 mm。

    loco_side.png:1:20 侧视图,主要零件都有标注。缓冲器之间 5700 mm,到司机室顶 3100 mm,车轮直径 1000 mm,轴距 1950 mm。

  2. 附件

    loco_front.png:正视图。宽 2000 mm,轨距 762 mm,烟箱直径 940 mm,两个缓冲器中心相距 1300 mm。

    loco_front.png:正视图。宽 2000 mm,轨距 762 mm,烟箱直径 940 mm,两个缓冲器中心相距 1300 mm。

  3. 第 1 条消息,工具调用 27/54

    第一次完整建出的模型,66 个零件已经齐全;四格分别是侧面、斜侧面、正面和俯视。

    第一次完整建出的模型,66 个零件已经齐全;四格分别是侧面、斜侧面、正面和俯视。

  4. 第 1 条消息,工具调用 32/54

    Agent 按图纸的 1:20 比例从正侧面渲染模型,再把侧视图叠上去:从缓冲器、车轮到烟囱和司机室,图纸线条都落在零件边缘上。

    Agent 按图纸的 1:20 比例从正侧面渲染模型,再把侧视图叠上去:从缓冲器、车轮到烟囱和司机室,图纸线条都落在零件边缘上。

  5. 第 1 条消息,工具调用 33/54

    正面做同样的核对:车顶弧线、圆形前窗、烟箱门、水柜、缓冲器和车轮都与图纸线条重合,图上的零件标注也还在。

    正面做同样的核对:车顶弧线、圆形前窗、烟箱门、水柜、缓冲器和车轮都与图纸线条重合,图上的零件标注也还在。

  6. 第 1 条消息,工具调用 34/54

    车轮转一圈中的 12 帧(24 fps 下 3 秒共 72 帧,这里取第 1 到 67 帧):连杆始终保持水平,主连杆和十字头跟着曲柄运动。

    车轮转一圈中的 12 帧(24 fps 下 3 秒共 72 帧,这里取第 1 到 67 帧):连杆始终保持水平,主连杆和十字头跟着曲柄运动。

  7. 第 1 条消息,工具调用 41/54

    后轮特写:12 根轮辐与零件表一致,平衡块在曲柄对面,主连杆套在曲柄销上。

    后轮特写:12 根轮辐与零件表一致,平衡块在曲柄对面,主连杆套在曲柄销上。

  8. 第 1 条消息,工具调用 42/54

    切换到材质预览看机车两侧。需求没有指定颜色,配色是 Agent 自己选的:绿色车身、黑色烟箱、红色缓冲梁、黄铜配件。

    切换到材质预览看机车两侧。需求没有指定颜色,配色是 Agent 自己选的:绿色车身、黑色烟箱、红色缓冲梁、黄铜配件。

  9. 成品场景

    成品机车:66 个独立零件,按要求只有机车本身,不带轨道和场景。

    成品机车:66 个独立零件,按要求只有机车本身,不带轨道和场景。

结果

用时(分钟)
47
API 请求
46
工具调用
54
独立零件(18 个会动)
66
三角面
47,536
验收项(12 项)
  • 两端缓冲器之间长 5.7 m:实测 5.70 m。
  • 总宽 2.0 m(按正视图):实测 2.00 m。
  • 到司机室顶高 3.1 m(按侧视图):达标。
  • 车轮直径 1.0 m:达标。
  • 烟箱直径 0.94 m:实测 0.94 m。
  • 4 个车轮,各自独立成物体、按零件表命名:共 4 个。
  • 2 根连杆,按零件表命名:共 2 根。
  • 2 个汽缸,按零件表命名:共 2 个。
  • 4 个缓冲器头,按零件表命名:共 4 个。
  • 2 个侧水柜,按零件表命名:共 2 个。
  • 2 个司机室前窗,按零件表命名:共 2 个。
  • 车架板按零件表命名:frame_plate 和 frame_plate.001。
轨迹节选:Agent 的交付说明
Two changes I made Both are invisible in your drawings. As drawn, these parts would pass through each other on every turn: - Leading crank pins: these now stop at the coupling rod's outer face, because that rod is all they carry. At full length they would hit the slide bars and the connecting rod. - Crossheads: the inner face is 40 mm further out than drawn, so the coupling rod passes behind it. The crosshead is hidden behind the cylinder in the front view anyway. Things your members should check - Cylinders: as drawn, they overlap the leading wheel tyres by about 50 mm. I left them alone because their position is clear in both drawings, and the overlap only shows from underneath. A related 5 mm overlap between the connecting rod and the lower slide bar can't be seen at all. - Coupling hooks: the SVG draws these pointing downwards, and I kept that. Real drawhooks usually point up. - Smokebox door: I've hinged it on the right as you face the front, which is the engine's left. That's the way the hinge straps run in your drawing.

中文大意

我做的两处改动 这两处在你们的图纸上都看不出来。按图纸原样,下面这些零件每转一圈都会互相穿过: - 前轮曲柄销:现在只伸到连杆的外侧面为止,因为它们只带这一根连杆。保持原长的话,会撞上滑杆和主连杆。 - 十字头:内侧面比图纸往外移了 40 mm,这样连杆就从它后面过去。在正视图里,十字头本来就被汽缸挡着。 请会员们核对的地方 - 汽缸:按图纸,汽缸和前轮轮箍重叠约 50 mm。我没有动它们,因为两张图纸都把汽缸位置标得很清楚,而且这处重叠只有从下面才看得到。与此相关,主连杆和下滑杆之间还有 5 mm 的重叠,从外面根本看不到。 - 车钩:SVG 里车钩画成钩尖朝下,我照图保留了。真实的牵引钩一般朝上。 - 烟箱门:我把铰链装在面朝车头时的右侧,也就是机车自身的左侧。你们图纸上的铰链板就是这样走的。

样例 4 / 10

三种饰面的边柜,后来加第四种

  • 产品模型
  • 家具
  • 材质与变体
  • 2 条消息
  • 难点
  • 尺寸精确:1800 × 420 × 800 mm
  • 每种饰面一个可切换的集合
  • 第 2 条消息:加第四种,前三种不能动
  • 不要灯光和背景

一家小家具品牌要把产品目录搬进在线配置器,需要按真实尺寸给一款中古风边柜建模:木质柜体装在带腿的金属框架上,4 扇门、3 个抽屉,门和抽屉都带拉手。橡木、胡桃木、黑色三种饰面各放一个集合,供配置器切换;每种饰面都必须正好是 1800 × 420 × 800 mm,灯光和背景由配置器提供,文件里不放。需求写黑色饰面时只提了框架,没说柜体怎么做;前三种确认之后,第 2 条消息又要加第四种,把框架做成钢蓝色。

需求原文

第 1 条消息

Type of project: Product model, furniture, paid About us: Small furniture brand. We're moving our catalogue into an online configurator this autumn. Description: We need our mid-century sideboard modelled for the configurator. It's a timber body on a metal frame with legs, with 4 doors and 3 drawers and handles on all of them. Overall size is 1800 mm wide, 420 mm deep and 800 mm high. It comes in three finishes: oak, walnut, and a matte black powder-coated frame. Each finish has to sit in its own collection called Oak, Walnut and Black so the configurator can switch between them. No lights or backdrop needed because the configurator supplies its own. We just need the product at real size. Deadline: End of next month …

中文大意

项目类型:产品模型,家具,付费 关于我们:小型家具品牌。今年秋天要把产品目录搬进在线配置器。 需求描述:我们的一款中古风边柜需要建模,用在配置器里。柜体是木质的,装在带腿的金属框架上,有 4 扇门和 3 个抽屉,门和抽屉都带拉手。整体尺寸宽 1800 mm、深 420 mm、高 800 mm。共有三种饰面:橡木、胡桃木,以及哑光黑粉末喷涂框架。每种饰面要放在各自的集合里,分别叫 Oak、Walnut 和 Black,方便配置器在它们之间切换。不需要灯光和背景,配置器自带。我们只要按真实尺寸做好的产品。 截止时间:下个月底 ……

第 2 条消息

Thanks, this looks good. Sales now want a fourth option: the frame in … steel blue. Can you add that and set it up the same way as the other three, in its own collection? "Steel Blue" works for us as the name.

中文大意

谢谢,看着不错。销售那边现在想加第四个选项:框架做成……钢蓝色。能不能照另外三种的做法加上,也单独放一个集合?名字用“Steel Blue”就可以。

从需求到成品

  1. 第 1 条消息,工具调用 34/198

    Agent 第一次在视口里查看建好的模型,四格依次是正面、斜侧、顶视和右侧:柜体、四扇门、三个抽屉、条形拉手、框架和外斜的柜腿。

    Agent 第一次在视口里查看建好的模型,四格依次是正面、斜侧、顶视和右侧:柜体、四扇门、三个抽屉、条形拉手、框架和外斜的柜腿。

  2. 第 1 条消息,工具调用 88/198

    Black 集合的试渲染:黑色染色木柜体,配哑光黑框架。需求里黑色只提到框架,Agent 在交付说明里请对方确认这种理解。

    Black 集合的试渲染:黑色染色木柜体,配哑光黑框架。需求里黑色只提到框架,Agent 在交付说明里请对方确认这种理解。

  3. 第 1 条消息,工具调用 101/198

    Agent 用代码画出的胡桃木纹理,这里是整张贴图。文件里打包的是 4096 × 2048 的版本,橡木和黑色染色木的贴图出自同一个脚本。

    Agent 用代码画出的胡桃木纹理,这里是整张贴图。文件里打包的是 4096 × 2048 的版本,橡木和黑色染色木的贴图出自同一个脚本。

  4. 第 1 条消息,工具调用 105/198

    与 Black 同一机位的 Oak 集合。每种饰面 Agent 都从这个视角渲染,方便对比。

    与 Black 同一机位的 Oak 集合。每种饰面 Agent 都从这个视角渲染,方便对比。

  5. 第 1 条消息,工具调用 107/198

    同一机位下的 Walnut 集合:和 Oak 一样是 20 个零件,柜体换成胡桃木。

    同一机位下的 Walnut 集合:和 Oak 一样是 20 个零件,柜体换成胡桃木。

  6. 第 2 条消息,工具调用 181/198

    第 2 条消息要的第四种饰面,仍是同一机位:橡木柜体下的框架和柜腿换成钢蓝色,拉手还是哑光黑。

    第 2 条消息要的第四种饰面,仍是同一机位:橡木柜体下的框架和柜腿换成钢蓝色,拉手还是哑光黑。

  7. 第 2 条消息,工具调用 182/198

    钢蓝色柜腿与框架相接处的特写。

    钢蓝色柜腿与框架相接处的特写。

  8. 第 2 条消息,工具调用 183/198

    同一特写下的 Oak 集合,渲出来作对比:黑色框架和柜腿仍是确认过的样子。

    同一特写下的 Oak 集合,渲出来作对比:黑色框架和柜腿仍是确认过的样子。

  9. 成品场景,门和抽屉打开

    交付文件的渲染图:用 Agent 存在每扇门、每个抽屉上的铰链和滑动方向数据,打开一扇门、拉出中间的抽屉。柜里有一块层板,下面是钢蓝色框架。

    交付文件的渲染图:用 Agent 存在每扇门、每个抽屉上的铰链和滑动方向数据,打开一扇门、拉出中间的抽屉。柜里有一块层板,下面是钢蓝色框架。

结果

用时(分钟)
169
API 请求
114
工具调用
198
饰面 × 零件(共 80 个物体)
4 × 20
每种饰面的三角面
6,072
验收项(8 项)
  • 整体宽度 1800 mm:实测 1800 mm。
  • 整体深度 420 mm:实测 420 mm。
  • 整体高度 800 mm:实测 800 mm。
  • 名为 Oak 的集合(橡木饰面):找到。
  • 名为 Walnut 的集合(胡桃木饰面):找到。
  • 名为 Black 的集合(哑光黑饰面):找到。
  • 名为 Steel Blue 的集合(第 2 条消息要的第四种饰面):找到。
  • 文件里至少有 4 种饰面材质,隐藏的饰面也算在内:实有 5 种。
轨迹节选:Agent 的交付说明

对第 1 条消息的回复

Two readings of the brief to confirm: 1. Black finish. The brief names only the frame for black, so I made Black a third complete sideboard with a black-stained body and put the black frame under all three. If you meant oak and walnut bodies sharing one black frame, with Black holding just the frame, say so; it is a small change. 2. Depth. The carcass is 420 mm deep. The fronts sit 24 mm back and the handles project 22 mm, so nothing passes 420.

中文大意

有两处对需求的理解请您确认: 1. 黑色饰面。需求里黑色只提到了框架,所以我把 Black 做成第三套完整的边柜,柜体用黑色染色木,三套下面都是黑色框架。如果您的意思是橡木和胡桃木柜体共用一个黑色框架、Black 里只放框架,请告诉我,这只是个小改动。 2. 深度。柜体深 420 mm。门板和抽屉面板往里缩了 24 mm,拉手凸出 22 mm,所以没有任何部分超出 420。

对第 2 条消息的回复

Oak, Walnut and Black are unchanged. I added to the approved file instead of rebuilding it, and a comparison against that file shows the three collections identical. … 1. Body. Your request names only the frame, so I put it on the oak body. If Sales want it on walnut instead, that is a material swap; if they want it on walnut as well, that would be a further collection. 2. Handles. I left them black for the same reason. Say if they should match the frame. …

中文大意

Oak、Walnut 和 Black 都没有改动。我是在已确认的文件上添加,没有重新搭建;和那个文件比对,三个集合完全一致。 …… 1. 柜体。您的需求只提到了框架,所以我把它配在橡木柜体上。如果销售想配胡桃木柜体,换个材质就行;如果两种都要,就再加一个集合。 2. 拉手。出于同样的原因,拉手我保留了黑色。如果要和框架同色,请告诉我。 ……

样例 5 / 10

视觉数据集用的邮局营业厅

  • 室内
  • 场景搭建
  • 视觉训练用场景
  • 1 条消息
  • 难点
  • 不能有人形,屏幕不能有内容
  • 一件一个物体,只用 12 个类别
  • 真实尺寸:营业厅 11 × 6 m
  • 立柱可挪,伸缩带跟着走

一个四人的计算机视觉团队要一间逼真的小邮局,用来渲染图像、训练他们的排队长度估计模型:营业厅 11 × 6 m,室内净高 2.8 m,旁边带一个 3.5 × 2.5 m 的快递柜凹室。每件东西都要单独成物体,按“类别_两位序号”命名(如 locker_bank_01),类别只能用给定的 12 个;任何地方都不能出现人形,任何屏幕上都不能有内容,否则会污染标注。下面的画面从 Agent 早期的一张截图开始,经过它对各个区域的试渲染(其间它发现入口玻璃渲染成黑色,查出原因并修好),一直到交回的营业厅,场景里共有 68 个带标签的物体。

需求原文

We're a four-person CV team generating synthetic frames to train a queue-length estimator, and the next target domain is small post offices. We need one realistic interior: counter hall plus a self-service locker alcove. Target is end of the month. 1. Hall: 11 m x 6 m floor, 2.8 m ceiling. Main entrance on one of the 11 m walls, counter along the opposite one. 2. Alcove: 3.5 m x 2.5 m, open to the hall through a wide opening, same ceiling height. 3. Parcel lockers: 3 banks in the alcove with mixed compartment sizes. One bank has a small terminal. 4. Service counter with glazing above it, long enough for staff at several positions. 5. Queue: belt stanchions forming a lane with two switchbacks that ends at the counter. We will move these between variants, so each post stays a separate object. 6. Seating: 8 waiting seats. A mix of single chairs and linked rows is fine as long as each seat is its own object. 7. Writing desks (2-3) with a leaflet stand nearby, plus bins, plants, ceiling lights, wall displays, signs and doors. 8. Units: real metres everywhere, nothing scaled up or down. 9. Naming: one object per item, <class>_<nn> with a two-digit index. Classes are limited to locker_bank, counter, stanchion, waiting_seat, writing_desk, door, ceiling_light, wall_display, plant, leaflet_stand, bin, sign. One collection per class. Hard stop: no human figures, mannequins or silhouettes anywhere, and no screen showing anything. Locker terminal and wall displays are flat dark panels. Anything person-shaped or any text on a screen poisons our labels. Not in scope: animation, exterior, street facade.

中文大意

我们是一个四人的计算机视觉团队,正在生成合成图像来训练排队长度估计模型,下一个目标场景是小型邮局。我们需要一个逼真的室内场景:营业厅,外加一个自助快递柜凹室。希望月底前完成。 1. 营业厅:地面 11 m × 6 m,室内净高 2.8 m。正门开在其中一面 11 m 长的墙上,柜台沿对面那面墙布置。 2. 凹室:3.5 m × 2.5 m,通过一个宽洞口与营业厅相通,净高相同。 3. 快递柜:凹室里放 3 组,格口大小不一,其中一组带一个小终端。 4. 服务柜台:上方装玻璃,长度要够工作人员在几个工位同时办理。 5. 排队区:用伸缩带立柱围出一条折返两次、通到柜台的通道。我们会在不同版本之间挪动这些立柱,所以每根立柱都要保持为独立物体。 6. 座椅:8 个等候座位。单椅和连排椅混搭都可以,只要每个座位单独成物体。 7. 填单台 2–3 张,旁边放一个宣传单架;另外还要有垃圾桶、绿植、吊顶灯、墙面显示屏、标识和门。 8. 单位:处处用真实的米制尺寸,不放大也不缩小。 9. 命名:一件东西一个物体,名字为 <class>_<nn>,nn 是两位序号。类别只限 locker_bank、counter、stanchion、waiting_seat、writing_desk、door、ceiling_light、wall_display、plant、leaflet_stand、bin、sign,每个类别一个集合。 红线:任何地方都不能有人形、假人或人影,任何屏幕都不能显示内容。快递柜终端和墙面显示屏都做成深色平板。只要出现像人的东西,或者屏幕上有文字,我们的标注就会被污染。 不在范围内:动画、室外、临街立面。

从需求到成品

  1. 第 1 条消息,工具调用 20/87

    房间外壳搭好,柜台、三组快递柜和 12 根排队立柱已经放进去;左图是俯视,右图从入口墙外看,天花板暂时隐藏。柜台沿入口对面的长墙布置,凹室接在营业厅右端。

    房间外壳搭好,柜台、三组快递柜和 12 根排队立柱已经放进去;左图是俯视,右图从入口墙外看,天花板暂时隐藏。柜台沿入口对面的长墙布置,凹室接在营业厅右端。

  2. 第 1 条消息,工具调用 49/87

    凹室的试渲染:三组快递柜,格口大小不一;中间一组带终端,终端屏幕是一块空白的黑色面板。左侧墙上的显示屏同样空白。

    凹室的试渲染:三组快递柜,格口大小不一;中间一组带终端,终端屏幕是一块空白的黑色面板。左侧墙上的显示屏同样空白。

  3. 第 1 条消息,工具调用 50/87

    入口的第一次试渲染:自动推拉门的玻璃本该透出室外的日光,左扇却整片渲染成了黑色,右扇也黑了一块。Agent 随后把门隐藏、再显示,分别重新渲染门口,查找原因。

    入口的第一次试渲染:自动推拉门的玻璃本该透出室外的日光,左扇却整片渲染成了黑色,右扇也黑了一块。Agent 随后把门隐藏、再显示,分别重新渲染门口,查找原因。

  4. 第 1 条消息,工具调用 59/87

    修好后的同一视角:原来玻璃材质在每块玻璃的内表面也做反射,光线被困在玻璃里,Agent 改成只在玻璃正面反射。门边那块竖屏仍是空白,标识只用箭头和图标。

    修好后的同一视角:原来玻璃材质在每块玻璃的内表面也做反射,光线被困在玻璃里,Agent 改成只在玻璃正面反射。门边那块竖屏仍是空白,标识只用箭头和图标。

  5. 第 1 条消息,工具调用 66/87

    从营业厅这一侧看柜台:玻璃通透,装有对讲孔,台面上有递物槽和刷卡机;员工区墙上的显示屏是一块空白的黑色面板。

    从营业厅这一侧看柜台:玻璃通透,装有对讲孔,台面上有递物槽和刷卡机;员工区墙上的显示屏是一块空白的黑色面板。

  6. 第 1 条消息,工具调用 68/87

    等候区:两排三连座和一把单椅,每个座位都是独立物体;旁边有填单台和绿植,墙上又是一块空白的显示屏。

    等候区:两排三连座和一把单椅,每个座位都是独立物体;旁边有填单台和绿植,墙上又是一块空白的显示屏。

  7. 第 1 条消息,工具调用 75/87

    从柜台望向入口:排队区的立柱、伸缩带和箭头指示牌。每根立柱都是独立物体,挪动立柱时,连在上面的伸缩带会跟着走。

    从柜台望向入口:排队区的立柱、伸缩带和箭头指示牌。每根立柱都是独立物体,挪动立柱时,连在上面的伸缩带会跟着走。

  8. 成品场景,俯视

    成品布局的俯视图,隐藏了天花板和灯具:柜台和员工区在上方,入口在下方,填单台在左上角,等候座椅沿左墙和下墙摆放,快递柜凹室在右侧。

    成品布局的俯视图,隐藏了天花板和灯具:柜台和员工区在上方,入口在下方,填单台在左上角,等候座椅沿左墙和下墙摆放,快递柜凹室在右侧。

  9. 成品场景

    透过文件里保存的相机看成品营业厅:柜台设 4 个编号窗口,中间是排队立柱,尽头是快递柜凹室,窗下是等候座椅。

    透过文件里保存的相机看成品营业厅:柜台设 4 个编号窗口,中间是排队立柱,尽头是快递柜凹室,窗下是等候座椅。

结果

用时(分钟)
55
API 请求
60
工具调用
87
物体,其中 68 个带标签
93
三角面
64,718
验收项(12 项)
  • 营业厅长边不少于 11 m:达标,凹室让整体更长。
  • 营业厅短边不少于 6 m:连墙总宽 6.56 m。
  • 室内净高达到 2.8 m:连地面和顶板总高 3.0 m。
  • 快递柜 3 组:3 组。
  • 等候座位 8 个,每个单独成物体:8 个。
  • 填单台 2–⁠3 张:3 张。
  • 伸缩带立柱各自是独立物体:12 根。
  • 有服务柜台:counter_01。
  • 有宣传单架:leaflet_stand_01。
  • 有垃圾桶:3 个(bin_01 至 bin_03)。
  • 有绿植:3 盆(plant_01 至 plant_03)。
  • 有吊顶灯:17 盏(ceiling_light_01 至 ceiling_light_17)。
轨迹节选:Agent 的交付说明
- Belts belong to the posts. Each belt is drawn by a modifier on the post it starts from, so belt pixels are labelled as that stanchion. When you move a post, the belts attached to it follow; I tested this. … - Screens: the wall displays, locker terminal, staff monitors and card terminals are all matte, non-glowing dark panels. The monitors and card terminals are part of counter_01. - What glows: only the light panels, the frosted windows, and the exit sign sign_06. The exit sign shows a door outline and an arrow, not a running man. - Sign text: the counter signs show the numbers 1–4. Other signs use only arrows and simple icons, with no people. Each labelled object has class and instance properties and its own object index, and the object-index render pass is turned on. …

中文大意

- 伸缩带算在立柱名下。每条伸缩带由它起点那根立柱上的修改器生成,所以伸缩带的像素会标成那根 stanchion。挪动一根立柱时,连在它上面的伸缩带会跟着走;这一点我测试过。…… - 屏幕:墙面显示屏、快递柜终端、员工显示器和刷卡机都是哑光、不发光的黑色面板。显示器和刷卡机属于 counter_01。 - 会发光的:只有灯板、磨砂窗和出口标识 sign_06。出口标识画的是门框轮廓加箭头,不是奔跑的小人。 - 标识文字:柜台标识只显示数字 1–4。其他标识只用箭头和简单图标,没有人。 每个带标签的物体都有 class 和 instance 两个属性和各自的物体索引,物体索引渲染通道也已打开。……

样例 6 / 10

咖啡馆道具文件减面,供网页查看器使用

  • 减面优化
  • 文件整理
  • 网页 3D
  • 1 条消息
  • 附件:.blend 文件,6.5 MB
  • 难点
  • 接手别人的乱文件
  • 3 万三角面以内,最多 12 种材质
  • 摆放不能动,相机画面不变
  • 不能悬空,不能重复叠放

有人从一个撂挑子的外包手里接过一份咖啡馆道具文件,放进自家的网页查看器实在太重。要压到 3 万个三角面以内、材质不超过 12 种,名字改成规范的小写,悬空的和重复叠放的都要处理掉;同时每件道具仍须是独立物体,摆放不能动,从现有相机看过去画面不能变。Agent 在文件里查出:几件由平面围成的简单形体被一遍遍细分,五个物体在原位叠着一模一样的副本,八件道具悬在地面或台面上方,21 种材质大多只是几乎一样的副本。

需求原文

inherited cafe_props.blend from a freelancer who bailed. way too heavy for our web viewer, need it under 30k tris total and max 12 materials. sensible lowercase names, nothing floating or doubled up. keep each prop its own object and don't rearrange anything, should look the same from the existing camera.

中文大意

从一个撂挑子的外包那儿接手了 cafe_props.blend。放到我们的网页查看器里太重了,总共要压到 3 万个三角面以内,材质最多 12 种。名字要规范、全小写,不能有悬空的,也不能有重复叠在一起的。每件道具保持独立物体,摆放都别动,从现有相机看过去要和原来一样。

从需求到成品

  1. 附件

    从文件里原有的相机看过去:三张桌子和十把椅子、一个柜台、两盆绿植、一盏落地灯和一块菜单板。文件有 150,174 个三角面、21 种材质,大小 6.5 MB。

    从文件里原有的相机看过去:三张桌子和十把椅子、一个柜台、两盆绿植、一盏落地灯和一块菜单板。文件有 150,174 个三角面、21 种材质,大小 6.5 MB。

  2. 第 1 条消息,工具调用 12/52

    从正面和斜侧方凑近看柜台。柜台和意式咖啡机只是由平面围成的简单形体,却分别有 10,752 和 21,120 个三角面,小小的磨豆机更有 43,008 个:全文件一半的三角面就在这三件东西上。

    从正面和斜侧方凑近看柜台。柜台和意式咖啡机只是由平面围成的简单形体,却分别有 10,752 和 21,120 个三角面,小小的磨豆机更有 43,008 个:全文件一半的三角面就在这三件东西上。

  3. 第 1 条消息,工具调用 20/52

    左边那张桌子上,靠左的调味瓶悬在桌面上方 7 cm,影子落在离瓶底有一段距离的桌面上。

    左边那张桌子上,靠左的调味瓶悬在桌面上方 7 cm,影子落在离瓶底有一段距离的桌面上。

  4. 第 1 条消息,工具调用 26/52

    拿磨豆机做试验:细分从 4 级降到 1 级,只剩 672 个三角面,旋钮和机身明显出现棱角。

    拿磨豆机做试验:细分从 4 级降到 1 级,只剩 672 个三角面,旋钮和机身明显出现棱角。

  5. 第 1 条消息,工具调用 28/52

    细分 2 级、2,688 个三角面时,磨豆机又变得圆滑。Agent 最终留下的就是这一级,和原来的形状相差不到 1 mm。

    细分 2 级、2,688 个三角面时,磨豆机又变得圆滑。Agent 最终留下的就是这一级,和原来的形状相差不到 1 mm。

  6. 第 1 条消息,工具调用 45/52

    Agent 自己做的差异图:对比从原有相机渲染的修改前、修改后两张图。红色标出有变化的像素,只出现在被放回地面或台面的道具和它们的影子上。

    Agent 自己做的差异图:对比从原有相机渲染的修改前、修改后两张图。红色标出有变化的像素,只出现在被放回地面或台面的道具和它们的影子上。

  7. 第 1 条消息,工具调用 50/52

    修改之后从同一角度看左边那张桌子:调味瓶立在桌面上,影子和瓶底连在一起。

    修改之后从同一角度看左边那张桌子:调味瓶立在桌面上,影子和瓶底连在一起。

  8. 成品场景

    交回的文件,从同一台相机看过去:8,006 个三角面、12 种材质,大小 1.35 MB。

    交回的文件,从同一台相机看过去:8,006 个三角面、12 种材质,大小 1.35 MB。

结果

用时(分钟)
17
API 请求
41
工具调用
52
三角面
150,174 → 8,006
材质
21 → 12
验收项(4 项)
  • 整个场景不超过 3 万个三角面:8,006 个。
  • 材质不超过 12 种:12 种。
  • 每件道具仍是独立物体,没有合并:35 个独立的网格物体。
  • 原有相机仍在文件里:是。
轨迹节选:Agent 的交付说明
Why it was so heavy: two chairs, the espresso machine, the counter and one plate were simple flat shapes that had been subdivided over and over, adding up to 256 times the faces without changing the shape. I collapsed them back to their clean form, so the geometry is identical. The grinder had a subdivision modifier at level 4 (43k tris). I baked it in at level 2 (2.7k tris), which is within 1 mm of the original. It needed baking anyway: the glTF exporter doesn't apply modifiers by default, so the viewer would have received the blocky unsmoothed shape. Doubled up: five objects had an exact copy stacked in the same spot (floor lamp, menu board, a chair, a cup, a saucer). I deleted the extra copy of each. … Things I fixed that you didn't ask for: - One saucer and one cup were inside-out. They would show up dark or invisible in a web viewer. … How I checked: I rendered from the camera before and after. With the floating fixes temporarily undone, the two renders match almost exactly: no pixel differs by more than 15/255, and only 9 differ noticeably at all. The camera itself is untouched. I also loaded the saved file in a separate Blender to recheck every requirement, and a test GLB export came out at 8,006 tris and 12 materials (395 KB).

中文大意

为什么这么重:两把椅子、意式咖啡机、柜台和一个盘子都是由平面围成的简单形体,却被一遍又一遍地细分,面数加起来翻到原来的 256 倍,形状却丝毫没变。我把它们还原成干净的原始形状,几何完全一样。磨豆机上挂着一个 4 级细分修改器(4.3 万个三角面)。我按 2 级把它烘焙进网格(2,700 个三角面),和原来相差不到 1 mm。反正它也得烘焙:glTF 导出器默认不应用修改器,查看器收到的会是没经过平滑、棱角分明的粗糙形状。 重复叠放:有五个物体在同一位置叠着一个一模一样的副本(落地灯、菜单板、一把椅子、一个杯子、一个碟子)。每组多出来的那一个我都删掉了。 …… 你没要求、我顺手修好的: - 有一个碟子和一个杯子里外翻了。放到网页查看器里,它们会发黑,甚至看不见。 …… 我是怎么核对的:我从相机分别渲染了修改前后的画面。把悬空修正临时撤销后,两张渲染图几乎完全一致:没有一个像素的差值超过 15/255,有明显差别的像素只有 9 个。相机本身没动过。我还在另一个 Blender 里打开保存好的文件,把每项要求重新核对了一遍;试导出的 GLB 是 8,006 个三角面、12 种材质(395 KB)。

样例 7 / 10

把店铺 SVG logo 做成循环旋转的 3D 徽章

  • 动态图形
  • logo
  • 动画
  • 1 条消息
  • 附件:SVG logo
  • 难点
  • 用 SVG 原有的形状建模
  • 反复播放的无缝循环
  • 品牌色与色值一致

一家开了 25 年的家庭面包店要过周年:需求附上店里的麦穗 logo(SVG 文件),要做成一枚又大又厚实的 3D 徽章,在正方形画面里慢慢旋转,颜色用给定的两个品牌色值,30 fps、6 秒。视频会一直重复播放,店里的电视上也要放,所以循环必须天衣无缝。Agent 直接用 SVG 里的形状建模,反复调整灯光,直到正面渲染出的颜色与两个色值基本一致,再用低分辨率把 180 帧全部渲一遍,检查首尾接缝。

需求原文

… I'm writing on behalf of my mum, who has run … for 25 years. For the anniversary we're redoing her socials and want the wheat logo (logo.svg) as a big chunky 3D badge, slowly spinning. The loop has to be perfect because it'll play on repeat, on the shop telly too. Square frame. Colours #6B4226 and #E9B949. 6 s at 30 fps please. I'll do the rendering and posting on my end. Hoping for it by the 20th. …

中文大意

……我替我妈妈写这封信,她的面包店已经开了 25 年。趁着周年,我们要把她的社交媒体账号重新做一遍,想把麦穗 logo(logo.svg)做成一枚又大又厚实的 3D 徽章,慢慢旋转。循环必须完美,因为会一直重复播放,店里的电视上也要放。画面要正方形。颜色是 #6B4226 和 #E9B949。麻烦做成 6 秒、30 fps。渲染和发布我自己来。希望 20 号前能拿到。……

从需求到成品

  1. 附件

    平面 logo:棕色圆环里一枝金色麦穗

    随需求发来的 logo 文件(logo.svg),这里铺在白底上显示:棕色圆环里是一枝金色麦穗,由一根麦秆和 11 粒麦粒组成。圆环中间是空的。

  2. 第 1 条消息,工具调用 10/82

    灰色的立体麦穗,正面和斜侧面两个角度

    直接从 SVG 的路径读出麦秆和 11 粒麦粒,挤出厚度、倒成圆边,从正面和斜侧面各看一次。Agent 在这里放大检查,确认麦粒尖端没有出现瑕疵。

  3. 第 1 条消息,工具调用 13/82

    盘面带麦穗的灰色徽章,四个方向

    麦穗装到徽章底盘上:盘面下凹,凸起的外圈按 logo 圆环的尺寸来做。Agent 用灰模从四个方向检查后,又把徽章加厚到直径的五分之一。

  4. 第 1 条消息,工具调用 17/82

    金色背景上的棕色徽章和金色麦穗

    第一次通过正方形相机看效果,用的是两种品牌色,背景是纯金色。棕色偏浅、金属金色偏暗,于是 Agent 在试渲染图上取像素和色值比对,反复调整灯光,直到正对镜头时的棕色和金色与色值相差无几。

  5. 第 1 条消息,工具调用 27/82

    徽章从 0° 转到 180° 的八张试渲染

    一组转台试渲染:0°、20°、40°、60°、80°、100°、140° 和 180°。转到 20° 和 40° 时金色发闷,到 60° 时盘面泛起一层灰白的光,于是 Agent 在场景四周加了一圈明亮的光带供金色反射,抬高两侧的轮廓光,并把相机拉近。

  6. 第 1 条消息,工具调用 77/82

    两排各五小格:上排徽章侧对镜头,下排正对镜头

    Agent 用低分辨率渲完全部 180 帧后拼出的接缝检查图。上排是第 43 到 47 帧,徽章正好转到侧面;下排是第 179、180、1、2、3 帧,跨过循环重新开始的那一点。

  7. 成品场景,第 37 帧

    几乎侧对镜头的成品徽章

    转到 72°,也就是五分之一圈。几乎侧对镜头,能看到厚实的抛光侧边和凸起的麦穗。

  8. 成品场景,第 73 帧

    背面朝向镜头的成品徽章

    转到 144°,徽章背面朝向镜头。两面都有麦穗,所以从哪一面看都认得出 logo。

  9. 成品场景,第 180 帧

    金色背景上正对镜头的成品徽章

    循环的最后一帧,离整圈还差 2°,所以从这里回到第 1 帧,和其他每一步一样都是 2°。

结果

用时(分钟)
101
API 请求
71
工具调用
82
帧(30 fps,1080 × 1080)
180
三角面
104,864
验收项(4 项)
  • 动画时长 6 秒、30 fps:共 180 帧(第 1 到第 180 帧),帧率 30 fps。
  • 画面是正方形:渲染尺寸 1080 × 1080。
  • 徽章在时间轴上确实在转:有 1 个运动物体,就是徽章。
  • 循环无缝:紧接最后一帧的下一帧,徽章姿态与第 1 帧一致(最大差值 0.0000)。
轨迹节选:Agent 的交付说明
To check the loop, I rendered all 180 frames at low resolution: the jump from the last frame back to the first can't be told apart from any other frame step, and there's no flicker anywhere in the sequence. … - Your logo's ring is open in the middle, so to stick to just your two colours I made the face inside the ring brown. The background is plain #E9B949. … - Brown face (front-on): about (107, 66, 40) against #6B4226's (107, 66, 38). - Gold wheat: about (235, 184, 70) against #E9B949's (233, 185, 73). … - Frame 180 is 2° short of a full turn, so going back to frame 1 is the same 2° step as every other frame.

中文大意

为了检查循环,我用低分辨率把 180 帧全部渲染了一遍:从最后一帧跳回第一帧,和其他任何相邻两帧之间的变化分不出差别,整段序列里也没有任何闪烁。 …… - 你的 logo 圆环中间是空的,为了只用你给的两种颜色,我把圆环里面的盘面做成了棕色。背景是纯色 #E9B949。 …… - 棕色盘面(正对镜头时):约 (107, 66, 40),对照 #6B4226 的 (107, 66, 38)。 - 金色麦穗:约 (235, 184, 70),对照 #E9B949 的 (233, 185, 73)。 …… - 第 180 帧离整圈还差 2°,所以从它回到第 1 帧,和其他每一步一样,都是转 2°。

样例 8 / 10

两只带骨骼和待机动画的农场动物

  • 角色
  • 骨骼绑定
  • 动画
  • 低面数
  • 1 条消息
  • 难点
  • 每只最多 2,000 个三角面
  • 只用色板里的 6 色
  • 膝盖弯曲,腿不拉伸
  • 2 秒待机无缝循环

一个四人团队在做一款温馨的山村建造游戏,画风是绘本式的低面数平涂,现在要加一只山羊和一只鹅:颜色只能用 6 色色板里的纯色,每只不超过 2,000 个三角面,单位用米,原点放在地面上两脚之间。难点在动作:每只都要一套骨骼,腿要在膝盖处弯曲,不能被拉长;还要一段 24 fps、2 秒的待机循环,有呼吸、小幅转头,山羊甩尾巴,鹅抖翅膀,最后一帧要回到第一帧的姿势。下面的画面依次是两只动物成形、山羊腿部骨骼的下蹲测试、Agent 逐帧检查两段待机动画,以及成品。交回的山羊有 30 根骨骼、1,228 个三角面,鹅有 21 根骨骼、1,006 个三角面。

需求原文

… We are 4 people making …, a cosy mountain-village builder for PC, storybook style, low-poly and flat shaded. We add farm animals before our trailer and need two of them. Goat - mesh name 'Goat', max 2000 tris including horns. About 0.9 m tall at shoulder. Goose - mesh name 'Goose', max 2000 tris including beak. Colours: flat colours only, from our palette #F7F3E3, #D6CFB4, #A3A380, #6B705C, #CB997E, #3F4238. No textures. Scale in metres, pivot on ground between the feet, both facing same direction. Rig: simple one for each, legs, neck and head must move. Legs should bend on the knee, not stretch. Idle: one loop per animal, 2 s at 24 fps, first and last frame same pose. Breathing, small head turn, and tail twitch for goat, wing twitch for goose. No lighting, no camera needed. …

中文大意

……我们 4 个人在做一款 PC 上的温馨山村建造游戏,绘本风格,低面数、平涂着色。出预告片之前要加入农场动物,这次需要其中两只。 山羊:网格命名为 'Goat',连角在内最多 2000 个三角面。肩高约 0.9 m。 鹅:网格命名为 'Goose',连喙在内最多 2000 个三角面。 颜色:只用纯色,取自我们的色板 #F7F3E3、#D6CFB4、#A3A380、#6B705C、#CB997E、#3F4238。不要贴图。 单位用米,原点放在地面上、两脚之间,两只朝同一个方向。 骨骼:每只一套简单的,腿、脖子和头都要能动。腿要在膝盖处弯曲,不能拉长。 待机动画:每只一个循环,24 fps 下 2 秒,第一帧和最后一帧姿势相同。要有呼吸、小幅转头,山羊再甩甩尾巴,鹅再抖抖翅膀。 不需要灯光,也不需要相机。……

从需求到成品

  1. 第 1 条消息,工具调用 13/85

    从四个方向看山羊:米白色的身子,陶土色的头和脖子,脸上一道米白色条纹,灰绿色的角,炭黑色的蹄子。所有颜色都出自需求里的 6 色色板。

    从四个方向看山羊:米白色的身子,陶土色的头和脖子,脸上一道米白色条纹,灰绿色的角,炭黑色的蹄子。所有颜色都出自需求里的 6 色色板。

  2. 第 1 条消息,工具调用 19/85

    测试山羊的腿部骨骼,骨骼叠在网格上显示:身体压低 6 cm 后,前腿膝盖向前弯,后腿跗关节向后弯,蹄子留在原地。前后悬空的几根小骨骼是控制膝盖朝向的目标点。

    测试山羊的腿部骨骼,骨骼叠在网格上显示:身体压低 6 cm 后,前腿膝盖向前弯,后腿跗关节向后弯,蹄子留在原地。前后悬空的几根小骨骼是控制膝盖朝向的目标点。

  3. 第 1 条消息,工具调用 34/85

    从四个方向看鹅:米白色的身子,沙色的翅膀,陶土色的喙和脚,炭黑色的眼睛。

    从四个方向看鹅:米白色的身子,沙色的翅膀,陶土色的喙和脚,炭黑色的眼睛。

  4. 第 1 条消息,工具调用 46/85

    从正面看鹅待机循环中的六帧(第 0、18、29、31、34、37 帧):头转向一侧又转回来,第 31 帧两只翅膀从身体两侧抬起。

    从正面看鹅待机循环中的六帧(第 0、18、29、31、34、37 帧):头转向一侧又转回来,第 31 帧两只翅膀从身体两侧抬起。

  5. 第 1 条消息,工具调用 48/85

    从后方看山羊待机循环中的六帧(第 0、13、20、27、29、31 帧):头转向一侧,第 27 到 31 帧尾巴左右甩动。

    从后方看山羊待机循环中的六帧(第 0、13、20、27、29、31 帧):头转向一侧,第 27 到 31 帧尾巴左右甩动。

  6. 第 1 条消息,工具调用 78/85

    最后一次保存前,Agent 从四个方向查看两只动物,二者朝向一致。

    最后一次保存前,Agent 从四个方向查看两只动物,二者朝向一致。

  7. 成品场景

    交付的文件:山羊和鹅并排站着,平涂着色,没有贴图。

    交付的文件:山羊和鹅并排站着,平涂着色,没有贴图。

结果

用时(分钟)
41
API 请求
64
工具调用
85
三角面(山羊 + 鹅)
1,228 + 1,006
骨骼(山羊 + 鹅)
30 + 21
验收项(12 项)
  • 名为 Goat 的网格:找到。
  • 名为 Goose 的网格:找到。
  • 山羊连角在内不超过 2,000 个三角面:1,228 个。
  • 鹅连喙在内不超过 2,000 个三角面:1,006 个。
  • 山羊整体高度不低于 0.9 m 的肩高:连角总高 1.26 m。
  • 场景单位为米:公制,缩放 1.0。
  • 山羊的原点在地面高度:是。
  • 鹅的原点在地面高度:是。
  • 每只动物一套骨骼:共 2 套。
  • 动物带待机动画:4 个物体有动画(两个网格和两套骨骼)。
  • 待机动画让网格本身动起来,而不只是骨骼:两个网格都在动。
  • 待机循环 2 秒、24 fps:第 0 到 48 帧,24 fps。
轨迹节选:Agent 的交付说明
- Legs: they use IK with knee targets and stretching turned off. When the body lowers, the goat's front knees bend forward, its hind hocks bend back and the goose's ankles fold back. The feet stay planted and the leg bones don't change length. - Idle loops: frames 0–48 at 24 fps, which is exactly 2.0 s. Frame 48 is the same pose as frame 0, with zero difference in the mesh. - Both: breathing (the belly swells and the body settles a few mm, which flexes the knees) and a small head turn with a tilt. - Goat: a tail twitch. - Goose: a quick wing twitch. … Extras I added: small ear flicks on the goat and a little tail wag on the goose. They're separate keys, easy to delete if you don't want them.

中文大意

- 腿:用 IK 控制,带膝盖朝向目标,关闭了拉伸。身体下沉时,山羊的前膝向前弯,后腿跗关节向后弯,鹅的踝关节向后折。脚始终踩在原地,腿骨长度不变。 - 待机循环:第 0–48 帧,24 fps,正好 2.0 秒。第 48 帧和第 0 帧姿势相同,网格上没有任何差别。 - 两只都有:呼吸(肚子鼓起,身体下沉几毫米,膝盖随之微屈),以及小幅转头并略微歪头。 - 山羊:甩一下尾巴。 - 鹅:快速抖一下翅膀。 …… 我额外加了:山羊耳朵的轻微抖动,鹅尾巴的小幅摆动。它们是单独的关键帧,不想要的话很容易删掉。

样例 9 / 10

建造游戏用的码头道具包

  • 游戏道具
  • 低面数
  • 实时渲染资产
  • 8 件道具
  • 1 条消息
  • 难点
  • 每件最多 800 个三角面
  • 一套 UV,原点在底部
  • 6 m 岸壁首尾相接
  • 物体名与清单一致

一款温馨风格渔村建造游戏的开发者要一套码头道具,场景是小型现代渔港,共八件:一段要能首尾相接的 6 m 岸壁,外加系缆桩、鱼箱堆、渔网卷筒、爬梯、路灯、加油机和港务小屋。道具要直接放进游戏引擎,所以每件最多 800 个三角面、只用一套 UV、原点放在底部,名字也要和清单一字不差。画面依次是 Agent 从几个方向逐件检查、返工自己觉得不够好的细节、把三段岸壁接起来试拼,最后排出成品。

需求原文

Quay props for my cosy fishing-village builder. Small modern harbour, stylised low-poly, going into a game engine. SM_Quay_6m (6 m edge section, should tile end to end) SM_Bollard SM_CrateStack SM_NetDrum SM_Ladder SM_LampPost SM_FuelPump SM_HarbourOffice Max 800 tris each, one UV map each, pivot at the base, laid out in a row. No lights or camera needed.

中文大意

我那款温馨风格的渔村建造游戏要用的码头道具。小型现代渔港,风格化低面数,要放进游戏引擎。 SM_Quay_6m(6 m 长的岸壁段,要能首尾相接地拼下去) SM_Bollard(系缆桩) SM_CrateStack(鱼箱堆) SM_NetDrum(渔网卷筒) SM_Ladder(爬梯) SM_LampPost(路灯) SM_FuelPump(加油机) SM_HarbourOffice(港务小屋) 每件最多 800 个三角面,各一套 UV,原点在底部,排成一排。不需要灯光和相机。

从需求到成品

  1. 第 1 条消息,工具调用 8/55

    灰色岸壁段的四个视角:浅色压顶石、两根木护舷、底部一条绿色带

    6 m 岸壁段(250 个三角面)的四个视角:混凝土墙顶压着花岗岩压顶石,墙面挂着木护舷,近水线处是颜色更深的潮湿带和藻类带。Agent 觉得藻类带太像草地,之后把它调暗了一些。

  2. 第 1 条消息,工具调用 10/55

    木托盘上叠放的红蓝鱼箱,其中一只装着冰和三条鱼,四个视角

    鱼箱堆(608 个三角面)的四个视角,其中一个是正上方俯视:托盘上码着红色和蓝色的鱼箱,其中一只装着冰和三条鱼。Agent 觉得鱼太淡,加大了对比。

  3. 第 1 条消息,工具调用 11/55

    钢架上的青绿色渔网卷筒,缠着绿色渔网和橙色浮子,四个视角,其中一个被黄色爬梯挡住

    渔网卷筒(584 个三角面):青绿色卷筒上缠着绿色渔网和橙色浮子,装在带摇把的钢架上。Agent 觉得网上的深色斑块看着像拼布被面,把它们调浅、减少;这里有一个视角被爬梯挡住,所以之后它先把其他道具隐藏起来再逐件近看。

  4. 第 1 条消息,工具调用 15/55

    混凝土底座上的红色和米白色加油机,一根细黑油管从油枪绕成一圈,四个视角

    加油机的初版(352 个三角面):红色和米白色机身,带显示屏、招牌板、油枪和油管。Agent 觉得那一圈油管又细又歪扭,把它改粗、改顺。

  5. 第 1 条消息,工具调用 17/55

    红门白边的蓝色小屋,屋顶插着旗子,侧墙挂着救生圈,四个视角

    港务小屋的四个视角:蓝色小屋,红门、白色饰边,带花箱、烟囱管、旗子和救生圈。它有 699 个三角面,是整套里最重的一件。

  6. 第 1 条消息,工具调用 29/55

    三段岸壁接成一道长墙的两个视角,墙面挂着爬梯,台面上摆着道具

    用临时副本试拼:三段岸壁首尾相接,两架爬梯贴着岸壁,台面上摆着两个系缆桩、一盏路灯、渔网卷筒、鱼箱堆和加油机。两处接缝两侧的压顶石缝和护舷间距都保持均匀;试完 Agent 把副本删掉。

  7. 第 1 条消息,工具调用 35/55

    红色和米白色加油机的近景,黑色油管更粗、弧线更顺

    重建之后的加油机:油管更粗、更顺,现在是 364 个三角面。改过的几件道具,Agent 都像这样单独近看复查了一遍。

  8. 成品场景

    Blender 视口里网格上排成一排的八件道具,左边是岸壁段,右边是蓝色港务小屋

    视口里的成品:八件道具按要求排成一排,从岸壁段一直到港务小屋,合计 3,621 个三角面。

结果

用时(分钟)
39
API 请求
38
工具调用
55
道具(每件 250–⁠699 个三角面)
8
三角面合计
3,621
验收项(12 项)
  • 岸壁段长 6 m:实测 6.0 m。
  • 名为 SM_Quay_6m 的物体:找到。
  • 名为 SM_Bollard 的物体:找到。
  • 名为 SM_CrateStack 的物体:找到。
  • 名为 SM_NetDrum 的物体:找到。
  • 名为 SM_Ladder 的物体:找到。
  • 名为 SM_LampPost 的物体:找到。
  • 名为 SM_FuelPump 的物体:找到。
  • 名为 SM_HarbourOffice 的物体:找到。
  • 每件道具最多 800 个三角面:8 件全部满足(最多的一件 699 个)。
  • 每件道具都有 UV:8 件全部满足。
  • 每件道具的原点都在底部:8 件全部满足。
轨迹节选:Agent 的交付说明
All eight props are under 800 tris, with one UV map each and the pivot at the base. I reopened the saved file to confirm, and test exports to glTF and FBX worked (temporary files, since deleted). … Quay tiling: the quay is 6 m long and 3 m deep, with the deck surface 2.5 m above its pivot. Placing copies every 6 m along X gives seamless joins; the coping joints and fenders stay evenly spaced across the seams. I checked this with three tiles side by side. … Every prop shares one material, M_Harbour_Palette, which reads its colours from one small texture of flat colour swatches (T_Harbour_Palette.png). Each face's UVs point at its colour's swatch, so you recolour by repainting a swatch. The texture is packed into the .blend and also saved next to it. The only second material is M_Harbour_LampGlow, an emissive one used just for the lamp glass on the lamp post and the office door lamp.

中文大意

八件道具都在 800 个三角面以内,每件一套 UV,原点在底部。我重新打开保存好的文件确认过,导出 glTF 和 FBX 的测试也都成功(临时文件,已删除)。 …… 岸壁拼接:岸壁长 6 m、进深 3 m,台面比原点高 2.5 m。沿 X 轴每隔 6 m 放一段就能无缝拼接,接缝两侧的压顶石缝和护舷间距保持均匀。我把三段并排放在一起检查过。 …… 所有道具共用一个材质 M_Harbour_Palette,颜色取自一张由纯色色块组成的小贴图(T_Harbour_Palette.png)。每个面的 UV 都指向它那种颜色的色块,所以重涂某个色块就能改色。 贴图已打包进 .blend,也另存了一份在它旁边。 另外只有一个材质 M_Harbour_LampGlow,是自发光材质,只用在路灯的灯罩玻璃和港务小屋门口那盏灯上。

样例 10 / 10

可打印的抽屉收纳盒,再按 58 mm 抽屉改矮

  • 3D 打印
  • 参数化模型
  • 几何节点
  • 2 条消息
  • 难点
  • 水密实体,直接可打印
  • 按毫米建模
  • 尺寸和隔板数可调
  • 第 2 条消息:打印件放不进抽屉

需求是给工具抽屉做一个可打印的收纳盒:42 mm 网格,带堆叠唇边,底部有磁铁孔,内有两道隔板。整个盒子要按毫米建模,是一个水密实体;宽、深、高和隔板数都要能调,所以调出来的每种尺寸也都得能直接打印。Agent 用几何节点搭了一个参数化的盒子生成器;第 2 条消息说打印出来太高,放不进内高 58 mm 的抽屉,Agent 于是加了一个总高设置,把含唇边的总高从 60.4 mm 降到 56.0 mm。

需求原文

第 1 条消息

Reorganising a tool drawer, need bins for every compartment. Standard 42 mm grid, 7 mm height units, stacking lip on top, magnet holes in the base (6 mm). Start with 2x4 units, 8u tall, 2 dividers across the long side. Width, depth, height and divider count need to stay adjustable so I can make the other sizes myself. Modelled in mm, solid watertight mesh, printable as is.

中文大意

我在重新整理工具抽屉,抽屉每一格都要配收纳盒。标准 42 mm 网格、7 mm 高度单位,顶部带堆叠唇边,底部留磁铁孔(6 mm)。先做 2×4 单位、8 个单位高的,长边方向用 2 道隔板分成三格。宽、深、高和隔板数要保持可调,其他尺寸我自己来做。按毫米建模,实心水密网格,直接就能打印。

第 2 条消息

Printed it. Doesn't fit, drawer is only 58 mm tall inside. Same 2x4 with 2 dividers, just bring the overall height down, lip included, so it clears with 2 mm or so to spare.

中文大意

打印出来了,放不进去,抽屉内高只有 58 mm。还是 2×4、2 道隔板,只要把总高(含唇边)降下来,留出 2 mm 左右的余量就行。

从需求到成品

  1. 第 1 条消息,工具调用 12/49

    第一次查看盒子(83.5 × 167.5 × 60.4 mm),共四个视角:上面是三个格子和堆叠唇边,底下是 8 个支脚和 32 个磁铁孔。

    第一次查看盒子(83.5 × 167.5 × 60.4 mm),共四个视角:上面是三个格子和堆叠唇边,底下是 8 个支脚和 32 个磁铁孔。

  2. 第 1 条消息,工具调用 16/49

    试改设置:改成 3 × 2 单位、4 个单位高,沿长边再加 1 道隔板,磁铁孔只留外侧四角,盒子分成 6 格。在这之前,Agent 已经试了从 1 × 1 到 6 × 6 单位的 14 种组合,每种都是单个水密实体。

    试改设置:改成 3 × 2 单位、4 个单位高,沿长边再加 1 道隔板,磁铁孔只留外侧四角,盒子分成 6 格。在这之前,Agent 已经试了从 1 × 1 到 6 × 6 单位的 14 种组合,每种都是单个水密实体。

  3. 第 1 条消息,工具调用 18/49

    默认尺寸盒子的特写:底面带倒角的支脚、支脚之间的槽和磁铁孔,以及一个格子的内部。

    默认尺寸盒子的特写:底面带倒角的支脚、支脚之间的槽和磁铁孔,以及一个格子的内部。

  4. 第 1 条消息,工具调用 20/49

    贴近盒口的一个角查看。镜头近到切进了盒壁,两面壁上堆叠唇边的阶梯形截面都露了出来。

    贴近盒口的一个角查看。镜头近到切进了盒壁,两面壁上堆叠唇边的阶梯形截面都露了出来。

  5. 第 1 条消息,工具调用 24/49

    通过场景相机试渲染:这是第 1 条消息交付的盒子,含唇边总高 60.4 mm。

    通过场景相机试渲染:这是第 1 条消息交付的盒子,含唇边总高 60.4 mm。

  6. 成品场景

    第 2 条消息之后的盒子:含唇边总高 56.0 mm,比 58 mm 的抽屉低 2 mm。占地尺寸、唇边形状和支脚都没变,盒壁矮了 4.4 mm。

    第 2 条消息之后的盒子:含唇边总高 56.0 mm,比 58 mm 的抽屉低 2 mm。占地尺寸、唇边形状和支脚都没变,盒壁矮了 4.4 mm。

结果

用时(分钟)
31
API 请求
38
工具调用
49
最终尺寸(mm)
83.5 × 167.5 × 56.0
三角面(单个水密网格)
7,540
验收项(3 项)
  • 含唇边的总高放得进 58 mm 的抽屉(第 2 条消息):56.0 mm。
  • 场景单位设为毫米。
  • 网格水密:非流形边为 0。
轨迹节选:Agent 的交付说明

对第 2 条消息的回复

The bin is now 56.0 mm tall overall, lip included, which leaves 2.0 mm under your 58 mm drawer. It's still 2×4 with 2 dividers. The footprint, lip shape, feet and magnet holes are unchanged; the lip just sits lower. What changed - New setting: the Size panel now has a Custom Overall Height toggle and an Overall Height value in mm, lip included. It's switched on at 56 mm and used instead of the 7 mm units. - Interior: the lip now starts at 51.6 mm. The 3 compartments are still 54.2 × 81.1 mm, but now 44.6 mm deep instead of 49. The dividers still stop 1 mm below the lip. - Other bins for this drawer: if you make them by duplicating this one (Shift+D), they keep the 56 mm setting. Change only width, depth and dividers.

中文大意

盒子现在含唇边总高 56.0 mm,放进 58 mm 的抽屉还剩 2.0 mm。仍是 2×4、2 道隔板。占地尺寸、唇边形状、支脚和磁铁孔都没变,只是唇边整体下移了。 改动 - 新设置:Size 面板里新增了 Custom Overall Height 开关和 Overall Height 数值(单位 mm,含唇边)。开关已打开,设为 56 mm,取代按 7 mm 单位算的高度。 - 内部:唇边现在从 51.6 mm 处开始。3 个格子仍是 54.2 × 81.1 mm,深度从 49 mm 变为 44.6 mm。隔板仍比唇边低 1 mm。 - 这个抽屉的其他盒子:如果复制这个盒子来做(Shift+D),会沿用 56 mm 的设置,只需改宽、深和隔板。

可定制

包括但不限于以下几项,其他需求都可以商量。

  • 类目和配比:建筑、室内、机械、载具、道具、角色、动画、物理模拟、3D 打印件。
  • 难度:任务规模、追加消息的条数、带附件任务的比例。
  • 附件:户型图、图纸、规格表、logo、.blend 文件,其他类型可以商量。
  • Agent:模型、effort 档位、每个任务跑几次。
  • 交付格式:文件名和目录结构按你们的规范;多条消息的任务可附每条消息完成后的场景存档。
  • 数量和排期:交付数量和时间安排。

想提升模型的哪项能力?

来信告诉我们,我们会回复样例和规格说明。