# sdkkfkshk/gods-eye-view architecture

> Architecture diagram of the GitHub repository sdkkfkshk/gods-eye-view, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sdkkfkshk/gods-eye-view
- Repository: https://github.com/sdkkfkshk/gods-eye-view

## Overview

God’s Eye View is a browser-based globe for exploring live public signals, tracking entities, and creating voice-driven or cinematic views. The principal workflow is: a user searches or selects a target, the application loads and presents map layers, and the user explores, tracks, analyzes, or shares the result. The graph preserves separate feed, rendering, analysis, voice, and scene-authoring stages. Some subsystem links reflect README capabilities and tree paths; unsampled implementation details and uncertain call wiring are intentionally omitted.

Main entry points: [`src/ui/composition.js`](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/ui/composition.js) (Interface), [`src/app/catalog.js`](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/app/catalog.js) (Layer catalog), [`server/providers/live.js`](https://github.com/sdkkfkshk/gods-eye-view/blob/main/server/providers/live.js) (Live data providers), [`src/app/application.js`](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/app/application.js) (Application)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Globe experience"]
  node_application["Application<br/>[application.js]"]
  node_ui["Interface<br/>[composition.js]"]
  node_globe["Globe and camera<br/>[viewer.js]"]
  node_map["Map sources<br/>[controller.js]"]
end

subgraph group_feeds["Signals and layers"]
  node_layer_catalog["Layer catalog<br/>[catalog.js]"]
  node_live_data["Live data providers<br/>[live.js]"]
  node_flight_layer["Aircraft and contacts<br/>[index.js]"]
  node_vessel_layer["Vessel tracking<br/>[index.js]"]
  node_weather_layer["Weather and wind<br/>[index.js]"]
  node_cctv_layer["Public cameras<br/>[index.js]"]
end

subgraph group_exploration["Search and analysis"]
  node_search["Place search<br/>[index.js]"]
  node_tracking["Target tracking<br/>[camera.js]"]
  node_analyst["Analyst queries<br/>[analystEngine.js]"]
  node_annotations["World annotations"]
end

subgraph group_voice["Voice interaction"]
  node_voice["Realtime voice agent"]
end

subgraph group_scenes["Scenes and sharing"]
  node_director["Scene director<br/>[director.js]"]
  node_data_packs["Scene data packs<br/>[controller.js]"]
  node_sharing["Scene sharing<br/>[sharing.js]"]
end

node_user(("Explorer"))
node_openai{{"Realtime AI service"}}
node_external_feeds{{"Public data feeds"}}

node_user -->|"interacts"| node_ui
node_ui -->|"controls"| node_application
node_application -->|"composes"| node_globe
node_application -->|"loads layers"| node_layer_catalog
node_application -->|"configures maps"| node_map
node_layer_catalog -->|"offers layer"| node_flight_layer
node_layer_catalog -->|"offers layer"| node_vessel_layer
node_layer_catalog -->|"offers layer"| node_weather_layer
node_layer_catalog -->|"offers layer"| node_cctv_layer
node_flight_layer -->|"loads signals"| node_live_data
node_vessel_layer -->|"loads signals"| node_live_data
node_weather_layer -->|"retrieves forecasts"| node_external_feeds
node_cctv_layer -->|"loads camera data"| node_live_data
node_live_data -->|"requests data"| node_external_feeds
node_ui -->|"accepts queries"| node_search
node_search -.->|"geocodes names"| node_external_feeds
node_ui -->|"selects target"| node_tracking
node_tracking -->|"moves camera"| node_globe
node_analyst -->|"reads loaded records"| node_live_data
node_voice -.->|"connects"| node_openai
node_voice -->|"runs spoken queries"| node_analyst
node_voice -->|"creates marks"| node_annotations
node_ui -->|"authors scenes"| node_director
node_director -->|"loads shot data"| node_data_packs
node_director -->|"shares scenes"| node_sharing

click node_application "https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/app/application.js"
click node_ui "https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/ui/composition.js"
click node_globe "https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/app/viewer.js"
click node_map "https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/maps/controller.js"
click node_layer_catalog "https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/app/catalog.js"
click node_live_data "https://github.com/sdkkfkshk/gods-eye-view/blob/main/server/providers/live.js"
click node_flight_layer "https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/layers/flights/index.js"
click node_vessel_layer "https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/layers/vessels/index.js"
click node_weather_layer "https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/layers/weather/index.js"
click node_cctv_layer "https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/layers/cctv/index.js"
click node_search "https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/search/index.js"
click node_tracking "https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/camera.js"
click node_analyst "https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/data/analystEngine.js"
click node_annotations "https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/annotations/annotationEngine.js"
click node_voice "https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/voice/realtimeController.js"
click node_director "https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/scenes/director.js"
click node_data_packs "https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/scenes/dataPacks/controller.js"
click node_sharing "https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/scenes/sharing.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_application,node_ui,node_globe,node_map toneBlue
class node_layer_catalog,node_live_data,node_flight_layer,node_vessel_layer,node_weather_layer,node_cctv_layer toneAmber
class node_search,node_tracking,node_analyst,node_annotations toneMint
class node_voice toneRose
class node_director,node_data_packs,node_sharing,node_user,node_openai,node_external_feeds toneIndigo
```

## Components

### Globe experience

- [Application](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/app/application.js): `src/app/application.js`
- [Interface](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/ui/composition.js): `src/ui/composition.js`
- [Globe and camera](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/app/viewer.js): `src/app/viewer.js`
- [Map sources](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/maps/controller.js): `src/maps/controller.js`

### Signals and layers

- [Layer catalog](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/app/catalog.js): `src/app/catalog.js`
- [Live data providers](https://github.com/sdkkfkshk/gods-eye-view/blob/main/server/providers/live.js): `server/providers/live.js`
- [Aircraft and contacts](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/layers/flights/index.js): `src/layers/flights/index.js`
- [Vessel tracking](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/layers/vessels/index.js): `src/layers/vessels/index.js`
- [Weather and wind](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/layers/weather/index.js): `src/layers/weather/index.js`
- [Public cameras](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/layers/cctv/index.js): `src/layers/cctv/index.js`

### Search and analysis

- [Place search](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/search/index.js): `src/search/index.js`
- [Target tracking](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/camera.js): `src/camera.js`
- [Analyst queries](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/data/analystEngine.js): `src/data/analystEngine.js`
- [World annotations](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/annotations/annotationEngine.js): `src/annotations/annotationEngine.js`

### Voice interaction

- [Realtime voice agent](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/voice/realtimeController.js): `src/voice/realtimeController.js`

### Scenes and sharing

- [Scene director](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/scenes/director.js): `src/scenes/director.js`
- [Scene data packs](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/scenes/dataPacks/controller.js): `src/scenes/dataPacks/controller.js`
- [Scene sharing](https://github.com/sdkkfkshk/gods-eye-view/blob/main/src/scenes/sharing.js): `src/scenes/sharing.js`

### Other components

- **Explorer**
- **Realtime AI service**
- **Public data feeds**

## Connections

- Explorer → Interface: interacts
- Interface → Application: controls
- Application → Globe and camera: composes
- Application → Layer catalog: loads layers
- Application → Map sources: configures maps
- Layer catalog → Aircraft and contacts: offers layer
- Layer catalog → Vessel tracking: offers layer
- Layer catalog → Weather and wind: offers layer
- Layer catalog → Public cameras: offers layer
- Aircraft and contacts → Live data providers: loads signals
- Vessel tracking → Live data providers: loads signals
- Weather and wind → Public data feeds: retrieves forecasts
- Public cameras → Live data providers: loads camera data
- Live data providers → Public data feeds: requests data
- Interface → Place search: accepts queries
- Place search → Public data feeds: geocodes names
- Interface → Target tracking: selects target
- Target tracking → Globe and camera: moves camera
- Analyst queries → Live data providers: reads loaded records
- Realtime voice agent → Realtime AI service: connects
- Realtime voice agent → Analyst queries: runs spoken queries
- Realtime voice agent → World annotations: creates marks
- Interface → Scene director: authors scenes
- Scene director → Scene data packs: loads shot data
- Scene director → Scene sharing: shares scenes
