-
-
Geo-Pulse : Home Page
-
Geo-Pulse : World Dashboard
-
Geo-Pulse : World Dashboard
-
Easter egg : Team Info
-
Geo-Pulse : Layers
-
Geo-Pulse : Layers
-
Geo-Pulse : Layers
-
Geo-Pulse : Conflict Layers
-
Geo-Pulse : Layers
-
Geo-Pulse : Country Info
-
Geo-Pulse : Country Info
-
Geo-Pulse : Country Info
-
Geo-Pulse : App Info
Geo-Pulse
A weather radar for geopolitics
Inspiration
We live inside a constant scroll. Headlines refresh by the minute, alerts stack up, and global tension arrives fragmented into tweets, tickers, and breaking banners. Understanding what is actually happening in the world often requires hours of anxious digging, with very little sense of proportion.
For storms and hurricanes, we have weather radars.
For geopolitics, we had noise.
Geo-Pulse was born from a simple question:
What if you could take the planet’s geopolitical pulse in a single glance?
Instead of text-heavy feeds, we imagined a cinematic, situation-room style interface. Something closer to sci-fi than spreadsheets. A system that compresses millions of data points into visual intuition, letting patterns emerge instantly rather than hiding inside articles.
In short, we set out to build a Weather Radar for Geopolitics.
What it does
Geo-Pulse is a real-time, interactive intelligence dashboard that visualizes global sentiment and stability.
The Living Map
A vector-based world map where countries are color-coded by current stability.
Green signals relative positivity, red highlights conflict, and blue indicates neutrality.AI-Driven Analysis
Selecting a country triggers Google Gemini 3 Flash to scan live news headlines via Google Search. The system analyzes current socio-political conditions and produces a normalized Sentiment Score ranging from -1.0 to +1.0.Conflict Tracking Layer
An autonomous layer that detects and visualizes active war zones and civil unrest. Historical conflicts are filtered out so the focus remains on what is unfolding today.Deep Insights
Beyond a single score, Geo-Pulse provides:- 7-day predictive outlooks
- Sector sentiment breakdowns (Economy vs Politics)
- Environmental context such as Air Quality Index
- 7-day predictive outlooks
Strategic Overlays
Optional layers reveal strategic assets including Nuclear States, Space Ports, and AI Hubs. Each is animated with context-aware visuals like pulsing targets or rotating radiation symbols, turning raw data into immediate spatial awareness.
How we built it
Geo-Pulse is a modern Single Page Application designed for performance, scalability, and type safety.
Frontend
Built with React 18 and TypeScript. Tailwind CSS powers the glassmorphism UI and layered animations.The Map Engine
D3.js handles all geospatial rendering. Instead of relying on off-the-shelf map libraries, D3 gave us low-level control to implement custom vector effects and the signature “Stellar Flow” ocean particle system.The Brain (AI)
Powered by the Google GenAI SDK usinggemini-3-flash-preview.
We enforced JSON Schema Mode to guarantee structured outputs and used Google Search Grounding so every analysis is anchored to current, verifiable events rather than model memory.Database & Caching
Firebase Firestore acts as a smart cache. A custom scheduler stores reports for 22 hours, reducing API usage and costs while still allowing users to force fresh analysis when needed.Data Pipeline
A custom SyncManager batches AI requests, manages concurrency, and introduces controlled delays to prevent rate-limit errors, allowing the system to scale to global coverage.
Challenges we ran into
Map Performance vs Visual Fidelity
Rendering 200+ interactive SVG paths alongside animated particle systems caused lag on lower-end devices. We solved this using ResizeObserver throttling andvector-effect: non-scaling-stroke, offloading heavy calculations to the GPU.AI Hallucinations vs Live Reality
Early versions occasionally surfaced historical conflicts as active. Tight prompt engineering, explicit “current active status” constraints, and strict Google Search Grounding eliminated this issue.API Rate Limits
Global analysis hits quotas quickly. The SyncManager queue system batches requests and spaces them intelligently to stay within Requests-Per-Minute limits.Data Normalization
Different data sources reference countries inconsistently. A normalization layer maps GeoJSON features to canonical database keys, preventing duplication and drift.
Accomplishments we’re proud of
The Cinematic Feel
Geo-Pulse doesn’t look like an admin dashboard. Breathing conflict zones, drifting ocean stars, and a subtle gyroscopic interface make the system feel alive.Robust Error Handling
A custom “System Critical Failure” screen captures React errors and provides copy-ready logs and diagnostics, turning crashes into actionable feedback.The Conflict Layer
Getting the AI to autonomously detect, verify, and map active conflicts without human curation was a major milestone in automated intelligence.Smart Historical Archiving
The Daily Archive system builds historical charts organically as the app runs, enabling trend analysis without relying on expensive historical data APIs.
What we learned
D3.js is powerful and unforgiving
Mastery required deep understanding of projections, coordinate systems, and SVG internals.Prompt engineering is logic design
Reliable structured output demands strict schemas and clear negative constraints that define what the AI must not do.Perceived performance matters
Even when data takes seconds to load, terminal-style animations like “Triangulating Coordinates…” turn waiting into part of the experience.
What’s next for Geo-Pulse
Gemini Live Integration
A voice-driven mode where users can speak directly to the map.
“Geo-Pulse, show countries with high inflation and political instability.”Timeline Replay
Snapshot storage and time-lapse playback to watch conflicts emerge, spread, or resolve over months.Economic Correlation Layers
Overlaying live stock market and crypto data to visualize how geopolitical sentiment ripples through global finance.Mobile App
Porting the experience to React Native to bring the situation room into your pocket.
Log in or sign up for Devpost to join the conversation.