3D 版新宿站

查看原文 HN 讨论

文章摘要

这是开发者 satoshi7190 制作的一个基于 Three.js 的交互式 3D 演示:把东京新宿站——世界上最繁忙的铁路车站——的整个室内空间以线框/体块的形式立体呈现出来。数据源并非自行测绘,而是来自日本国土交通省公开的「新宿站周边室内地图数据(屋内地図データ)」,作者对这份政府数据做了清洗和转换,再用 Three.js 渲染成可自由旋转、缩放、平移的三维模型。项目用 Vite 作为构建工具,源码在 GitHub 上以 MIT 协议开放(satoshi7190/Shinjuku-indoor-threejs-demo),作者还在 Qiita 上写了一篇详细的实现文章。演示页面提供了图层开关,可以分别显示/隐藏站台层、行人通道网络(歩行者ネットワーク)等,让人看清各层之间的垂直关系。

这个演示之所以在 HN 上获得近 300 分,很大程度上是因为它把一件所有到过新宿站的人都体感强烈、却从未被可视化过的事实摊开来了:新宿站根本不是一个「车站」,而是一个跨越地下多层与地上多层、由无数通道相互穿插的立体迷宫。演示中层与层之间的垂直间距被刻意夸张了,目的是让通道走向和换乘关系看得清楚,代价是那些代表自动扶梯的斜线看上去角度陡得不真实——这也成了评论区讨论最多的技术细节之一。

从可视化设计的角度看,这个项目的价值在于它证明了「把开放政府数据搬进浏览器」这条路的可行性与表现力。它没有贴图、没有材质、没有光照,只有线框和半透明体块,却比任何写实渲染都更清楚地传达了空间的拓扑结构。评论里最常被提到的观感是「像电子游戏的地图界面」——有人说像《最终幻想 7》的米德加,有人说像《银河战士 Prime》的地图(「只差彩色门了」),有人说像《毁灭战士》的关卡,还有人说像《攻壳机动队》里的计算机 UI。这种「游戏地图美学」恰恰说明了线框可视化在传达三维拓扑上的效率。

值得注意的是,演示覆盖的范围其实并不完整。有长期通勤者指出地图至少缺了三分之一:与新宿三丁目站的连接通道被硬生生截断,通往南口的隧道和另外三个站台也缺失。这个截断来自政府原始数据的边界,而不是作者的取舍。

HN 评论精华

评论区几乎变成了「新宿站受害者互助会」,同时夹杂着对可视化细节的技术考据,以及一场关于「新宿站的指示牌到底清不清楚」的激烈争论。