告诉你下一个柜子该放什么的这条建议,并不是语言模型给出的,而是来自同一套能画出整间厨房的引擎 — 只是每次只跑一步,算的是你实际画出来的这个房间。
放到第十个柜子的时候,房间已经不再明明白白告诉你它想要什么了。水槽柜放在窗下,是因为水管本来就接在那面墙;冰箱摆在唯一容得下它的那个角落;二号墙已经排完,看着也顺眼。三号墙还是一整段空地板,你已经在这个决定上绕了二十分钟 — 说实话,你绕不出来的真正原因,是你分不清下一个柜子到底是自己选的,还是被前面的选择逼出来的结果。这正是步骤规划器要填补的空白,这一章讲的就是它在这里面到底做了什么。
一间空房间,第一步很明显:先画墙。一间排好的厨房则完全不需要再动 — 你这时候是在看报价、纠结拉手样式。几乎没有人会卡在这两头。人们卡住的地方是中段:已经摆了四个或十个东西,方案已经真实到值得保护,却又还没完成到让人担心下一步会不会把它推翻。
走到这一步的人,心里其实带着三个问题,但通常只把第一个问出口。
步骤规划器认真回答第一个问题,也能帮上第三个。第二个问题它是故意不回答的 — 它只会告诉你接下来放什么能装得下,从来不会告诉你你正在设计的这间厨房好不好。这个区别贯穿这一章接下来的内容,它是这个功能诚实划出的边界,而不是我们打算补上的缺口。
大家深夜都在搜什么 “柜子到底该放哪” — 打出这句话的人,几乎都是另一个标签页里开着一间画到一半的厨房,正卡在下一步已经不再明显的那个节点。
这是这一整篇最值得记住的一件事:当你问接下来该做什么时,这个问题并不会交给语言模型,而是交给步骤规划器自身的运算逻辑,它跑在服务器端,算的是你实际画出来的布局 — 你画的每一面墙和它们的长度、你摆的每一个柜子和家电,以及它们各自的位置。这正是生成完整自动设计的那套引擎,只是在走完一步之后就停下来。
这一点为什么重要,想象另一种做法最容易看明白:把下一步该怎么走这个问题交给语言模型,它一定会给你一个答案。哪怕是凌晨两点,面对一面 41″ 长、已经摆了 38″ 柜子的墙,它照样会给出答案,而且说得跟它真的答对时一模一样笃定。流畅不是你需要的信号。你对一条下一步建议真正的要求,只有一条:给出这个答案的东西,得知道这段缺口到底有多宽。
一套真正会去量缺口的引擎,只有两种老实的结果,没有第三种:要么产品库里有东西正好合适,它就点出名字;要么没有,它就得说清楚,或者反过来问你一个问题。被告知得先回答一个问题,其实比拿到一个听着合理却装不下的柜子要好得多 — 因为那个听着合理的柜子,会让你花二十分钟把它摆上去、看一眼、再想明白这排柜子为什么够不到转角了。
同一个布局,问两遍同一个问题,得到的是同一个答案。这里没有随机抽样,第二次也不会换一种说法,更不存在因为你换了个语气问,推荐就跟着变的情况。如果答案变了,那是因为你的厨房变了。这是一个不起眼的承诺,却正是它能被当成一件真正能用的工具、而不只是个新鲜玩意儿的原因。
语言模型并没有被排除在外 — 它负责把答案读给你听。Emma 会把步骤规划器当作她的工具之一来调用,拿到一个结构化的结果,再用大白话说出来:“一个 30 英寸的地柜,B30,放在三号墙,冰箱左边。”她不会做的事,是凭空编一个推荐、给它加工,或者把话说得更委婉。她是这个答案的传声筒,不是它的作者。她能看到什么、看不到什么,是单独一章的内容。
没有第四种形态,也不会把两种混在一起。提前知道这三种,你就能立刻分辨出,它给你的到底是一件要去做的事、一个要去做的决定,还是一个要去解决的问题。
| 形态 | 给回来的是什么 | 什么时候会遇到 | 该怎么处理 |
|---|---|---|---|
| 推荐 | 一个具体的柜子:放在哪面墙、墙上的什么位置,附带理由 | 只要墙已经画好、下一步没有歧义,这就是最常见的情况 | 同意并让她摆上去、自己动手摆,或者不理它、放别的东西 |
| 问题 | 在能给出任何推荐之前,需要你先定下来的那一件事 — 遇到真正需要你选的情况,它会把两个选项都点名列出来 | 一间还没画墙的空房间;或者一个方角柜和盲角柜都说得通的转角 | 先回答它,再问一次。绕开这个问题只是把它往后拖 |
| 受阻 | 一句它没法继续下去的说明,附带原因 | 你已经摆好的东西,让剩下的空间已经装不下任何东西了 | 撤销、拿掉一个柜子,或者干脆承认这面墙已经排满了,转去做别的墙 |
空房间这种情况值得特别说一下,因为它常常让期待直接生成一套设计的人感到意外。房间还没有墙的时候,答案就是那个问题:先把墙加上 — 这不是在较真,而是因为根本没地方放柜子。一个还不存在的房间,没有墙长、没有转角、也没有任何约束,而引擎给出的每一条推荐,都是这三样东西的结果。先把房间的轮廓画出来,也就几分钟的事。
它一次只给一个答案,这是一个刻意的决定,不是能力上的局限。一次列出接下来六个柜子的清单,那已经不是建议,而是一套设计 — 而围绕一个只做到一半的房间生成出来的设计,会悄悄替你做掉五个你还没做过的决定。这里还有一个机制上的原因:每一条推荐都是按房间当下的样子算出来的,第一步一旦落地,那个当下的样子就不存在了,第二到第六步其实是针对一间已经不再存在的厨房算出来的。
如果你确实想要一次性拿到整套方案,那是完整自动设计要做的事,是另一个功能,需要免费的 Google 登录。而步骤规划器,是给想要自己把着方向盘的人用的。
在 L 形房间里,转角柜是唯一一个宽度同时来自两面墙的箱体。两排柜子上的每一样东西,位置都是相对于转角结束的那个点来定的,这让它成了决定另外两个方案的那个约束条件,而不是众多柜子里普通的一个。所以规划器会先定转角:在 L 形房间里,它会先推荐转角柜,再推荐两侧任何一排里的东西。
把转角留到最后,出问题的方式几乎是可以预见的。你把两面墙都从远端整整齐齐地排满,它们从两个方向逼近转角,中间剩下的那段缺口,产品库里没有一个转角柜正好对得上 — 想要的那款太大放不下,靠填条补上又太宽,补出来的样子你自己都看不下去。这个方案里单看每一步都没有错。错的是顺序。
还有第二个原因:真正说不清楚的那部分歧义,恰恰就藏在转角里。
这是个人喜好问题,不是装不装得下的问题 — 所以它会把两个选项都点名交给你。
当你的转角两种方案确实都能用时,引擎会停下来问你,把两个选项都点名列出,而不是替你选一个就往下走。方角转角柜真正把转角转过去,给你一扇 45° 斜切的门,或者两扇在中间对开的门。盲角转角柜则让一排柜子从另一排后面接着延伸过去,箱体的一部分藏在相邻柜子背后 — 这排能用的宽度更大,但藏在暗处的那一半不太好拿取,除非你另外买拉篮五金。
这其实是在决定接下来十五年你要怎么伸手去够那个转角,布局数据里没有任何东西能替你定下这件事。一个工具如果悄悄替你选好,那就是打着几何计算的幌子,替你做了一个生活方式上的决定。转角那一章把两种方案都讲透了。
转角一旦定下来,就不会再变:规划器不会把同一个转角推荐两次。没有这条规则的话,一个你故意留空的转角会在每次提问时都被重新提起,你就会一直在拒绝同一条建议,而不是把这面墙排完。
引擎运行的时候,房间里已经存在的每一个柜子和家电,都会被当作固定不变的东西对待。这不是一个它可能会修改的起始建议,也不是一份它会帮你收拾整齐的草稿。它是围着你已经做的决定去设计,而不是推翻它们,这比听上去要更有分量,也正是这个功能可以放心用在你真正在意的方案上的原因。
这带给你的好处是:你可以从唯一确定的那件事开始排,而现实中的厨房,几乎都是这么规划出来的。
锁定是要付出真实代价的,这一点你最好在遇到之前就知道。如果你已经摆好的柜子让剩下的部分根本装不下 — 比如一排柜子排下来,转角处只剩 9″ — 那么给回来的答案就是受阻,并附带原因。它不会靠挪动你摆好的东西来解决这个冲突。我们宁可给你一个直白的拒绝,也不愿意让你一抬头,发现水槽柜已经沿着墙悄悄挪了 6″,就为了让某个算法用着顺手。眼睁睁看着一个工具悄悄重排你亲手摆好的东西,是人们不再信任它的那一刻,而他们不信任是对的。
设计工具里的撤销只能回退最近三步改动 — 这是故意设计成这样的,免得一个很大的场景一直占着浏览器的内存不放。比这更早的改动就撤不回来了。如果你打算一口气拿掉四个柜子,看看这面墙空着会不会让引擎给出更好的答案,那就先把设计存成一个名字,再放心去试。保存和其他会离开你浏览器的操作一样,都需要那个免费登录。
这里把边界先说清楚,免得你自己去摸索:步骤规划器带你走的是落地的柜子 — 地柜那一排和高柜那一排。吊柜不归它管,吊柜要么来自完整自动设计,要么等落地这部分定下来之后,由你自己用鼠标去摆。
这听着像是漏掉了一块,但更准确地说,是一个先后顺序的问题。地柜和高柜这两排,决定了它们上面几乎所有的东西:台面的形状和走向、水槽落在哪里、家电各自开多大的口、转角怎么处理 — 而吊柜的位置,是相对于下面这些东西定出来的。灶台正上方那个柜子其实根本不是一个可以自由选的东西:它是由抽油烟机决定的,而抽油烟机又是由灶具最终落在地柜排的哪个位置决定的。背后那些净空尺寸,都在家电那一章里。
先解决起约束作用的那一排,再去处理被约束的那一排,吊柜就会变成一件又快又简单的事。反过来做的话,你会把吊柜挪动两遍。
与其让你在一面已经没有地柜可推荐的墙上问上六遍才发现这一点,我们宁可先把话写在这里说清楚。如果你的地柜那一排已经排满,还在等它开始建议吊柜,那是等不到的 — 那要么是完整自动设计的事,要么就得靠你自己花一下午。
步骤规划器是同一个东西,只是有两道门都能进去,走哪道门得到的答案都一样。不一样的是问它要付出什么代价,以及问完之后会发生什么。
用语音问,问接下来该做什么是 Emma 十二个工具之一。左键点一下画布角落的头像发起通话,说出这句话,她会用大白话把结果念给你听 — 产品编码会像人说话一样念出来,“一个 30 英寸的地柜,B30”,而不是像念条形码一样一个字母一个字母拼。然后她会问你要不要把它摆上去。只有你开口答应之后,她才会去摆,摆上去之后,它会算作一步撤销记录,跟你自己用鼠标拖一个柜子上去完全一样。设计里的其他东西都不会动。
走这道门的代价是:要登录、要给麦克风权限、要用一个支持通话的浏览器,还要有可用的时长:每个账户每天免费十分钟,按多伦多当地的日历日重置,超出部分每五分钟扣一枚 GH Coin。而且只有你在这五分钟里确实说过话、并且是在最后一分半钟以内说的,这一段才会续上 — 所以你开着通话在那儿想事情,并不会悄悄把时长耗掉。
顺带说一句:如果你安静超过五分钟,连接会被故意断开。麦克风还开着,但什么都不会传出你的电脑 — 网页只是在本地测一下音量,好在你重新开口时能察觉到 — 等你说了一会儿话,她会带着完整的上下文接回来。安静的时间长到二十分钟左右,她就会彻底放开麦克风。
不用麦克风的话,同一条建议会直接显示在设计工具里,答案不用靠通话才能拿到。这条路上少的是帮你摆上去这一步 — 你自己读推荐,自己把柜子摆上去。点一下鼠标,一样只算一步撤销记录。
这几条都不难,都是我们看着有人没能用出这个功能应有的效果之后,总结出来的。
这就把这一章带回了它开始的地方:一条建议告诉你接下来什么装得下,但不会告诉你冰箱门能不能避开台面、洗碗机开着的时候两个人能不能同时通过、你有没有留一块地方放一只刚从炉子上端下来的热锅。这些问题会在交货那天变得很昂贵,而回答它们,是另一份工作。
在下单之前,打开你的设计方案,对照着读一遍这十二个布局错误。步骤规划器和那份清单回答的是两类不同的问题,而你两类都需要答案。
它会用规划器自身的步骤逻辑,去计算你已经画出来的布局,然后给回来的一定是这三种之一:一条推荐,点名具体的柜子、放在哪面墙的什么位置,并附上理由;一个它需要你先回答的问题;或者一句它受阻的说明,附带原因。每次只给一个答案,而且是按房间当下的样子算出来的。
不是。这条建议是由跑在服务器端的确定性步骤逻辑计算出来的,算的是你实际的布局,用的引擎和完整自动设计是同一套。同一个布局问两遍,得到的是同一个答案。语音助手会用大白话把结果念给你听,但她不会去编造或者改动它。
因为必须先定下某件事,才有可能给出推荐。墙还没画的时候没地方放柜子,所以答案是先把墙加上。在一个方角柜和盲角柜都说得通的转角,这个选择是个人喜好问题,不是装不装得下的问题,所以它会把两个选项都点名交给你,而不是替你选一个。
在 L 形房间里,转角柜是唯一一个宽度同时来自两面墙的柜子,所以它决定了两排柜子上所有东西的位置。如果先把两面墙都排满,它们会在转角相遇,而产品库里没有一个转角柜正好对得上那段缺口。规划器会先定转角、再排整排,而且不会把同一个转角推荐两次。
不会。你已经摆好的一切都会被当作锁定的对象,引擎会围着它们去设计。这让你可以从确定的东西开始排,比如窗下的水槽柜,或者只有一个角落能放的冰箱。如果你锁定的柜子让剩下的部分装不下,它会告诉你受阻了、以及原因,而不是悄悄挪动你摆好的东西。
不会,这是这个功能诚实划出的边界。步骤规划器带你走的是落地的柜子,也就是地柜那一排和高柜那一排。吊柜要么来自完整自动设计,要么由你自己来摆。这个先后顺序是有原因的:落地这部分决定了台面、水槽位置、家电开口和转角的处理方式,而吊柜的位置,是相对于下面这些东西定出来的。
这意味着,按你已经摆好并锁定的东西来算,产品库里没有任何东西能装进剩下的空间。这条消息会附带原因。解决办法在你这一边:撤销最近的一步改动、拿掉一个把这一排占得太满的柜子,或者干脆承认这面墙已经排完了,转去问别的墙。
可以,但只能在语音通话里,而且只有在你开口答应之后。一条被念出来的推荐,在你答应之前什么都没改变。她摆上去之后,会算作一步撤销记录,跟你自己用鼠标拖一个柜子上去完全一样,设计里的其他东西都不会动。打字面板没有工具,没法帮你摆任何东西。
不等于。它告诉你接下来什么装得下,不会告诉你你正在设计的这间厨房好不好。冰箱门能不能避开台面、洗碗机开着时两个人能不能同时通过、有没有地方放热锅,这些它一句都不会说。下单之前,请对照布局清单自己检查这些问题。
先画墙,再摆那一个你确定的柜子,最后问出那句在整个设计工具里最管用的话。
打开 3D 设计工具 →