OpenAI GPT-6 Astra 实测:一句话,造出一栋可以走进去的房子

我是怎么用 GPT-6 设计一栋房子的?

我是怎么用 GPT-6 设计一栋房子的?

👦🏻 作者: Thomas Ricouard

🥷 编译: gold digger

🧑‍🎨 排版: NCon

「十字路口」编者按

本文作者是 OpenAI Codex 的工程师 Thomas Ricouard。他介绍了 GPT-6 Astra 的一个 use case——用 Astra 设计一栋房子。

在我们看来,这是目前关于 GPT-6 Astra 最翔实的测评之一,相当完整地展示了 GPT-6 Astra 最值得关注的两点:一是它能直接在 Blender 里做 3D。二是它会主动验证和打磨自己的工作——这背后也体现了 GPT-6 Astra 在 computer use 上的明显提升。 🚥

最开始,我只说了一句话:要一栋极简的房子,家具要精致,有花园,画面要有电影感。

我把这句话丢给 Codex 里的 Astra,让它直接在 Blender 里生成一个可编辑的 3D 场景。接下来,这个场景一步步长大:先是扩建成一栋家具齐全的家庭住宅,后来又被搬进 Unreal Engine 5,可以像玩游戏一样在里面走来走去。

Blender 也一直在工作:场景持续在打磨,最后既拍出了一支有正经运镜的短片,也能让人亲自走进去。

最初的场景只有一个带家具的开放式起居空间。后来我们先给更大的家庭住宅画平面图,再一间间把房间搭出来。整个过程里,我和 Astra 反复调整建筑、家具、材质和灯光,每出一版画面,就用它来决定下一步改什么。

最后一轮,我们加上日常物品和更温暖的灯光,房子这才真正有了生活气息。

下面保留了几段提示词(为篇幅做了删减)。

顺着看下来,你能看到一个模糊的想法是怎么一点点长成完整项目的。

先确定房子和整体氛围

第一段提示词里,我只描述了想要的结果——没给平面图,也没列家具清单:

“Design a beautiful house with minimalist but highly detailed furniture and a nice garden. Make the scene cinematic, with considered lighting, materials, and time of day.”(设计一栋漂亮的住宅。家具采用极简风格,但细节要足够丰富;还要有一座好看的花园。整个场景需要有电影感,仔细考虑灯光、材质和时间氛围。) Astra 通过 Blender Python API[1](bpy)搭出了一个可编辑场景:建筑结构、木作、家具、植物、材质、灯光、摄像机,一次全有了。第一版就抓住了我想要的感觉——低矮的屋顶、开放式起居空间、温暖的木头、浅色石材,还有室内和花园之间的联系。

我们给这栋房子起了个名字:Solace。

第一次提示后生成的 Courtyard House,也就是最初的 Solace。

这栋房子虽然只源自一段提示词,但 Astra 并没有交出第一版就收工。它自己看预览图,调构图、调灯光,还顺手修掉了植物互相穿模、沙发毯摆得不自然这类细节。我既不用逐个描述场景里的物体,也不用每改一处都下一道指令。

这个阶段,场景的重心还是那个带家具的起居空间;卧室等私密区域只有外部轮廓,里面并没有真正搭出来。所以这一版更像是在确认视觉方向,还谈不上是一套完整的家庭住宅。

接着,我改了环境设定:

“Make it golden hour. We should see the sun, and the house should be in the middle of a viridian forest.”(把时间改成 golden hour(译者注:即「黄金时刻」,指日出后、日落前光线最柔和金黄的时段)。画面里应该能看到太阳,房子位于一片深翠色的森林中央。) Astra 保留了房子,在四周种出一片森林:一层层的树木和林下植被,定好太阳的位置,再用大气散射让阳光穿过树林时拉出清晰的光束。画面在花园之外有了纵深,温暖的室内也从树林的背景里跳了出来。

同一栋早期住宅,加入森林和黄金时刻灯光后的效果。

房子和花园是程序化建模的;更大范围的森林则直接用了 Poly Haven*(译者注:一个提供免费 3D 模型、材质和 HDRI 环境贴图的开源素材库)*的树木、蕨类和岩石素材——这样精力就能集中在环境布局和整体氛围上。

扩建之前,先把平面图定下来

视觉方向确认后,我想再往前推一步。

中间版本已经加了一套带家具的卧室,几何结构、厨房和家具也都改善过。接下来,我想要一栋真正适合一家人长住的大房子:

