sanztheo/SeeYou

GitHub: sanztheo/SeeYou

一个运行在浏览器的实时全球情报平台,通过 3D 可视化聚合多源实时数据以实现统一监控与态势感知。

Stars: 12 | Forks: 3

# SEEYOU SeeYou — Real-time global intelligence platform
**Real-time global intelligence platform running in the browser.** Track aircraft, satellites, earthquakes, wildfires, cyber threats, naval vessels, military bases, nuclear sites, space debris, and more — all rendered on a 3D globe with military-grade shaders. 20+ live data layers. 25+ free APIs. Zero cost. [Getting Started](#getting-started) · [Features](#features) · [Architecture](#architecture) · [Data Sources](#data-sources)

## 什么是 SeeYou? SeeYou is a full-stack intelligence platform that aggregates real-time data from 25+ public APIs and renders everything on an interactive CesiumJS 3D globe. Every data point is real — live aircraft transponders, orbital mechanics calculations, seismic readings, satellite-detected fires, geopolitical events, and more. The entire stack runs locally with no paid services.
## 特性 ### 监控层 | Layer | Description | Source | |-------|-------------|--------| | **Aircraft** | 30,000+ live flights — position, callsign, altitude, heading, vertical speed | adsb.lol ADS-B | | **Satellites** | 10,000 orbital objects with SGP4-propagated positions and orbit paths | CelesTrak TLE | | **Space Debris** | 63,000 tracked objects — debris, rocket bodies, analyst objects | CelesTrak / Space-Track | | **CCTV Cameras** | 800+ live video feeds from 30+ cities across 6 continents | TfL, NYC DOT, Caltrans, and more | | **Traffic** | Animated particle flow on real road networks | OpenStreetMap Overpass | | **Weather Radar** | Global radar overlay with temporal animation | RainViewer | | **Temperature** | Global temperature heatmap overlay | OpenWeatherMap | | **Air Quality** | Global AQI heatmap overlay (US EPA scale) | WAQI / AQICN | | **Wind** | 4,000-particle wind flow with IDW interpolation | Open-Meteo | | **METAR** | Aviation weather stations with flight categories (VFR/MVFR/IFR/LIFR) | aviationweather.gov | | **Natural Events** | Active wildfires, storms, volcanoes, floods | NASA EONET | ### 情报层 | Layer | Description | Source | |-------|-------------|--------| | **Earthquakes** | Live seismic activity with animated shockwaves from epicenters | USGS GeoJSON | | **Wildfires** | Satellite-detected active fires with radiative power | NASA FIRMS | | **Submarine Cables** | Global undersea cable network and landing points | TeleGeography | | **Military Bases** | 2,000+ installations worldwide — air, naval, ground | Wikidata | | **Nuclear Sites** | 440+ reactors and weapons facilities with status | IAEA | | **Naval Vessels** | Sanctioned ships tracked via AIS with alert flags | AIS data | | **Cyber Threats** | Animated attack arcs between source and target countries | ThreatFox, AbuseIPDB | | **Geopolitical Events** | Global news and conflict events geolocated in real-time | GDELT | | **Space Weather** | Aurora oval, Kp index, solar storm alerts | NOAA SWPC | | **Convergence Alerts** | Multi-signal warnings when layers intersect geographically | Internal engine | ### 军事情报 - **IMM-EKF Prediction** — Interacting Multiple Model Extended Kalman Filter predicts military aircraft trajectories 5 minutes ahead using 4 motion models - **Pattern Detection** — Automatic orbit, combat air patrol, holding pattern, and transit classification using circle fitting and bimodal heading analysis - **Tactical Shaders** — GLSL post-processing: Night Vision (NVG), FLIR Thermal, CRT Display, Anime Cel-Shading - **HUD Overlays** — Per-shader heads-up displays with targeting reticles, coordinate readouts, and status indicators ### 界面 - Retractable sidebar with per-layer filters and counters - Universal search across all data domains (Cmd+K) - SVG minimap with viewport rectangle - UTC timeline with time navigation - Click-to-inspect popups for every data layer - Intelligence legend with active layer indicators - Keyboard shortcuts for shaders, fullscreen, and navigation
## 技术栈 ``` Frontend React 19 · TypeScript · Vite · TailwindCSS · CesiumJS (Resium) · GLSL Shaders · Web Workers Backend Rust · Axum · Tokio · 18 Workspace Crates · SGP4 · nalgebra Infrastructure Redis 7 · Docker Compose · WebSocket ```
## 快速开始 ### 先决条件 | Tool | Version | |------|---------| | Node.js | 20+ | | Rust | 1.75+ | | Docker | 24+ (optional, only for full local infra) | | Cesium Ion Token | Free — [sign up here](https://ion.cesium.com/) | ### 设置 ``` # 克隆 git clone https://github.com/sanztheo/SeeYou.git cd SeeYou # 配置环境 cp .env.example .env # 编辑 .env — 添加你的 Cesium Ion 令牌 ``` ### 运行选项 #### 选项 A — Railway 基础设施(无本地 Docker,如果你的数据库/Redis 在 Railway 上则推荐) If your `.env` uses Railway services and **Redpanda is not publicly reachable**, set: ``` BUS_ENABLED=false ``` Then run only 2 terminals: ``` # 终端 1:后端(端口 3001) cd backend cargo run -p server # 终端 2:前端(端口 5173) cd frontend npm install npm run dev ``` Do **not** run `consumer_redis` / `consumer_postgres` unless you have a reachable public broker (`REDPANDA_BROKERS_PUBLIC`). #### 选项 B — 完整本地总线堆栈(Docker + Redpanda 消费者) ``` # 基础设施 docker compose up -d redis postgres redpanda surrealdb # 终端 1:后端 cd backend cargo run -p server # 终端 2:Redis 消费者 cd backend cargo run -p consumer_redis # 终端 3:PostgreSQL 消费者 cd backend cargo run -p consumer_postgres # 终端 4:前端 cd frontend npm install npm run dev ``` Optional graph consumer: ``` cd backend cargo run -p consumer_graph ``` #### tmux 辅助(4 个窗格) ``` # 默认铁路模式(无 Docker,如果代理仅为内部则自动禁用消费者) ./scripts/dev-tmux.sh # 强制消费者 RUN_CONSUMERS=1 ./scripts/dev-tmux.sh # 首先启动本地 Docker 基础设施 ./scripts/dev-tmux.sh seeyou-dev --docker ``` Open **http://localhost:5173**. The globe loads immediately. Live data streams in within seconds. ### 验证 ``` # 后端健康检查 curl http://localhost:3001/health # → {"status":"ok","redis":"connected"} # WebSocket — 打开浏览器开发者工具 → 网络 → WS 标签页 # 你应该每 2 秒看到 AircraftBatch 消息 ```
## 架构 SeeYou follows a **poll-cache-broadcast** architecture. The Rust backend continuously polls external APIs, caches results in Redis with TTL, and broadcasts updates to all connected clients via WebSocket. The React frontend renders everything on a CesiumJS 3D globe using GPU-batched Primitive Collections. ``` External APIs (25+) │ │ HTTP polling (2s – 30min) ▼ ┌─────────────────────────────────────────┐ │ Rust Backend (Axum) │ │ │ │ 18 crates · 8 background trackers │ │ IMM-EKF prediction · SGP4 propagation │ │ Redis cache (15s – 24h TTL) │ │ REST API + WebSocket broadcast │ └────────────────┬────────────────────────┘ │ │ WebSocket (chunked JSON) │ REST (JSON) ▼ ┌─────────────────────────────────────────┐ │ React Frontend (Vite) │ │ │ │ 20+ CesiumJS Primitive layers │ │ GLSL post-processing shaders │ │ Zero external state libraries │ │ BillboardCollection / PointPrimitive │ │ ~20 GPU draw calls (down from 8000+) │ └─────────────────────────────────────────┘ ``` ### 项目结构 ``` SeeYou/ ├── frontend/ React + CesiumJS SPA │ └── src/ │ ├── components/ 33 domain component groups │ ├── hooks/ State management (zero dependencies) │ ├── services/ REST API clients │ ├── shaders/ GLSL post-processing │ ├── types/ TypeScript interfaces │ └── workers/ Web Workers ├── backend/ Rust workspace │ └── crates/ │ ├── server/ Entry point — Axum, config, AppState │ ├── api/ REST route handlers │ ├── ws/ WebSocket broadcast layer │ ├── cache/ Redis caching with TTL │ ├── services/ ADS-B + METAR trackers │ ├── prediction/ IMM-EKF trajectory prediction │ ├── cameras/ 6-provider aggregation + health checks │ ├── satellites/ CelesTrak TLE + SGP4 │ ├── events/ NASA EONET │ ├── weather/ Open-Meteo grid │ ├── traffic/ Overpass API road parser │ ├── cables/ Submarine cable network │ ├── seismic/ USGS earthquake data │ ├── fires/ NASA FIRMS fire detection │ ├── gdelt/ Geopolitical event stream │ ├── maritime/ AIS vessel tracking │ ├── cyber/ Cyber threat intelligence │ └── space_weather/ NOAA space weather ├── docs/ Documentation (Docsify) └── docker-compose.yml Redis infrastructure ``` ### 性能 All visualization layers use imperative CesiumJS Primitive Collections instead of the Entity API. Every billboard, label, and point is batched into a single GPU draw call per collection. | Metric | Value | |--------|-------| | GPU draw calls (all layers active) | ~20 | | FPS with 20+ layers enabled | 50-60 | | Aircraft update latency | ~2 seconds | | Satellite propagation | SGP4 with WGS-84 | | Prediction horizon | 300 seconds | | Wind particle count | 4,000 | | Max concurrent aircraft | 30,000+ | | Max tracked orbital objects | 63,000+ |
## 数据源 All data is fetched from free, public APIs. Optional API keys unlock extra layers (temperature, air quality). | Source | Data | Polling | |--------|------|---------| | adsb.lol | Aircraft positions (ADS-B) | 2s | | CelesTrak | Satellite TLE / space debris | 60s | | USGS | Earthquake events | 5min | | NASA FIRMS | Active wildfires | 30min | | NASA EONET | Natural disasters | 30min | | GDELT | Geopolitical events | 15min | | NOAA SWPC | Space weather, aurora | 15min | | TeleGeography | Submarine cables | 24h | | ThreatFox / AbuseIPDB | Cyber threats | 15min | | aviationweather.gov | METAR stations | 5min | | Open-Meteo | Weather grid | 10min | | RainViewer | Radar tiles | 5min | | OpenWeatherMap | Temperature heatmap | On | | WAQI / AQICN | Air quality heatmap | On-demand | | Overpass API | Road networks | On-demand | | TfL / NYC DOT / Caltrans | CCTV camera feeds | 5min | | Wikidata | Military bases | Static | | IAEA | Nuclear sites | Static |
## 键盘快捷键 | Key | Action | |-----|--------| | `1` | Night Vision shader | | `2` | FLIR Thermal shader | | `3` | CRT Display shader | | `4` | Anime shader | | `5` | Reset to normal | | `F` | Fullscreen | | `B` | Toggle sidebar | | `/` or `Cmd+K` | Search |
## 环境变量 ``` # 必需 VITE_CESIUM_ION_TOKEN= # Free from https://ion.cesium.com VITE_WS_URL=ws://localhost:3001/ws VITE_API_URL=http://localhost:3001 REDIS_URL=redis://127.0.0.1:6379 # 可选 — 天气热图层 VITE_OPENWEATHER_API_KEY= # Free from https://home.openweathermap.org/api_keys VITE_WAQI_TOKEN= # Free from https://aqicn.org/data-platform/token/ # 可选 — 后端调优 SERVER_HOST=0.0.0.0 SERVER_PORT=3001 POLL_INTERVAL_SECS=2 SATELLITE_POLL_INTERVAL_SECS=60 CAMERA_POLL_INTERVAL_SECS=300 METAR_POLL_INTERVAL_SECS=300 WEATHER_POLL_INTERVAL_SECS=600 EVENTS_POLL_INTERVAL_SECS=1800 ```
## 许可证 This project is proprietary and is not open source. Copyright (c) 2026 Theo Sanz. All rights reserved. No use, copy, modification, distribution, deployment, resale, scraping, AI training, benchmarking, or derivative work is allowed without prior written permission from the owner. Permission requests: sanztheopro@gmail.com If this repository is public on GitHub, only the limited rights required by GitHub's platform and Terms of Service apply there (for example, viewing and forking on GitHub). No broader permission is granted. See [LICENSE](LICENSE) and [TERMS.md](TERMS.md) for the full terms.
标签:3D地球可视化, ADS-B航空监控, Axum框架, CCTV视频流, CesiumJS, HTTP/HTTPS抓包, React前端, Redis缓存, Rust后端, SEO实时监控, WebSocket流, 交通流量监控, 免费API, 全球监控平台, 军事目标追踪, 卫星轨道追踪, 可视化界面, 地理空间分析, 地震监测, 多图层叠加, 天气雷达, 实时地理情报, 实时数据聚合, 态势感知, 搜索引擎查询, 本地部署, 浏览器运行, 空气质量监测, 空间碎片监测, 网络威胁监控, 自动化攻击, 请求拦截, 野火监测, 风场流可视化