科技爱好者周刊(第 415 期):3D 版《看不见的城市》
本杂志开源,欢迎投稿。另有《谁在招人》服务,发布程序员招聘信息。合作请邮件联系([email protected])。
小说讲述旅行家马可波罗,向年迈的元朝皇帝忽必烈介绍他旅行中经过的55座城市。
这些城市没有图片或模型,只有文字描述,所以叫做"看不见的城市"。比如,有一个城市叫做艾琳,马可波罗这样描述:
"亮灯的时候,假如你站在高地边沿探身外望,看见的城市便是艾琳。透过澄澈的空气,它远远在你下面展开一片浅红。
有些地方窗户排列较密,在暗淡的小巷里,灯火逐渐疏落,花园子里是浓稠的阴影,塔楼上有信号火光;如果晚上有雾,朦胧的光线会像吸满牛奶的海绵一样涨起来。"
有人想到,可以把这些描述输入 AI 模型,为这55个城市建立可视化的 3D 版本。他就用 GPT-6 Astra 和 Claude Opus 5.5 这两个模型进行尝试。
结果证明,Claude Opus 5.5 的实现(交互版,代码)要比 GPT-6 Astra 的实现(交互版,代码)好得多。
这个 3D "艾琳"完全看不出原文那种"万家灯火"的意境,事实上,GPT-6 Astra 生成的55个城市看上去都差不多,全是这种样子。
Claude Opus 5.5 生成的艾琳,就完全不一样了。
它忠实再现了,从高处眺望,城市朦胧的粉红光线"像吸满牛奶的海绵一样涨起来"。
《看不见的城市》里面,我最喜欢的一段描写,是一个叫做伊希多拉的城市。
后来,他终于抵达伊希多拉,这儿的建筑物有镶满螺旋形贝壳的螺旋形楼梯,这儿的人制造完美的望远镜和小提琴,这儿的外国人在面对两个女性而犹豫不决的时候总会邂逅第三个女性,这儿的斗鸡会演变成为赌徒的流血殴斗。
他期盼着城市的时候,心里想着的正是这些事情。因此,伊希多拉便是他梦想的城:只有一点不同。
在梦想的城里,他是个年轻人;他抵达伊希多拉的时候却是个老头。在广场的墙脚,老头们静坐着看年轻人走过;他跟他们并排坐在一起。欲望已成记忆。"
Claude Opus 5.5 生成的伊希多拉,不仅漂亮,而且忠实还原了原著。
现在的大模型具备很强的 3D 建模能力,各种建模项目于是纷纷问世。
这些项目使用 three.js 生成各种虚拟场景,3D 画面可以在浏览器呈现,支持缩放、旋转、移动,缺点就是体积太大,页面加载时间很长。
除了上面的《看不见的城市》,下面是网友 billpwchan 投稿的两个作品,大家可以体验一下。
(1)桜幻想(Sakura Fantasy):坐摇橹船,漂流在樱花盛开的河道,可以切换春夏秋冬、早晚、晴雨雪。(#12067)
(2)赛博九龙:对香港九龙半岛建模,还原生成了9373栋楼。(#12103)
它使用计算机视觉和投影技术,可以通过灯泡看到360度的场景,也可以投影到各个位置的物体上。
上周,Deno 宣布被 Cloudflare 收购,未来一年将只发布错误修复和安全更新,然后就彻底结束。
想当初,Deno 诞生时,各种豪言壮语,要改变 Node.js 不合理、不好用的种种弊端,比如臃肿难用的依赖、没有权限控制、不支持 TypeScript 等等。
它通过各种创新,或多或少接近了这些目标,但最终还是黯然收场,令人叹息。
它的结局其实在2024年就注定了。当时,它发布2.0版,大规模兼容 Node.js。这意味着,它对于走自己的路,已经丧失了信心,不再计划打败 Node.js,而是让用户不用修改代码,就能在它上面运行。
但是,我已经能用 Node.js 运行代码了,何必改用一个模仿 Node.js 行为的运行时呢?
这一次,创始人 Ryan Dahl 也坦陈,正是这个原因导致他要放弃 Deno。
"我曾全身心投入到 Deno 中,付出了最多的心血。但我现在认为,它不再是我发挥最大作用的地方。
Deno 中有一些不错的想法,它的工程设计也很精良,但它最终并没有解决什么重大问题。它已经被 Node.js 兼容性的引力所束缚,被迫完全按照 Node.js 的模式运行。
为什么要重新实现 Node.js 呢?它现在就能用。仅仅提升性能、用户体验或安全性是不够的。"