“I like the minimalist, modern style, so keep that while we grow the house to be much more livable. Draw me a floor plan first. We'll validate and evolve it from there.”(我喜欢现在这种极简、现代的风格,请在保留风格的同时,把住宅扩展得更适合日常生活。先画一张平面图,我们确认后再继续修改和发展。) 从这里开始,项目就不只是「把画面做得更漂亮」了。**我们得真正回答空间问题:房间怎么相连?私密区域放在哪?人在房子里会怎么走动?**这些问题,靠往第一版场景里塞更多家具是解决不了的。

Astra 给出的方案是一栋单层 U 形住宅,围绕一座种满植物的中庭展开:客厅、餐厅、厨房构成中央空间,两翼是三间卧室、一间办公室、几个卫生间和一间衣帽间;厨房旁边还安排了食品储藏室、洗衣房和储物间,把家务和收纳集中到一处。

重建住宅前确认的概念平面图。

有了平面图,很多具体问题就能摆上台面检查:卧室不该成为去别处的必经之路;绕中庭一圈的通道,能让两翼之间的动线避开厨房的操作区;室外餐区、草坪和泳池把起居空间向外延伸,又不用把它们变成封闭的房间。

我确认了方向,并让 Astra 在动工之前先备份当前场景:

“Keep the current scene as a backup, then build the updated house in Blender. Iterate until the house, furniture, and garden are detailed and the geometry is correct. Once we validate it in Blender, we'll export it to Unreal Engine 5.”(保留现在的场景作为备份,然后在 Blender 中搭建更新后的住宅。持续迭代,直到房子、家具和花园都有足够细节,几何结构也准确无误。等我们在 Blender 中确认完成,再把它导出到 Unreal Engine 5。) 这个顺序很重要:先审平面图,再审模型,最后才投入额外精力做实时体验版。 当然,这仍然只是概念展示——平面图要真正用于建造,还得由专业人士结合场地、结构和建筑规范重新审核。

搭建房间和家具

Garden House 保留了森林环境和克制的配色,建筑则围绕定稿的平面图展开。中庭成了整个空间的核心,两侧的房间都能望向它。

Garden House 完成建筑设计和氛围调整后的 Blender 渲染图。

**房间可不可信,很大程度上取决于家具。**Astra 建出了带滚边的沙发坐垫、弧形的椅架、一本本的书,还有内部真正掏空的陶器。床有床架、床板、床垫和带自然褶皱的床品;衣柜有内部空间、层板和挂衣杆;办公室里是带理线设计的书桌、显示器、键盘和一把脚轮椅。

这些都不是贴图或后期效果,而是场景里实打实建出来的模型。 换个角度照样经得起检查,也能原样带进后面的动画和实时体验。坐垫和床品的形体是直接做好的,不跑布料模拟也能保持最终效果。

客厅里的软装、家具、书籍和陶器都被完整建进场景。

厨房和卫生间也是同样的细节标准:水槽和洗手盆真的挖出了内腔,厨房里有烤箱内腔、烤架、餐具抽屉和储物架。在大全景里,这些都是不起眼的小东西;可镜头一旦贴近台面、走进房间,差别立刻显出来。

材质也得经得住近看。 后期场景把定制材质和 Poly Haven 扫描的橡木、胡桃木、石膏纹理结合起来(包括 White Oak Veneer[2])。Astra 对齐了木纹方向,纹理的尺度也和家具的真实尺寸保持一致。

厨房和餐厅延续了第一版住宅克制的配色,同时增加了家具和木作细节。

生成最终画面时,Astra 会用 --python 参数让 Blender 在后台跑脚本,由脚本摆放摄像机、选择镜头、完成渲染。它也会通过 computer use 直接打开 Blender,把应用里的场景和已保存的渲染图对照着检查。

(译者注:这正是 computer use 带来的放大效应:GPT-6 能够亲自运行软件、观察结果、发现并纠正错误,因此最终成品的提升远大于「第一稿能力」的提升。官方数据也能看出两者同时进步:Astra 的 ScreenSpot-Pro 从 GPT-5.6 Sol 的 76.9% 提升到 92.7%,代表看懂屏幕、定位操作对象的能力提升;BenchCAD 从 83.3% 提升到 95.9%,体现了从视觉输入重建三维几何的提升。数据见 GPT-6 Astra 发布页[3]。)

