用自然语言指挥一颗实时地球:God’s Eye View 开源了,那个刷屏的「间谍卫星」终于可以自己跑

用自然语言指挥一颗实时地球:God’s Eye View 开源了,那个刷屏的「间谍卫星」终于可以自己跑

你有没有想过,打开一个网页,看到的不是静态地图,而是一颗正在实时呼吸的地球——飞机划过天空,船舶穿越海洋,卫星在头顶排队划过,国际空间站正好从基辅上空经过?

这个画面在 YouTube 上已经红了两年多。制作者 Bilawal Sidhu 用它做出了数百万播放的「上帝视角」系列,评论区最常见的留言是:这真的不是监控系统吗?

答案是不——它比监控系统的数据来源更透明。8 月 24 日,Bilawal Sidhu 把这个项目正式开源,命名为 God’s Eye View。四天内冲上 GitHub Trending 第一,拿下 Product Hunt Top 10,目前累计约 12,000 颗星,日均增长约 1,870 颗——对于一个没有做任何付费推广的个人项目,这个速度说明它的视觉冲击力是真实的。


它到底是什么

一句话:一个运行在浏览器里的实时 3D 地球,把公开的 OSINT 信号聚合到同一个界面。

13 个图层,其中 10 个完全不需要任何 API Key,打开就有:

  • 航班追踪:来自 OpenSky Network 和 adsb.lol,数以千计的航班实时位置
  • 军用航班:ADS-B 广播的军事飞行器,琥珀色标注
  • 船舶追踪:AISStream 实时数据(需要免费 Key,无 Key 则不显示)
  • 卫星轨道:CelesTrak 传播推算,约 840 个人造天体,包括完整的 Starlink 壳层
  • 地震监测:USGS 过去 24 小时全球地震活动
  • 路况:TomTom + OSM(无 Key 则为标注为”模拟”的近似数据)
  • 公共摄像头:约 800 个城市摄像头(奥斯汀、加州、英国伦敦),画面投影到 3D 城市空间
  • 全球电台:Radio Browser 收录的多至 750 个电台,可拖动调谐杆切换,地球飞到每个广播塔所在位置
  • 共享单车:实时可用车辆
  • 野火:NASA FIRMS 实时火点(需要免费 Key)
  • 航天发射:Launch Library 2,30 天内发射任务,含载荷和回收详情
  • 军事设施标注:OpenStreetMap 社区维护的标注,标注为”不完整”
  • 静态基础设施:4,351 个数据中心、704 座水坝、712 条海底光缆

唯一的必填 Key 是 Google Maps API——用来渲染那颗照片级真实的 3D 地球。它是整个项目唯一的付费依赖,Google 每月提供 1,000 次免费 3D Tile 会话,每次最长 3 小时,个人探索基本不会耗尽免费额度。


视觉冲击背后的真实工程

光看截图和 GIF,你可能会觉得这是个花架子 demo。安全研究员 Jang Young Jeong 做了一次源码审计,发现了值得认真对待的部分——三层边界设计

