3D globe visualization
Full description: Read the full narrative
The client renders live data and simulation outputs on a WebGL globe. “GPU” in this layer refers to rendering primitives (PostProcessStage shaders, custom Cesium Primitives) — not to GPU compute in the simulation kernels.
| Item | Value | Verification |
|---|---|---|
| Rendering modules in src/rendering/ | 41 TS modules | file count excluding .DS_Store and shpjs.d.ts declaration |
| Lazy panels in App.tsx | 11 (const Lazy…Panel = lazy(...)) | grep count src/App.tsx:135-145 |
| App shell size | 11,038 lines | wc -l src/App.tsx |
| Routes | / · /v2/globe · /v2/canvas · /v2/scenarios · /v2/tours | src/main.tsx:22-26 |
| Cesium version | 1.140 | package.json dependencies.cesium |
| Photorealistic tiles | Google 3D Tiles, Cesium Ion asset 2275207 (needs token) | src/rendering/photorealisticGlobe.ts |
| Sensor looks | CRT · NVG · FLIR · Noir · Snow via PostProcessStage GLSL | src/rendering/sensorStyles.ts |
Simulation overlays
Each hazard kernel result lands on the globe through src/components/kaggle/: a generic scalar raster overlay (colormap + legend + animation timeline) plus per-hazard wrappers (PGA/PGV/MMI/Sa · water depth · wind+surge+rainfall · debris depth/velocity/runout · wave height+bathymetry · ash+lava · fire intensity/state). GPU primitives (ScalarSurfacePrimitive, ArrowFieldPrimitive, ParticleAdvector) handle field rendering; “honest 2D mode” flat-drapes fields when terrain is unavailable src/components/kaggle/KaggleScalarOverlay.tsx:105-112.
Interface surfaces (excerpt from FRONTEND.md)
- Chat (11 components: SSE streaming, tool approval cards, model tier selector, study-area prompts)
- Cockpit (memory graph, settings: cognitive bias, alerts, providers, privacy)
- Trackers (aviation, satellite TLE), DuckDB-WASM analytics workbench (7 live layers), Market Intel (8 tabs)
- Scenario studio (editor, gallery, cinematic director, per-hazard visualizers; origin points pinned by globe click)
- Collaboration presence (cursors/typing) over /ws/agent; realtime voice via /ws/voice
Component tables and line counts: FRONTEND.md (corrected).