我们一直靠渲染图来检查模型。Astra 会输出各个房间的视角和材质近景,再从这些画面里找问题、做修复。比如钢制水槽的表面法线出了问题,让本该平坦的槽底看起来像被挤压过;修正法线、重做圆角之后,画面干净了很多,厨房设计本身一点没动。

修正表面法线和边缘后的水槽近景。

关掉材质,检查几何结构

电影感的渲染适合判断氛围;把材质一关,模型本身就一览无余——墙体、开口、家具、房间布局,全都看得清清楚楚。

Blender 实体模式下的模型结构。为了方便检查,这里暂时隐藏了屋顶、周围森林和玻璃窗,模型本身没有改动。

从这个视角,也更容易看清项目是怎么从第一版的开放空间长成一栋完整住宅的:新版有连续的平面布局,两翼都摆好了家具,并通过多个开口和中庭相连。就算抛开灯光和最终镜头,这些元素在 Blender 里依然可以单独编辑。

Astra 还检查了门洞、墙体连接这些几何细节,也试走了几条动线。这类检查能帮人更快发现问题,但代替不了逐张看渲染图,也不能保证场景里完全没有穿模或建筑细节上的错误。

让房子拥有生活痕迹

住宅和家具完成后,我回到 Blender 继续补细节。布局已经立住了,接下来要让房间看起来「有人住」,也要让材质在近景里经得起看。这次我主要提了两个要求:调灯光,加生活痕迹。

“Make the lighting quieter, warmer, and more accurate. Improve how the materials respond to light, and add dishes and everyday objects so the house feels lived in.”(让灯光更安静、更温暖,也更符合真实情况。改善材质对光线的反应,并加入餐具和日常物品,让房子看起来真的有人居住。) Astra 保留了建筑结构,把物品放在人真正会用到它们的位置:餐桌上摆了盘子、刀叉、酒杯和叠好的餐巾;厨房台面上放着面包、香草和瓶瓶罐罐;咖啡桌上是摊开的手账、一副眼镜、一只马克杯、手机和钥匙——不再像样板间的展示台。办公室和卧室也添上了类似的使用痕迹。

完成细节和灯光调整后的客厅,原始分辨率为 4K,由 Cycles 渲染。

这些物品同样是真正建进场景的模型:掏空的餐具、带竖纹的玻璃杯、连缝边都做出来的折叠亚麻布。Astra 还继续调整表面对光的反应,把 Poly Haven 的木材、石膏扫描纹理和布料、陶瓷、金属上的程序化细节结合起来。纹理尺寸、粗糙度和细微起伏都拿捏得当,这些材质在近景里也显得真实。

灯光也重做了一遍。Astra 删掉了把房间照得平淡的隐藏补光,把剩下的光源调暖,并让每一束光都能在画面里找到对应的灯具:吸顶灯有模型,透光的灯罩里真的装着发光的灯泡。这样一来,每一处高光和阴影都有了明确的来源。

调整后的餐厅和厨房。餐具与灯具都是场景中可以继续编辑的模型。

在 Blender 里拍一支住宅短片

我还想看看这栋房子在动态镜头里的样子,于是请 Astra 拍一支 30 秒、1080p 的住宅短片,镜头既要有运动感,又要有真人手持的自然感。我们先用低质量预览快速看效果,调整构图和运动方式,最后才正式渲染。

Astra 把需求拆成四段镜头,分别覆盖中央起居区、办公室、卫生间和卧室,再用剪辑串起来。Python 脚本把摄像机架在离地约 1.65 米的高度,用 24—26 毫米镜头,每段运动起止时自然减速,还带一点走路的起伏。镜头的视线会主动落在家具和窗外的景观上;哪个预览镜头长时间对着空墙、或者收尾突兀,Astra 就回去重调。

为了让建筑细节始终清晰,镜头没有加景深。Cycles 按每秒 30 帧渲染了 900 张独立的 1080p 画面,用自适应采样和 OpenImageDenoise 控制噪点,Astra 再把它们剪成影片,中间没有补一帧。因为是离线渲染,每一帧都可以慢慢算。

看完第一版,我又要求在进屋之前加 5 秒室外画面:泳池、水面反射、躺椅。Astra 渲染了这段开场并接进影片,还顺便输出了 5 张原生 4K 静帧——外观、中庭、客厅、厨房、卧室各一张。同一个场景,既能拍成有运镜设计的短片,也能出细节丰富的静态大图。

在 Unreal Engine 5 中走进这栋房子

