东京塔、铁路、高架和成片亮起的窗户,被装进了一个可以在浏览器里切换的城市。项目把公开城市数据、程序生成细节和时间控制放在同一个场景里。东京因此从一张模型地图,变成了可以被浏览的运行中画面。
图注:视频画面中的东京塔、周边街区和设置面板;右侧控制项可以切换时间、交通、云层和渲染效果。
01
这座东京,先从真实数据长出来。
项目名称是 Procedural Tokyo。作者在 X 帖子中展示了涩谷、东京站和芝一带的可切换场景,项目 README 则列出了更多区域。每个区域都不是凭空搭出的城市背景,而是从公开城市资料编译出来的可加载地图。
建筑轮廓、道路、桥梁、铁路和地形来自三组公开资料。它们分别是日本 PLATEAU、OpenStreetMap 与国土地理院高程数据。PLATEAU 还提供建筑高度、用途,以及部分屋顶和墙面照片。项目把这些记录编译成可按区域加载的瓦片。
项目文档把城市内容分成两层。建筑、道路和地形尽量接近公开数据;立面细节、窗户、交通、夜间灯光、天气和水面反射,则由程序继续生成。
02
程序生成的部分,负责让城市开始运转。
真实建筑数据先确定城市的形状。视频里那些让人觉得“像城市”的变化,来自另一套运行规则。车辆沿着道路网络行驶,列车沿真实铁路线路移动。信号灯会变化,街灯和车灯也会改变道路光照。
图注:原帖视频片段中的东京夜景;车辆、列车、建筑窗光和街道照明同时出现在城市视图里。
夜景也不是一张固定贴图。项目用时间滑块或东京实时钟驱动太阳、月亮、天空、阴影和曝光。窗户按规则逐渐亮起,东京塔和霓虹广告进入夜间状态。云层还会改变城市视图中的遮挡与光影。
它和静态城市渲染图的差别,也在这里。读者看到的是一组可以调节的关系。时间、交通密度、云层、灯光和观察距离改变,画面就随之改变。
03
真正有趣的地方,在数据和想象的交界处。
项目没有把所有细节都伪装成测绘结果。README 明确写出,窗户、店铺招牌、广告牌、街边物件、车辆和鸟群等内容会由程序补上;广告还是虚构的,不使用真实品牌或角色。
这种分层让城市既保留了地点识别度,也获得了互动场景需要的连续变化。东京塔仍然位于芝公园一带,铁路仍然沿着城市中的线路展开;但窗光、车流、云层和鸟群会让同一个区域每次打开都出现不同状态。
图注:视频后段的高架与铁路场景;项目把道路层级、桥梁、车辆和列车放进同一套城市空间。
作者说自己因为想念东京而做了这个项目。代码已经公开,网页也可以直接打开。它让公开城市数据多了一种阅读方式。人们可以从空中飞过东京,也可以把时间拨到夜里,看城市怎样随规则、数据和想象持续变化。
来源:jeantimex 的 X 帖及 Procedural Tokyo GitHub 项目;日本国土交通省 Project PLATEAU;OpenStreetMap;日本国土地理院。