ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

gods-eye-view 浏览器开源 OSINT 地球完整拆解:真实数据如何变成可交互的 3D 情报台

gods-eye-view 浏览器开源 OSINT 地球完整拆解:真实数据如何变成可交互的 3D 情报台

gods-eye-view 浏览器开源 OSINT 地球完整拆解:真实数据如何变成可交互的 3D 情报台

【免费下载链接】gods-eye-viewA spy satellite simulator in your browser, except the data is real. Live open source spatial intelligence on a photorealistic 3D globe.项目地址: https://gitcode.com/GitHub_Trending/go/gods-eye-view

2026 年 8 月,一个自称"间谍卫星模拟器"的开源项目同时登顶 GitHub 日榜与周榜第一,docs/PERFORMANCE.md 记录的实测数字是:Apple M5 + Chrome 150 下冷启动就绪中位数 604.8 毫秒,初始稳定约 1.86 秒,运动与静止场景均跑满 60 FPS,JS 堆约 105 MiB。这就是 gods-eye-view:一个跑在浏览器里的实时开源情报(OSINT)3D 地球,叠加 11,000 余架实时航班、838 颗卫星、约 4,000 台公共摄像头等二十余个图层。读完这篇文章,你会知道它解决什么问题、怎么十分钟跑起来、源码里哪几个设计值得抄,以及它的边界在哪里。

一、它解决了什么

传统 OSINT 工作流的样子是:curl拉 OpenSky、表格整理 AIS 坐标、2D 地图打点——数据都在,态势却被切碎在几十个窗口里。gods-eye-view 做的事,是把已经在公开网络上广播的信号装进同一个坐标系:OpenSky 与 adsb.lol 播航班、AISStream 播船舶、CelesTrak 播轨道根数、USGS 播地震、NOAA 播风场与雷达,全部投影到同一颗照片级真实感的 CesiumJS 地球上。

DATA_SOURCES.md 里有一份完整的信源清单,其中最关键的数字是:二十余个图层中,十八个存在无需任何 API Key 的路径。目标用户很清晰——OSINT 爱好者、GIS 开发者、做地理教学的讲师、以及想给空间数据找可视化出口的新闻团队。README 自己说得很直白:"Half the magic is that it looks like a forbidden cockpit. The other half is that every line of code is inspectable."

但把 20 多个实时源塞进浏览器,第一件事要回答的问题是:用户手里什么都没有的时候,地球从哪里来?

二、快速上手与第一体验

零密钥是硬底线。最省事的路径是装 Pinokio 8.2+ 后点 Install 再点 Start;开发者路径则是:

git clone https://gitcode.com/GitHub_Trending/go/gods-eye-view cd gods-eye-view && npm ci && npm run doctor && npm run dev

然后打开http://localhost:4173。还有一条 Docker 路径:docker compose up,密钥与缓存落在.env和.gev-cache/里,端口只绑定 127.0.0.1。启动面板给出四个首航任务——Live Contacts、Space Missions、Environmental、Explore Manually。

第一眼的体验链条是这样的:点亮Flights图层,几千架飞机在真实遥测上滑行;点任意一架,镜头锁定、尾迹画出、实时遥测卡弹出;按COCKPIT钻进座舱,沿真实地形贴地下降,中途按1–7在 CRT、NVG、FLIR 之间切换传感器皮肤。

再打开奥斯汀上空,开启Cameras图层,公共摄像头不是网页浮层,而是投影进 3D 城市空间;从城市级拥堵一路俯冲进街口摄像头视角,是 README 里推荐的经典动线:

体验层面几乎无门槛,但下一个问题是:20 多个实时源加照片级瓦片,这套前端在工程上凭什么不卡?

三、内部设计拆解

答案不在"堆料",而在一组克制的设计决策。挑四个最有说服力的看。

3.1 底图降级阶梯:钱决定地球有多真

selectMapStartupRoute在 src/maps/google3d.js 里只有几行判断:有 Google 密钥走google-direct,有免费 Cesium ion token 走google-ion,都没有则回退 Esri 卫星影像加无密钥地形、OSM 兜底。loadPhotorealisticTileset进一步把这条阶梯做成"逐路由尝试、失败即降级":direct 路由挂了,ion 是恢复路径;连 ion 都没有,返回osm并带上错误列表。设计意图是"功能不因密钥缺失而缺失"——用户少一张卡,只损失画质,不损失任何图层。这是它能做到"零密钥启动"的核心。

3.2 工具定义一次,MCP 与语音双适配器

docs/TOOLS.md 描述的架构是:工具用defineTool定义一次,返回"一句给人看的话 + 一个给程序的 JSON 对象",然后经composeCatalog分别暴露为 MCP(JSON-RPC)与 function-calling 两个适配器。src/tools/index.js 的coreTools注册了 40 个查询,从aircraftInArea到nextSatellitePass。依赖方向被npm run check:boundaries强制校验:src/tools/不碰任何渲染、浏览器全局或 Node 代码。语音侧 src/voice/gevActions.js 再把同一套命令映射成三十个语音动作——"圈出德克萨斯州"画的是真实边界多边形而非圆圈。一次定义、双协议暴露,意味着任何支持 MCP 的 Agent 客户端(Claude Desktop、Codex、ChatGPT Desktop)都能直接驱动这颗地球。

