The Open-Source, Plugin-Driven Geospatial Intelligence Engine
A modular situational awareness platform designed to ingest live data streams and render them as interactive, cinematic layers on a high-fidelity CesiumJS 3D globe.
WorldWideView is a real-time geospatial engine visualizing live global data on an interactive 3D globe. Utilizing a dynamic "All-Bundle" plugin architecture, independent data sources—like live aircraft, maritime vessels, or conflict events—are ingested and rendered decoupled from the core 3D viewer.
- "All-Bundle" Plugin Architecture: Ingest any data source dynamically without touching the core platform.
- High-Fidelity 3D Rendering: Google Photorealistic 3D Tiles and LOD modeling powered by CesiumJS.
- Real-Time Data Pipeline: High-frequency WebSocket updates managed by a custom
DataBus. - Advanced Entity Management: Automatic horizon culling, chunked primitive rendering, and 3D stacking/spiderification.
- Marketplace Integration: Download and sync new plugins directly from the UI.
- Frontend: Next.js 16 (App Router), React 19, TypeScript 5
- 3D Engine: CesiumJS + Resium (Google Photorealistic 3D Tiles)
- State Management: Zustand
- Event Bus: Custom typed
DataBusfor high-frequency WebSocket updates - Database: PostgreSQL via Prisma 7
- Deployment: Docker multi-stage build, Coolify
WorldWideView separates the data acquisition layer from the frontend rendering loop, using a real-time event bus to bridge them.
flowchart TD
subgraph Data Sources
A[Public APIs] -->|Poll| B[Data Engine Seeders]
C[Microservices] -->|Stream| B
end
subgraph Frontend Pipeline
B -->|WebSocket /stream| D[DataBus & WsClient]
D -->|Hydrate| E[Zustand Store]
E -->|Memoized Entities| F[Entity Renderer]
F -->|Primitives| G[CesiumJS Globe]
end
subgraph Plugins
H[Plugin Registry] -->|Load| I[Dynamic Import CDNs]
end
H -.-> D
Before running the application, ensure you have the following installed:
- Node.js (v18+)
- pnpm (v9+)
- Docker (for self-hosting or full local dev)
- PostgreSQL (or rely on the
coolify-db/ local compose container)
WorldWideView uses a multi-stage Dockerfile designed for standalone output. To deploy instantly on your own server:
Mac/Linux:
mkdir worldwideview && cd worldwideview
curl -fsSL https://raw.githubusercontent.com/silvertakana/worldwideview/main/setup.sh | bashWindows (PowerShell):
mkdir worldwideview; cd worldwideview
Invoke-WebRequest -Uri https://raw.githubusercontent.com/silvertakana/worldwideview/main/setup.ps1 -UseBasicParsing | Invoke-ExpressionNote
Ensure you connect a PostgreSQL database via the DATABASE_URL environment variable for production deployments.
To run the source code locally for contributing or developing:
git clone https://github.com/silvertakana/worldwideview.git
cd worldwideview
pnpm install
pnpm run setup # generates .env.local with AUTH_SECRET
pnpm run dev:all # boots the UI, cache layers, and the data engineVisit http://localhost:3000 to see the live globe.
The codebase utilizes a pnpm monorepo configuration:
worldwideview/
├── src/ # Core frontend app
│ ├── app/ # Next.js App Router (pages, API routes)
│ ├── components/ # Shared UI, Globe panels, and 3D layouts
│ ├── core/ # DataBus, Polling, PluginManager, Store
│ └── plugins/ # Built-in plugins and registry logic
├── packages/ # Monorepo packages
│ ├── wwv-plugin-sdk/ # SDK interfaces and manifest schemas
│ └── wwv-plugin-*/ # Individual plugins & their backends
├── prisma/ # Database schemas & migrations
└── .agents/ # Agent rules, workflows, and documentation
WorldWideView operates on an open-core philosophy. The platform itself is data-agnostic; all data sources are dynamically imported as plugins at runtime.
- Plugin Quickstart Guide: Learn how to scaffold and link your first plugin using the
@worldwideview/cli. - Advanced Plugin Guide: Deep dive into microservice data seeders, WebSockets, complex 3D rendering, and Marketplace publishing.
WorldWideView is distributed across several specialized repositories:
worldwideview(This Repo): Main frontend, CesiumJS rendering engine, and core plugin framework.wwv-data-engine: Open-source community data backend for polling public APIs.worldwideview-plugins: First-party maintained plugins.worldwideview-marketplace: The web application driving the plugin directory.worldwideview-web: Marketing and landing site.
- Branching & Commits: We strictly enforce Conventional Commits (
feat:,fix:,refactor:). Every commit should utilize our semantic versioning[/commit]workflow. - Coding Standards: We emphasize vanilla CSS (no Tailwind), strict TypeScript 5, and file modularity (max 150 lines per file).
- Testing: We use Vitest with
jsdom. All new core logic should be accompanied by tests, running viapnpm test.
See Docs: Development and Docs: Testing for more details.
We welcome community contributions! Please review our coding standards and PR processes before submitting code. For detailed instructions on local development and setting up your environment, see our CONTRIBUTING.md.
This project is licensed under the MIT License - see the LICENSE file for details.
Explore our comprehensive documentation suite for detailed engineering insights:
- Project Overview: High-level value proposition and technology stack.
- Architecture: DataBus event stream and Zustand state management.
- Build System: Monorepo structure, Next.js standalone output, and Docker builds.
- Development: Coding conventions and common implementation patterns.
- Testing: Vitest setup and coverage targets.
- Deployment: Coolify integration and persistent volumes.
- Files Catalog: Comprehensive mapping of core source files.
Important
Fair-Use Notice: This application may contain copyrighted material the use of which has not always been specifically authorized by the copyright owner. Such material is made available for educational purposes, situational awareness, and to advance understanding of global events under "fair use" (Section 107 of the US Copyright Law).
