3D 版新宿站
文章摘要
这是开发者 satoshi7190 制作的一个基于 Three.js 的交互式 3D 演示:把东京新宿站——世界上最繁忙的铁路车站——的整个室内空间以线框/体块的形式立体呈现出来。数据源并非自行测绘,而是来自日本国土交通省公开的「新宿站周边室内地图数据(屋内地図データ)」,作者对这份政府数据做了清洗和转换,再用 Three.js 渲染成可自由旋转、缩放、平移的三维模型。项目用 Vite 作为构建工具,源码在 GitHub 上以 MIT 协议开放(satoshi7190/Shinjuku-indoor-threejs-demo),作者还在 Qiita 上写了一篇详细的实现文章。演示页面提供了图层开关,可以分别显示/隐藏站台层、行人通道网络(歩行者ネットワーク)等,让人看清各层之间的垂直关系。
这个演示之所以在 HN 上获得近 300 分,很大程度上是因为它把一件所有到过新宿站的人都体感强烈、却从未被可视化过的事实摊开来了:新宿站根本不是一个「车站」,而是一个跨越地下多层与地上多层、由无数通道相互穿插的立体迷宫。演示中层与层之间的垂直间距被刻意夸张了,目的是让通道走向和换乘关系看得清楚,代价是那些代表自动扶梯的斜线看上去角度陡得不真实——这也成了评论区讨论最多的技术细节之一。
从可视化设计的角度看,这个项目的价值在于它证明了「把开放政府数据搬进浏览器」这条路的可行性与表现力。它没有贴图、没有材质、没有光照,只有线框和半透明体块,却比任何写实渲染都更清楚地传达了空间的拓扑结构。评论里最常被提到的观感是「像电子游戏的地图界面」——有人说像《最终幻想 7》的米德加,有人说像《银河战士 Prime》的地图(「只差彩色门了」),有人说像《毁灭战士》的关卡,还有人说像《攻壳机动队》里的计算机 UI。这种「游戏地图美学」恰恰说明了线框可视化在传达三维拓扑上的效率。
值得注意的是,演示覆盖的范围其实并不完整。有长期通勤者指出地图至少缺了三分之一:与新宿三丁目站的连接通道被硬生生截断,通往南口的隧道和另外三个站台也缺失。这个截断来自政府原始数据的边界,而不是作者的取舍。
HN 评论精华
评论区几乎变成了「新宿站受害者互助会」,同时夹杂着对可视化细节的技术考据,以及一场关于「新宿站的指示牌到底清不清楚」的激烈争论。
-
doctoboggan / kazinator:都提出了同一个技术疑问——那些倾斜的箭头是什么?角度太陡不像扶梯或楼梯,又不是电梯需要的 90 度垂直。ant6n 和 thenthenthen 确认就是自动扶梯,只是层高被刻意夸张以便看清结构。Karliss 给出了最细致的分析:有些斜线其实是「拓扑连接」而非几何写实,比如两侧都有门的电梯,把对面的两个门连起来自然就产生了斜度;有些可能是螺旋楼梯;地下的层间距确实可能更大(列车隧道要在河底相互穿越),但地上 2F 到 4F 之间绝不可能有五倍层高的空隙。kazinator 还提了个很好的功能建议:加一个控制垂直缩放比例的滑块,就像那个著名的机械手表动画可以自由控制爆炸视图的展开程度一样。
-
SapporoChris 抛出了一个引发长串争论的观点:不要做站内实时定位导航 App,因为车站太挤,通勤者没工夫绕开一群盯着手机的人;正确做法是提前熟悉大致布局,不用全记,只记你要走的那一段,站内头顶和地面都有充足的指示牌。ranger_danger 强烈反对,称指示牌「极其令人困惑,经常从各个方向互相指向对方」,并贴出了多张照片举证:两块牌子互指、多块牌子同时指向相反方向指着同一个目标、东口和西口的箭头指向同一个方向。razorbeamz(住在东京)逐条反驳,认为这些牌子都指向了牌面上写的目的地,只是同一个目的地有多条路径、不同位置的牌子指向同一终点,不叫「互指」。pezezin 站在游客一方:「指示牌主要是给初来者用的,如果你需要花大量时间才能熟悉一个地方,那牌子就是没用的。」dwaite 提出了更普适的批评:问题在于指示在经过岔路后不再重复或更新,让导航变得有压力。epolanski 补充了一个客观因素——新宿站正在大规模翻修,有些指示牌本身就已经过时了。
-
figmert 的一句玩笑「现在只需要一个能把你的位置映射到这个 3D 空间的 App,就终于能轻松导航新宿了」引出了上面整场争论,他后来澄清自己只是开玩笑,并说在伦敦的小站也遇到过同样的痛苦。
-
lmm 提出了一个反主流的看法:新宿其实不是最糟的——它很大,但每个区域都有自己鲜明的气质,你不会搞不清自己在哪;真正最糟的是池袋,那里有太多地方让你转身 180 度、或上下一层楼,看到的场景一模一样。javchz 则给出了实用建议:自认在大型建筑里方向感很好(可能是玩电子游戏的副作用),但新宿彻底教育了他——「那玩意儿是现实版的银河恶魔城关卡」,千万不要买只剩 5 分钟就要发车的票,至少留 15 分钟。alfg 的诀窍是:告诉朋友随便找个东口出去,反正你要去的地方大概率在那边,而且站外比站内好导航得多。
-
ggm 分享了一段沉重的经历:他本来没有人群恐惧症,但在一次农业展的地下通道踩踏事件后得了这个毛病;下班高峰前的新宿让症状复发,他基本上是逃出来在树下坐了一个小时。他形容那种「有序但无情的蚁群感」比东京站和池袋都更甚。al_borland 说自己下飞机后第一个要导航的车站就是新宿,长途飞行后又不知道方向对不对,那大概是他最接近恐慌发作的时刻——他只想找到通往地面的路好让 GPS 能用。epolanski 提供了一个换算视角:如果你要跟每一个在一天里进入新宿站的人打招呼,每人一秒,需要不间断地打 35 天。
-
nayuki 提了一个很受欢迎的产品想法:把这份数据改造成第一人称导航游戏,随机把玩家丢在站内某处,要求导航到另一处——这会是首次造访新宿站的绝佳训练。Rendello 说他买恐怖游戏《8 号出口》时正是期待这个,结果整个游戏只发生在一条走廊里(虽然依然很好玩)。lkois 补充了对比:新宿是「无特征的重复感」带来的迷失,而涉谷站则是更像埃舍尔画作的体验——你常常能看见远处正是要去的地方,但每条路每个转弯都把你带进完全不同的空间,而且几乎不会更接近目的地。
-
socalgal2 指出了数据完整性问题:地图至少缺了三分之一,与新宿三丁目站的连接通道被任意截断,通往南口的隧道和三个站台也缺失;他认为「隧道并没有在地图显示的地方结束」这一点有误导性。cyberrock 查证后确认截断来自政府原始数据,还缺了都庁前和西新宿。socalgal2 则纠正说都庁前和西新宿本来就没有地下人行连接,必须上地面再下去。他还提到东京站和日本桥站正在做地下连通工程,届时将有 10 个车站被地下通道连成一体,那会是另一份值得可视化的数据。
-
mawadev 一句「非常酷而且非常流畅」道出了工程质量;mzs 补上了 GitHub 仓库链接;jihoons 和 maderalabs 都在追问能不能做东京其他车站或其他城市的版本。JKCalhoun 注意到当天 HN 首页同时有这个线框演示和一个高斯泼溅(Gaussian splat)的大教堂——「泼溅那个确实惊艳,但我还是更喜欢线框」。