3.3 诚实状态机:每个图层先交代自己

src/data/feedState.js 的layerFeedState把各图层五花八门的统计信息归一化成七个状态:nominal、loading、degraded、stale、partial、fallback、unavailable。比如 OpenSky 无可用快照时落到adsb.lol兜底,状态就显式标记fallback;语音引擎回答"德克萨斯上空有多少架飞机"时会主动声明数据是否过期、是否处于回退。README 里也毫不掩饰地标注:交通图层是"沿真实道路的车辆模拟",摄像头朝向是"估计先验",火箭回放是RECONSTRUCTED ESTIMATE。"看起来像真的"与"就是真的"之间的每一处落差,都被显式打上了标签。

3.4 可拆解的应用骨架

src/app/application.js 的createApplication只接受四个构造器createScene、createControls、createData、createTools,按固定顺序启动、逆序销毁,状态机走created → starting → ready → destroying/destroyed;每个组件构造时拿到一个defer(cleanup),要求在await之前注册清理函数,启动失败时按序回滚全部已获取的资源。加上卫星过境预测在 src/data/satellitePass.js 用satellite.js的 SGP4 在浏览器里本地传播(24 小时窗口、二分到亚秒),这套代码是"可测试、可拆解、可二次组装"的,而不是一个演示大屏。

那么,这套架构开放出来后,社区已经拿它做了什么?

四、生态与二创

官方留出的扩展点相当多。其一,MCP 服务器:docs/MCP_SETUP.md 给出约一分钟的接入步骤,server/mcp/stdio.js指向本地应用的/api路由,Claude、Codex、ChatGPT Desktop 都能在对话里直接开出活体地球,支持show_in_globe_panel这类 MCP Apps 视图资源。其二,语音工具层是插件化的:工具目录、指令模式、function-calling 适配彼此解耦,社区已有把第三方大模型接进来实现中文语音指挥的改造实践。其三,独立 CLI 成像工具链:tools/README.md 记录了五个脚本——tools/sat-ortho.mjs 用墨卡托瓦片数学并行下载并拼接卫星瓦片,默认 zoom 21 输出约 6.4 厘米/像素的正射影像;tools/cesium-render.mjs 用 Puppeteer + SwiftShader 在无 GPU 服务器上渲染 CesiumJS 场景。这等于把数据采集、地理配准、影像合成全部脚本化。其四,事件包:public/events/bhote-koshi-2026/ 内置尼泊尔 Bhote Koshi 洪水场景(洪泛路径、目击信源、灾前灾后影像),可回放可分享。

README 把仓库定位为"基线"而非成品——"the whole point is for you to break things and bolt on layers we haven't thought of yet"。作者也在"下一步"里提醒:回溯历史、按真实分辨率回放"发生了什么",才是数据真正变贵的地方。

但娱乐化的外壳下,边界画得清楚吗?

五、边界与限制

边界是项目自己划的,且划得比多数同类项目狠。docs/KNOWN-ISSUES.md 逐条挂着活跃问题:密集城区快速平移时交通图层加载不均(两级瓦片加载 + 6000 点硬上限部分缓解)、CCTV 面板默认折叠"看起来消失了"、地形楼层暖机期 30–60 秒的高度基准残差、卫星过境可见性是纯几何估计(忽略天气与星上亮度)、HLS 直播视频最多同时两路且失败后降级为静态帧。docs/PERFORMANCE.md 也明确说这不是最低硬件配置——检测框开到 100% 时帧率降到约 34 FPS,CCTV 图层冷启动需 19.6 秒。

数据与许可层面,DATA_SOURCES.md 把 MIT 许可严格限定在代码上:所有第三方数据保留各自协议,其中 TeleGeography 海底电缆数据(CC BY-NC-SA)是非商用的——商业用户删掉一个自包含文件夹即可合规。语音侧 OpenAI 有 $5 硬上限,Google 3D 直连路线每月前 1000 次会话免费但需开启计费并设预算告警。伦理红线写在 README.md 里:本项目只建模事件、资产、基础设施与系统,不为人名搜索、人脸识别或个体追踪构建功能,"People are not a query type here"。README 同时用醒目提示声明:数据可能延迟、不完整或错误,不得用于航行、应急或任何安全关键决策。

<输出文章>

(注:以上为正文主体,结语与剩余图片见下方续接)

结语:它是一块画布,不是一台神器

gods-eye-view 适合谁?想让地理与航天教学"可骑乘"的讲师、需要免费态势底座的应急与城市运营团队、想给自己的空间数据找出口的开发者——它免费起步、代码可查、每个模块可单独复用。不适合谁?指望它当生产级监控、拿它做导航或决策依据的人,README 的第一行免责声明就是给你的答案。而它自己给出的定位或许是最诚实的一句:"This repo is the baseline, it stays open"——这个仓库是基线,它保持开放,目的就是让你来破坏它、挂上我们还没想到的图层。

【免费下载链接】gods-eye-viewA spy satellite simulator in your browser, except the data is real. Live open source spatial intelligence on a photorealistic 3D globe.项目地址: https://gitcode.com/GitHub_Trending/go/gods-eye-view

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进