God's Eye View 开源解读:13 路公开数据流,把实时情报工作台装进浏览器

GitHub 趋势榜上,bilawalsidhu/gods-eye-view 的 star 数已经站上 7800,单日新增接近 2000,是目前全网增速最快的开源项目之一。仓库协议 MIT,自我介绍只有一句话:跑在浏览器里的间谍卫星模拟器,只是所有数据都是真的。

开源发布:God's Eye View 完整界面形态

项目来自同名 YouTube 视频系列,前身叫 WorldView,系列累计播放超过 500 万次。作者 Bilawal Sidhu 给出的开源理由是社区投票:是否开源由观众投票决定,票数一边倒,于是代码全部公开。

OSINT 的瓶颈是界面,信号早就有了

项目的核心判断写在 README 开头:大多数开源情报(OSINT,从公开渠道收集与分析信息的工作方式)是一堆浏览器标签页的堆叠。信号本身并不稀缺——民航客机在广播应答机遥测,船舶在发 AIS 信标,卫星轨道根数定期公布,地震仪和公共摄像头全天候产出数据。缺的只有一个:把这些信号放进同一个"地方"的界面。

God's Eye View 用照片级 3D 地球充当这个"地方"。渲染层是 CesiumJS 加 Vite,底图可以在 Google Photorealistic 3D Tiles、Bing 卫星影像和 OSM 之间切换。航班、船舶、卫星、地震、拥堵、公共摄像头,全部实时叠加在同一个三维坐标系里。整个项目没有用前端框架,纯 Vanilla JavaScript,源码按图层拆成一个个独立模块,读起来和二次开发都不难。

数据真实性分级是这个项目做得最细的部分。README 明确说明:客户端刻意让航班渲染滞后真实时间一个轮询周期,用来在已知坐标点之间做平滑插值;没有接入实时数据的图层会明确标注 simulated;火箭发射上升段的回放标注 RECONSTRUCTED ESTIMATE(重建估计);每个图层保持自己的来源与新鲜度状态可见,partial、delayed、simulated、unavailable 四种状态一目了然。看起来像机密作战室,每一行数据却都能点开查来源。

13 个数据层,10 个零门槛

项目接入了 13 个实时图层,其中 10 个不需要任何 API key、不需要注册账号:

图层数据内容来源门槛
地图栈照片级 3D 地球 / 卫星影像 / 矢量地图Google 3D Tiles / Bing / OSMGoogle key 必需,OSM 零门槛
实时航班数千架在航飞机与航线历史OpenSky + adsb.lol匿名可用
军用航班ADS-B 军机流量,琥珀色标示adsb.lol零门槛
实时船舶全球数千艘船AISStream免费注册
卫星约 840 个目标核心目录,DENSE 开关载入整层 StarlinkCelesTrak零门槛
地震全球地震活动,最近 24 小时USGS零门槛
交通街级车流着色,俯冲到 8 公里以下可见单车流TomTom + OSM无 key 时标注为模拟
公共摄像头约 800 路公共摄像头投影进 3D 场景奥斯汀 / 加州 Caltrans / 伦敦 TfL零门槛
广播最多 750 个地理定位电台,模拟调谐器拖动即飞行Radio Browser零门槛
共享单车站点实时可用性GBFS零门槛
活跃火灾NASA FIRMS 火点检测,24 小时滚动NASA FIRMS免费注册
航天任务30 天滚动发射清单,含载荷、级段与回收详情Launch Library 2匿名可用
军事设施视口范围内的设施上下文OpenStreetMap 社区数据零门槛

内置静态数据还包括 4351 个数据中心、704 座大坝、712 条海底电缆。军事设施图层来自社区维护的 OSM,README 自己就标注它本质上不完整。摄像头图层的处理方式很诚实:位置是官方公布的,但摄像头朝向是估计值,用户可以直接在场景里拖动 gizmo 手工校准。

轨道视角:Black Sea 上空的实时航班层与卫星轨道环

让它"像真的"的四项工程

README 的 Under the Hood 一节列出的工程细节,大多在处理真实数据的粗糙:

世界稳定的图标。 飞机和船舶图标在任何相机角度下都指向真实航向,实现方式是每帧做屏幕空间航向投影。俯视、平视、锁定追踪,图标都不漂移、不反转。