项目早期,我还让 Astra 把住宅做成了可以亲自走进去的 Unreal Engine 5 版本。我想用正常人的视线高度在屋里自由走动,直观感受各个空间是怎么连起来的。下面这段视频是早期版本,还没有后来在 Blender 里完成的细节和灯光。

基于定稿的 Blender 文件,Astra 写了一套导出、导入工具:几何模型在应用修改器后导出为 FBX(包括 Blender 曲线生成的细节),同时生成一份 JSON 场景描述,记录每个部件的位置、用的材质,以及灯光和摄像机怎么摆。

Unreal 再照着这份描述还原场景。转换过程要处理 Blender 用米、Unreal 用厘米的单位差异,还有坐标轴方向的不同。重复出现的树木共用同一套实例化模型,森林里的每棵树不必单独生成完整网格。

材质也要转换——Blender 和 Unreal 的材质系统并不一样。Astra 读取 Blender 里能兼容的材质输入,沿用原始纹理,再给木材、石材、布料、玻璃、水面这些表面各搭一套对应的 Unreal 材质。纹理在几何表面上的定位和尺寸都保留了下来,包括木纹方向。有些着色器效果只能近似还原,最终效果还是得靠实际检查和调试。

灯光是另一块工作。太阳方向和场景里原有的灯位打了底,Unreal 的天空和体积雾负责重建森林氛围。Astra 把 Unreal 的画面和 Blender 对照着调室外补光和雾气——既保住了原来的氛围,又能让光线跟着玩家的移动实时变化。

已经打包运行的 Unreal 版本。为了截取厨房近景,画面设置做过专门调整。

接下来还得有玩家角色和碰撞系统。Astra 加入了第一人称角色、步行控制和出生点:地面要托得住人,墙体、家具和玻璃要拦得住人;附近的树干可以是障碍物,但不能让每株蕨类都变成一堵看不见的墙。最后它把项目打包成能直接在 Mac 上运行的应用,还按玩家真实的走法测了几条路线。

能亲自走进 Solace,也让我多了一种检查设计的方式:从花园走近住宅,进到起居空间,再站到那些渲染镜头从没拍到过的位置,看看每个房间。

Blender 的细节和灯光调完之后,我又让 Astra 把更有生活感的新版住宅同步进 Unreal。它把更新后的几何和材质重新导入现有工程,还给模型加上了交互:导出流程会记录每扇门、每个抽屉由哪些部件组成,绕哪里转、往哪边滑,开关又该控制哪些灯。在 Unreal 里,门把手、抽屉盒和里面的物品都会跟着所属结构一起动。

最大的变化是:房子里的东西真的能用了。 照着屏幕上的提示按下 E 键,可以开门、打开厨房的柜子、控制一部分灯,还能操作咖啡机——冲煮动画里按钮被按下,咖啡流进杯子,液面一点点升高。之前在 Blender 里做好的那些细节,现在都成了玩家可以亲手触发的互动。

把 Blender 和 Unreal 的画面对照着看

最新一轮修改完成后,我让 Astra 用新版住宅和相同机位重做分镜板:每张画面单独保留,再分别拼成 Blender 和 Unreal Engine 5 两套完整分镜。两张分镜板都以一幅大的住宅外观开场,下面排着客厅、厨房、办公室、卧室、卫生间、花园 6 个视角。编号、标题、简短说明、字体和间距都由 Astra 处理,每幅图完整保留、不做裁切。

两套分镜一边用 Cycles 渲染,一边用 Lumen 实时截图:7 个场景顺序相同,机位、朝向、视野一一对应;两边保留各自的灯光、材质和色调映射,Unreal 版卫生间的镜子里还能看到一些反射瑕疵。放进同一套版式,两边的差异一眼可比,零散的视角也变成了一组完整的住宅展示。

由 Cycles 渲染画面组装的 Blender 分镜板。

由 Lumen 实时截图组装的 Unreal Engine 5 分镜板。

把同样的方法用在建筑之外

同样的方法,我也用来做过完全不同的 3D 场景。在 HELIOS 项目里,我让 Astra 搭一个环绕太阳的戴森球。

这个虚构的能量收集器最终有几千块独立面板:每块都有凹陷的表面、散热鳍片和带支撑结构的维护设施,系统里还分布着体积更大的控制节点。

Astra 再用材质和灯光,让这些结构在耀眼的恒星旁边依然清晰可辨。

最初的 HELIOS 收集器采用开放结构,中央太阳清晰可见。尺寸和距离都为画面效果做了调整,并非严格的天文学尺度。