第一层:进程边界。 README 自述这是”浏览器应用”,但实际架构远比这复杂。负责密钥管理的不是浏览器,而是 Vite 开发服务器——在审计的提交版本中,vite.config.js 有 7,383 行,注册了 24 个 /api/* 中间件,实质是一个完整的本地 API 网关。OpenAI Key 永远不离开服务端,浏览器只拿到一个短期会话令牌(ephemeral session token)。

第二层:模型边界。 语音 Agent 只有 28 个固定工具,分属四个任务类型:相机控制、地图标注、情报查询、全局操作。没有 eval、没有文件系统工具、没有可注入的原始 URL。退一万步讲,就算模型被劫持,它能做的最坏操作是”把相机飞到某个地点”和”标注一条线”。成本有硬上限:voiceCost.js 里 warnUsd = 2,capUsd = 5,$5 之后会话自动关闭。

第三层:数据边界。 每个图层的状态——实时(live)、延迟(delayed)、插值(interpolated)、估算(estimated)、模拟(simulated)、不可用(unavailable)——都是 UI 的第一等公民,标注清晰,不会让用户把演示画面误认为真实发生的事件。模拟的流量明确标注 SIMULATION,相机会标注 ESTIMATED POSE,火箭上升回放标注 RECONSTRUCTED ESTIMATE。


用它能做什么

项目自带几个「五分钟上手任务」,跑完你会理解它的核心价值:

跟随机舱视角。 追踪一架正在进近的航班,点击 COCKPIT,视角切换到驾驶舱内部——地形在身下移动,支持 NVG(夜视镜)、FLIR(红外)、CRT 等七种 GLSL 传感器皮肤。飞完一次,你不会再说”AI 编程是未来”这种话——你会在一个真正的战术显示屏前沉默。

用嘴控制地球。 加一个 OpenAI Key($5 封顶),就可以说”带我去东京,选择最近的一架航班”、”标注得克萨斯州的边界”、”离这儿最近的摄像头在哪”。28 个工具,4 个任务类型,指令自然,不需要记命令。

摄像头接力。 看到一艘船,点击它,跟踪其轨迹,然后点击 CCTV NEAREST,画面切换到该船附近的公共摄像头——真正做到零切换成本的态势联动。

24 小时军事轨迹回放。 选中一个军事飞行器,系统静默回填约 24 小时历史轨迹,显示为堆叠的 3D 环形飞行记录。这是社区标注数据的价值——它告诉你某个基地的直升机最近在做什么训练,而不是只显示一个当前位置。


它不适合谁

不适合需要专业导航的人。 项目 README 明确写了:不要把它用于飞行导航、海事航行、应急响应或任何安全关键决策。数据可能延迟、缺失、错误,这个警告写在第一屏,不是在免责条款的角落里。

不适合需要商业级数据深度的人。 ADS-B 航空数据本身有盲区(山区、海洋、高纬度地区信号弱),AIS 船舶数据在大洋中央也会静默。商业服务 Flightradar24 和 MarineTraffic 的数据覆盖更完整,但它们是付费闭源服务。God’s Eye View 的诚实之处在于它不假装覆盖完整。

不适合期待开箱即用的非技术用户。 需要 Node.js 24.14.x 或 26.x,需要自己注册 Google Maps API Key(一键安装向导还在开发中)。项目 README 贴心地给了一个 prompt,可以直接丢给 Claude Code 或 Cursor,让 AI 帮你完成全部安装步骤——这大概是最诚实的”非开发者友好”解决方案了。


代码本身值得看

这不是一个”AI 生成代码”的产物。整个客户端零框架依赖:package.json 里只有 CesiumJS、satellite.js(SGP4 轨道传播)、mgrs、egm96-universal 和几个向量瓦片库。没有 React,没有状态管理库。

但它有 154 个 .test.mjs 单元测试文件 + 39 个 Puppeteer 驱动的 qa-.mjs 集成测试脚本。代码覆盖率不低——这个体量的个人项目,能把验证框架搭得这么完整,本身就是一种信号:作者不是在做一个展示品,而是在做一个愿意长期维护的东西。


项目边界:它明确划定了什么不能做

作者在 GitHub 页面写得很清楚:不追踪个人,不做人脸识别,任何引入这两类功能的 PR 不会被合并。 这是经过认真考虑的伦理边界,而不是临时加的免责声明。


什么时候它真正有意思

当你在 3D 地球上看完一次地震数据,然后立刻点击附近摄像头看实地画面的时候。

当你追踪一艘货轮,看到它正在驶向长滩港,然后切到该港口的公共摄像头看实况的时候。

当你说一句”带我去看 ISS”,然后它真的一直播放到国际空间站从你头顶飞过的时候。

数据从来不是问题——公开数据源到处都是。问题是界面。God’s Eye View 把十几个来源的数据放进了同一个可以”飞进去”的界面,然后告诉你:每一比特数据都是公开的,都是你可以验证的,都是你可以在代码里追溯来源的。

这不是一个间谍工具。这是一面镜子——照的是这个世界上正在被广播出去的一切。


下一步

  • 直接跑起来:需要 Node.js 24.14.x 或 26.x,一把 Google Maps API Key($0~6/月),三行命令:git clonenpm installnpm run dev
  • GitHubgithub.com/bilawalsidhu/gods-eye-view
  • YouTube 演示系列:作者本人制作的完整功能演示,播放量超过 500 万
  • 源码审计报告:想深入理解它的安全架构,推荐阅读 akillness.github.io
  • 关注社区图层扩展:作者已表示欢迎提交新数据源和城市摄像头包的 PR,13 个图层只是起点

评论区

0 条评论

登录后可评论。