碎数据平滑。 实时数据每 15 到 30 秒到达一批,渲染端落后一个周期在已知位置之间插值,间隙用航位推算(dead reckoning)填充。观感是丝滑的连续运动,底层其实是低频跳变。

诚实的卫星。 轨道位置用 SGP4 传播算法计算,轨道环通过 GMST(格林尼治平恒星时)重对齐锁定卫星,长时间追踪不漂移、不闪烁。

贴地。 实体高度经过大地水准面(geoid)垂直基准处理,再对渲染后的地形网格逐点采样。飞机会停在停机坪上,摄像头立在街角,而不是浮在半空。

配额管理同样下了功夫:付费数据源走带缓存的预算治理代理,OpenSky 有额度调节器,TomTom 有每日瓦片预算,TLE 轨道根数落盘缓存。密钥全部由服务端代理,浏览器只拿短时会话 token,密钥本身不落地前端。

28 个语音工具,四类工作

接入 OpenAI key 之后(可选,没有它整个应用照常运行),整个界面可以完全免手操作。语音代理内置 28 个工具,分四类工作:

  • 导演(direct):"带我去看东京""绕着这片区域慢速盘旋""拉远到全球视角"。
  • 标注(annotate):"画出德克萨斯州的边界"——它画出的是真实行政边界多边形,不是圈;"埃菲尔铁塔离卢浮宫多远",一支箭连过去,距离直接报出来。
  • 质询(interrogate):"德克萨斯上空现在有多少航班""哪些船正开往奥克兰""洛杉矶附近最大的火是哪个"。
  • 操作(operate):"切到夜视并打开航班图层""打开摄像头覆盖范围""播放奥斯汀附近的电台"。

代理回答前会拉取实时场景上下文,包括坐标、街道名、当前图层和视野尺度,问到"这是哪个城市"它能直接答。点击任何航班、船舶、数据中心后可以追问"这是什么",回答基于该对象的实时遥测。街景层级下它还会读取视口截图识别路牌和建筑名,并且被明确要求不得幻觉出标签。

NVG 夜视风格下的卫星层,底部是传感器切换栏

成本模型:一个人几乎花不到钱

Google 3D Tiles 是唯一硬性付费项,但计费方式比想象中宽松:账单按根图块集请求计,一次请求最多支撑 3 小时连续渲染,每月前 1000 次免费,之后约 6 美元一千次(美区定价)。单人使用基本耗不尽免费额度。OpenAI 语音按用量计费,应用内显示实时估算,2 美元预警、5 美元会话硬上限。其余大部分图层 0 成本,无需注册。

明确划出的红线

README 专门写了一段边界声明:这个项目只建模事件、资产、基础设施和系统,不做指定人物搜索、人脸识别、个人追踪,越线的 PR 不会被合并。免责声明同样直接:数据可能延迟、不完整、经建模或推断,不得用于导航、应急响应、医疗或投资决策。

跑起来只要五步

环境要求 Node.js 24.14.x 或 26.x(package.json 强制校验),唯一的必填配置是 Google Maps API key:

bash
git clone https://github.com/bilawalsidhu/gods-eye-view
cd gods-eye-view
cp .env.example .env   # 填入 GOOGLE_MAPS_API_KEY
npm install
npm run dev -- --host localhost --port 4173

开发服务器默认只绑定 localhost,密钥不出本机。macOS 下还有个细节:./scripts/dev-fresh.sh 会清 Vite 缓存并直接从系统钥匙串拉取密钥。冷启动中位数 1.86 秒(官方在 M5/Chrome 下的时点采样)。

对开发者意味着什么

这个仓库的价值有两层。第一层是现成的:一个能跑的实时空间情报客户端,13 个图层各自对应一种公开数据源的接入范式——ADS-B、AIS、TLE 轨道、GBFS、FIRMS 网格,任何一层都可以指向自己的数据源。第二层是它示范的方法论:把公开信号聚合成一个可交互的"地方",界面本身就是产品。作者在 README 末尾留了一个提示:当下数据是便宜的部分,真正贵的是历史回放——把"发生过什么"按分辨率存下来、供时间轴拖动检索,数据与算力成本都会上一个量级,团队正在做的就是这个方向(halfpixel.ai)。

仓库地址:https://github.com/bilawalsidhu/gods-eye-view ,MIT 协议,数据集各自遵循其来源条款。

来源:God's Eye View GitHub README(bilawalsidhu/gods-eye-view);GitHub Trending 数据。