A real-time geospatial intelligence platform. Combines a photorealistic Cesium 3D globe with a comprehensive backend serving live environmental data, satellite imagery, 150 real scientific equation engines, physics simulations, realtime voice, and AI-driven cognition. Unlike a passive globe viewer, Terranoetis computes — it runs literature-grounded equations over live data, reasons about what it sees, and paints real results back onto the Earth.
Documentation site → https://sreyassanker.github.io/Terranoetis
- 150 analytical models grounded in primary literature across 26 domains — every equation cites its source paper, book, or standard (80 references carry a DOI, 12 an ISBN, 4 are flagged NO-DOI) (catalog · verified engine page)
- Photorealistic CesiumJS 3D globe with 41 rendering modules, satellite imagery, and sensor styles
- 7 physics simulations — 3 run locally on CPU (earthquake, wildfire, hurricane); 4 execute on free Kaggle kernels (tsunami, volcano, landslide, flood). All kernels are NumPy/CPU code; only flood-sim requests Kaggle's GPU accelerator in its metadata (verified modes table)
- AI cognition — System 1 / System 2 reasoning, multi-agent debate, causal + counterfactual analysis
- 82 registered live-data integrations — seismic, weather, aviation, maritime, satellite, traffic, space (inventory)
- Realtime voice — OpenAI Realtime → Gemini Live (server-side brokering)
- Explainable AI — evidence chains, uncertainty quantification, human-override workflow
- Global model selector — pick any LLM provider (or local GGUF) from the AI chat panel
- One-click model install — download the local LFM 2.5 2.6B Q4_K_M GGUF model directly from the admin panel with live progress, speed, ETA, and resume-on-interrupt
- Smart study-area flow — auto-detects real OSM boundaries, or lets you draw/adjust one
- Worldwide timezone support — set your location + timezone; all timestamps follow it
git clone https://github.com/sreyassanker/Terranoetis.git
cd Terranoetis
cp .env.example .env # Fill in API keys as needed
npm install
npm run dev # Vite (3000) + Express API (3001); Redis optionalRedis is optional — the server falls back to SQLite automatically if Redis is unavailable. See Deployment guide for the full Docker + production setup.
| Document | Covers |
|---|---|
| Architecture (web) | System topology, request flow, background services, module inventory |
| API Reference (web) | 360+ REST endpoints + WebSocket channel |
| Frontend (web) | React components, rendering engine, simulation overlays, hooks |
| Backend (web) | Server modules, cognition, memory, security, observability |
| Analytical Models (web) | The 150 equation engines, 7 parts, 26 domains |
| Deployment (web) | Docker, environment variables, Kaggle token setup, CI/CD, security |
The full rendered site lives at https://sreyassanker.github.io/Terranoetis/ —
diagrams, tables and navigation included. The GitHub Pages site (from docs/) opens
with a product landing page
(landing) and a navigation-first documentation hub
(documentation hub) with per-capability pages carrying
file-level citations, measured verification data and a CI quality gate. Highlights:
Getting started ·
Hazard simulations ·
Methodology & verification.
terranoetis/
├── src/ # React 19 + CesiumJS frontend
│ ├── main.tsx # Router: /, /v2/globe, /v2/canvas, /v2/scenarios, /v2/tours
│ ├── App.tsx # Globe shell (~11k lines, 11 lazy-loaded panels)
│ ├── components/ # UI components (chat/, cockpit/, scenarios/, kaggle/, ...)
│ ├── rendering/ # 41 Cesium rendering modules (ais, flights, satellites, ...)
│ ├── hooks/ # useChat, useWebSocket, useRealtimeVoice, ...
│ ├── lib/ # API client, chat store, formatTime, DuckDB, PDF
│ ├── data/ # Analytical models catalog, land cover classes
│ ├── store/ # Zustand: chat store, user location/timezone prefs
│ └── __tests__/ # Frontend unit tests
│
├── server/ # Express 4 + TypeScript API
│ ├── index.ts # App entry: routes, middleware, background services (14,573 lines)
│ ├── agent.ts # Intent router + cognition pipeline
│ ├── analytical-models/ # 150-equation engine, 7 parts, 26 domains
│ ├── cognition/ # System 1 / System 2, MCTS, tree-of-thoughts
│ ├── sentinel/ # Continuous monitoring, anomaly detection
│ ├── memory/ + memoryV2/ # Working/episodic/semantic/procedural memory
│ ├── ai-router/ # Omninet 9-provider LLM router (incl. local GGUF)
│ ├── sandboxV2/ # Simplified surrogate engines (farsiteLite, adcircLite, wrfLite, hysplitLite, FNO)
│ ├── causal/ + kgV2/ # Causal reasoning + knowledge graph
│ ├── scenarios/ # Disaster scenario generation
│ ├── data/ # Live-data fetchers (82 registered sources)
│ ├── db/ # SQLite schema (47 tables), migrations
│ ├── middleware/ # JWT auth, rate limiter, validation, audit
│ ├── observability/ # Pino, in-house OpenTelemetry-style tracing, Sentry
│ ├── selfImprover.ts # Feedback-driven prompt evolution
│ └── __tests__/ # 1,700+ tests (1,653 unit + 49 integration passing)
│
├── kaggle-kernels/ # 7 NumPy physics kernels pushed locally or to Kaggle (earthquake, tsunami, ...)
├── server/plugins/ # Plugin drop-in dir (auto-loads *.ts; installed plugins gitignored, example.ts tracked; system: pluginManager.ts)
├── docs/
│ ├── site/ # The GitHub Pages website — everything below deploys to sreyassanker.github.io/Terranoetis
│ │ ├── index.html # Product landing page (generated)
│ │ ├── documentation.html # Documentation hub (generated)
│ │ ├── capabilities/ · reference/ · governance/ · narratives/
│ │ ├── assets/ (css · img · gallery — animated WebP captures used by the README and landing)
│ │ ├── markdown/ # ARCHITECTURE · API · BACKEND · FRONTEND · MODELS · DEPLOYMENT · getting-started
│ │ └── platform-overview.html # Legacy URL — redirects to the docs index
│ └── Research papers/ # Source PDFs backing the equation citations → local-only (gitignored)
│
├── e2e/ # Playwright browser tests (7 spec files; 15 test declarations, 14 registered by default — 1 gated behind LULC_HEAVY=1)
├── scripts/ # Dev utilities, live smoke scripts, docs build + quality gate
├── data/ # Runtime databases + ML models → gitignored
├── models/ # Local GGUF model (downloadable from admin panel) → gitignored
├── public/ # Static assets (DuckDB-WASM, fonts, offline data; Cesium synced from node_modules at build; models gitignored)
│
├── docker-compose.yml # 3 services (terranoetis + redis + causal-service)
├── Dockerfile # Multi-stage build (node:20-alpine)
├── .github/workflows/ci.yml # 10 CI jobs (typecheck, lint, tests, coverage, build, docker, audit, browser, summary)
├── package.json # 96 dependencies, 14 scripts
├── tsconfig.json # Project references: app + node + server + scripts
├── vite.config.ts # Vite 7 config with a custom Cesium asset-copy plugin
├── playwright.config.ts # Playwright: WebGL args, reuse server
└── vitest.config.ts # Vitest: include server + frontend tests
| Command | Purpose |
|---|---|
npm run dev |
Concurrent: server + client (+ Redis if available) |
npm run dev:client |
Vite dev server on :3000 |
npm run dev:server |
Express API on :3001 |
npm run build |
tsc -b && vite build |
npm test |
Vitest — unit + integration tests |
npm run test:unit |
Unit tests only |
npm run test:integration |
Integration + e2e tests |
npm run test:coverage |
Coverage report |
npm test # Vitest — unit + integration tests
npx playwright test # Playwright — Chromium with software WebGL (SwiftShader); runs headless in CITerranoetis is licensed under the Business Source License 1.1 (BUSL-1.1).
- Free to use, run locally, self-host for yourself, modify, learn from, and contribute.
- Commercial use — offering Terranoetis (or a modified version) to third parties as a hosted / embedded / SaaS service, or embedding it in a product you sell — requires a separate commercial license. Contact: sreyassanker001@gmail.com.
- Each version automatically converts to the MIT License 4 years after it is published.
Third-party components (CesiumJS, ONNX models, satellite data sources, etc.) remain under their own original licenses.
Copyright (c) 2026 Sreyas S S.