Astra 在工作过程中会主动检查渲染。第一批预览里,它发现行星发白、土星环被画面边缘切掉,就自己降了补光、把镜头拉远。后来我要求从地球看向几乎闭合的外壳,它又做了一个只留三道窄缝的版本。

预览里只有一道光束足够清晰,Astra 就把发光表面挪得更靠近开口,还试了海洋材质的几组参数,压掉那些会抢戏的反射。

从地球望向接近闭合的 5,120 块面板,三处开口透出光束。尺寸和灯光同样为画面效果做过调整。

HELIOS 渲染使用了 NASA JPL / STEREO 和 SDO[4] 的太阳图像,并根据伪彩色紫外观测结果进行改编;地球图像来自 NASA Earth Observatory 的 Blue Marble[5]。地球夜间灯光[6] 由 NASA Earth Observatory / Robert Simmon 提供,使用 Chris Elvidge、NOAA NGDC 提供的 Suomi NPP VIIRS 数据。行星和云层贴图来自 Solar System Scope / INOVE[7],并按照 CC BY 4.0[8] 许可改编。

在 Shipyard 项目中,Astra 搭建了一艘名为 AURELION-07 的巡洋舰。

它有向前收窄的舰体、分段的圆环和 4 组细节丰富的推进器;发动机带约束环、维护管线、内凹喷口和同心的发光结构。陶瓷装甲、机加工金属和玻璃各有各的材质,程序化纹理再给装甲和金属加上颜色、粗糙度与表面细节的变化。几何、材质、灯光、摄像机,都还能继续在 Blender 里编辑。

AURELION-07 的 Blender 渲染图,飞船模型可以继续编辑。

这个项目里,Astra 同样靠预览找改进点:它觉得舰首太素、背景行星又太抢眼,下一版就沿着收窄的舰体加了面板和接缝,添上对接结构和圆环固定件,顺手把背景行星挪了位置、压暗了亮度。之后它又从多个角度检查飞船,包括发动机区域。很多模型和构图上的调整,在我逐条指出问题之前就已经完成了。

同一艘飞船的第二个视角,更清楚地展示发动机结构和表面细节。

根据真实参考设计一座花园

我还让 Astra 照着吉维尼的莫奈花园,搭一座有睡莲池、绿色小桥和茂密植物的花园。早期渲染里池塘后面显得很空,我就让它研究真实参考,把周围的花园和建筑补起来。

下一轮,我主要让它改善那些质感还单薄的表面。Astra 加了带纹理的碎石路和砌体,继续细化睡莲的叶片和花瓣,再渲染出新的 Cycles 画面给我检查。

最终成果仍是一套可编辑的 Blender 场景——只是为了画面效果,比例没有完全照搬真实花园。

吉维尼风格水景花园的 Cycles 渲染。部分植物、纹理和天空环境来自 Poly Haven。

你也可以从一个场景开始

Solace 最打动我的地方,是同一个想法能沿着这条路径不断生长:先描述一种氛围,然后审平面图,再要求更精确的家具,最后真的走进这个空间。

Astra 负责场景、脚本和 Unreal 工程,我只负责判断——这个空间应该长成什么样。

HELIOS 和 Shipyard 也是类似:先看整体设计,再一路深入到单个部件,让 Astra 全程自查、持续改进。

如果你也想试试,不妨从一个你想看到的空间或物体开始:一间房、一件家具、一艘飞船,或者一片想象中的风景。先描述它的用途和氛围,让 Astra 生成可编辑场景和几张检查用的画面;先看整体造型,再拉近视角,继续指出要改的地方。

每一张新画面,都是下一轮修改的依据——无论你只想打磨一件物体,还是最终走进一整个世界。

参考资料

**[1]**Blender Python API:https://docs.blender.org/api/current/

**[2]**White Oak Veneer:https://polyhaven.com/a/white_oak_veneer

**[3]**GPT-6 Astra 发布页:https://openai.com/index/gpt-6-astra/

**[4]**NASA JPL / STEREO 和 SDO:https://svs.gsfc.nasa.gov/30362

**[5]**NASA Earth Observatory 的 Blue Marble:https://science.nasa.gov/resource/blue-marble-2002/

**[6]**地球夜间灯光:https://science.nasa.gov/earth/earth-observatory/night-lights-2012-map-79765/

**[7]**Solar System Scope / INOVE:https://www.solarsystemscope.com/textures/

**[8]**CC BY 4.0:https://creativecommons.org/licenses/by/4.0/