YouTube 播放 500 万的『上帝视角』不是特效,作者真把它开源了
- 13 层数据中 11 层免密钥免注册运行,整合 OpenSky 航班、AIS 船舶信标、CelesTrak 卫星、USGS 地震等公开信号源
- 工程核心是落后一拍渲染加航位推算,辅以 SGP4 轨道递推、屏幕空间航向投影、大地水准面高度对齐,把稀疏公开数据做成顺滑画面
- 每层不确定性作为一等公民标注在图层说明中,模拟写模拟、估计写估计,并明确不做针对个人的搜索与人脸识别
- 语音副驾配备纯函数成本守卫模块,2 美元软预警、5 美元硬熔断,私钥调用全走本地代理带 SSRF 防护
- 项目短板包括 7 人贡献者撑起 4 千多 fork、核心体验 issue 待修、许可证附加数据源条款、免费数据天花板明显,历史回放才是真正的成本所在
2026 年 6 月,一个叫 Bilawal Sidhu 的前 Google 产品经理在他的 YouTube 频道发了一支视频。画面是一个轨道 HUD,一颗实时转动的地球,成百上千架飞机贴着真实地形飞,镜头一头扎进奥斯汀的街头摄像头,再切到 FLIR 热成像。评论区吵成两派,一派问这是哪个游戏的录屏,另一派较真地说这些航班号是真的。
这个系列后来累计播放超过 500 万。然后作者做了个社区投票,问要不要开源。投票结果一边倒。
8 月,仓库冲上 GitHub Trending 日榜和周榜第一。现在它有 23,114 颗星、4,842 个 fork,仓库叫 gods-eye-view,自我介绍一句话,浏览器里的间谍卫星模拟器,只不过数据是真的。
13 层数据,11 层不要钥匙
先把「真的」这件事拆开看。这个球上一共 13 个数据层,其中 11 层不注册不花钱就能跑。
飞机是 OpenSky 加 adsb.lol,一万一千多架实时航班,军方呼号的 ADS-B 目标单独标成琥珀色。船只是 AISStream 的全球信标。卫星是 CelesTrak 的 838 个轨道目标,按类别配色,点一下 DENSE 芯片还能把整个 Starlink 壳层铺上去。地震是 USGS 近 24 小时数据,火点是 NASA FIRMS,发射是 Launch Library 2 的滚动 30 天。
比较狠的是两个层。一个是摄像头,奥斯汀、加州 Caltrans、伦敦 TfL 的约 800 个公共摄像头,不是网页嵌窗,是投影进 3D 城市空间里,还能切开 VIEWSHED 模式看每台相机的可视域,它够得着哪、瞎在哪。另一个是广播层,Radio Browser 的最多 750 个电台做成一根模拟调谐指针,拖着针走,地球就飞到对应的电台头上。
还有一批打包的静态基础设施,4,351 座数据中心、704 座大坝、712 条海底电缆。
你想想看,这些东西没有任何一个是「机密」。航班应答机、船舶 AIS 信标、轨道根数、地震台网、公开摄像头 API,全都躺在公网上,只是从来没人把它们放进同一个球里,还配了一个间谍片的壳。项目的口号把这件事说透了,它有着机密作战室的视觉语法,但完全由公开信号和可检查的代码构成。
糟糕的数据,怎么演成间谍片
坦白讲,公开数据喂进来是很糟的。航班信标 15 到 30 秒才到一拍,卫星轨道根数是折线不是曲线,摄像头只有位置没有朝向。这个仓库真正的工程含量,是把糟糠数据做成顺滑的间谍片质感,README 的 Under the Hood 一节写了四个关键动作。
先看这根管道的全貌,从一跳一跳的信标到永不卡顿的连续飞行。
核心思路一句话,宁可落后真实世界一个区间,也不渲染一帧没到货的未来。
落后一拍渲染加航位推算。 数据 15 到 30 秒一跳,直接画就是卡顿的。它的做法是渲染时间始终落后真实时间一个区间,在两个已知坐标点之间插值,缺口用航位推算补,视觉上就成了连续飞行。
世界稳定的图标。 飞机船只在任何相机角度下都沿着真实航向指着,正俯视、贴地平线看都不变,靠的是逐帧的屏幕空间航向投影。src/data/iconOrientation.js 专门管这个,还带视平线剔除。
不飘的卫星轨道环。 SGP4 轨道递推,轨道环用 GMST 对齐实时锁回卫星本体,不会漂移,也不会每秒闪。
贴地的实体高度。 所有实体高度走真实垂直基准,大地水准面感知,还要对渲染中的地形网格取样。效果是飞机停停机坪、摄像头站街角,不悬空。
源码结构和这个思路对得上,465 个文件,src/data/ 下面一个数据层一个模块,配 adsbLolFallback.js 这种专门的降级链路,OpenSky 不行了自动切 adsb.lol。而且几乎每个模块都带同名 .test.mjs 测试,工程纪律在线。
诚实写在标签上
这个项目最打动我的不是数据量,是它对不确定性的态度。
交通层是「沿真实道路的模拟」,个体车辆位置不是实测,TomTom 的实时流速只是驱动模拟的输入,README 的图层表格里原话标注。Space Missions 层回放 Falcon 9 上升段,画面上打着 RECONSTRUCTED ESTIMATE 的标签,因为那就是重构估计。摄像头的位姿是估计先验,项目不装知道朝向,让你自己在相机上拖 gizmo 标定。军事设施图层来自社区测绘,标注是天生不完整,并且就这么写着。
每一层的不确定性,都作为一等公民写在图层说明里,不是藏在 FAQ 第 38 条。
还有一条红线写在 Responsible & Open 一节。这个项目建模事件、资产、基础设施和系统,不做针对具体个人的搜索、人脸识别、个体追踪,越线的 PR 不会被合并。原话只有一句,People are not a query type here,人不是这里的查询类型。对这么一个天然擦着监控视觉边的产品,这句话定的是产品宪法。
语音副驾,和一个 5 美元的熔断
语音是这个项目里最「agent」的部分,OpenAI Realtime 驱动,28 个工具,四类职责。指挥它,take me to Tokyo、orbit around this area、fly the route we just drew。标注它,说一句 outline the state of Texas,它画的是真实行政边界多边形,不是随手一个圈。审讯它,how many flights are over Texas right now,答案来自图层实时数据。
有意思的是它答问之前会先拉场景上下文,坐标、街道名、激活图层、视图比例尺全进 prompt,所以飞行途中问 what city is this 它知道。街景级提问会读一张视口截图做视觉 grounding,提示词里明确要求不许幻觉出招牌上没有的字。
真正让我拍案的是 src/voice/voiceCost.js。这是一个纯函数模块,浏览器语音 UI、dev server 的令牌端点、单元测试三方共用,管两件事,模型档位和花费守卫。文件头注释里写着,价率和模型 ID 是会漂移的外部事实,读取自 OpenAI 定价页,验证日期 2026-08-18,发布时必须复核。守卫侧,token 用量换算美元,2 美元软预警,5 美元硬熔断直接结束会话,麦克风旁边挂着实时花费读数,还能在 STANDARD 和 MINI 档之间切。
这套守卫的判定路径长这样。
三档出口,两美元以下是正常区,两美元预警,五美元熔断,边界全部写死在 VOICE_COST_LIMITS 常量里。
一句话,别人接语音 API 是接进去,它是给语音配了个保险丝盒。
密钥治理也顺手说一句。凡是要碰私钥的调用,OpenAI、AISStream、OpenSky OAuth、摄像头帧,全走本地服务端代理,带 SSRF 防护、响应封顶、错误脱敏,浏览器只拿短时会话令牌。局域网共享默认关闭,README 里明确警告,一个 LAN 可见的服务器会把你的 key 代办给所有够得着它的人。
批判的部分
老实讲也要讲清楚它的另一面。
第一,4,842 个 fork 背后是 7 位贡献者。这是创作者驱动的项目,Bilawal 和 Sameh Khamis 两人主导,星数和贡献者数的比例悬殊,bus factor 低。3 个月冲到 2.3 万星的速度,一半归工程,一半归那 500 万播放的视频,这个起跑线大多数项目没有。
第二,issue 区安静得反常,最高赞的标题是 No Issue But Crazy Fun Updates to Share。真痛点也摆在那,#59 Google 3D 不可用,#211 地点搜索失效,都是核心体验路径上的洞。
第三,许可证有个小坑。GitHub 页面显示 Other,实际文件是标准 MIT,只是后面追加了一段第三方数据与资产说明,数据源各带各的条款,宣传 GIF 也没授权单独复用。商用前得把 DATA_SOURCES.md 读干净。
第四,免费地板是故意做低的,天花板也很诚实。陆地 AIS 出了近海就哑,卫星 AIS、SAR、商业影像在企业合同后面。README 自己说了,这不是架构的极限,每一层都是你可以指向自己数据源的模式。
现在便宜,过去昂贵
作者在 What's Next 里留了一句内行话,写代码做这一周你就会明白,now 是便宜的部分。一旦你想回到过去,把任何像样分辨率下的「发生过什么」「改变了什么」做瓦片、做服务、做拖动回放,数据就变贵,算力就变猛。那才是长游戏。
我一直觉得这句话值得所有做数据产品的人抄在显示器上。公开数据的现在时近乎免费,历史时态是奢侈品。这个仓库把现在时做成了艺术品,而它接下来要做的 hosted 版本,商业上能不能站住,就看它敢不敢碰那个贵的部分。
可迁移的方法论也有,我愿称之为「不确定性标签化」。大多数数据产品把瑕疵藏进免责声明的最后一行,gods-eye-view 把每一层的置信度直接写在图层标签上,模拟就写模拟,估计就写估计,不完整就写不完整。信任是这么攒起来的,星数只是副产品。
仓库零 key 就能跑,npm ci 然后 npm run dev,或者 Pinokio 一键装。装完第一件事,打开卫星层,点 ISS,它会带着轨道环把你送上天。
500 万播放的道具,代码在这里,谁都能拆开看。

评论互动