← Live GlobeUse Case 27

Global Conflict Monitor

2025 · Active Armed Conflicts & Displacement

UNHCR 2024: 117 million people forcibly displaced globally — a record high.

This visualization presents factual data from ACLED, UNHCR, and OCHA for situational awareness and research purposes.

A globe.gl WebGL globe showing 24+ active armed conflicts (2024-2025), 25 animated refugee displacement flow corridors, and interactive country borders. All data is hardcoded from publicly available ACLED, UNHCR, and OCHA reporting.

24+

Active conflicts tracked

25

Displacement flow arcs

117M

People forcibly displaced (UNHCR 2024)

6

Conflict type categories

3

Intensity levels

2

Interactive filter dimensions

Conflict Type Classification

Each conflict is assigned one of five categories, encoded by dot colour on the globe.

WAR2 conflicts

Conventional inter-state or large-scale military operations

CIVIL-WAR8 conflicts

Armed conflict between internal factions for state control

INSURGENCY7 conflicts

Non-state armed group operating against a government

TERRITORIAL5 conflicts

Disputes over contested borders, islands, or regions

HUMANITARIAN-CRISIS2 conflicts

Acute breakdown of governance with mass civilian harm

Technical Pipeline

From hardcoded conflict data to interactive WebGL globe in six stages.

01
01

Conflict Data Model

Each of the 24 tracked conflicts is represented as a typed record with geolocation, intensity classification (high / medium / low), conflict type, casualty estimates, displacement counts, principal parties, and operational status (active / ceasefire / escalating). Data is sourced and reconciled from ACLED, UNHCR, and OCHA situation reports covering 2024-2025.

ACLED 2024UNHCR 2024OCHA Situation ReportsTyped TypeScript interface
02
02

globe.gl WebGL Globe

The globe is rendered using globe.gl, a Three.js-based globe library. The globe is dynamically imported (code-split) and mounted into a div ref. Earth night texture, topology bump map, and night-sky background are provided via unpkg CDN URLs. Atmosphere color is reddish (#ff4444) to match the conflict theme. Auto-rotation and damping are configured via globe.controls().

globe.gl (dynamic import)Three.js Globeearth-night.jpg textureatmosphereColor #ff4444controls().autoRotate
03
03

Conflict Zones — pointsData

Active conflicts are rendered as globe points via globe.gl's pointsData API. Radius is proportional to the displaced population count (power-scaled). A setInterval pulse loop alternates pointAltitude between two values to create a breathing effect. Fill colour encodes intensity (red / orange / yellow). Selected conflicts are highlighted in white. Click flies the globe to that conflict location.

pointsData / pointRadius / pointColorsetInterval pulse (altitude)Intensity colour encodingonPointClick / onPointHover
04
04

Displacement Arcs — arcsData

The 25 major refugee and displacement flow corridors are visualised as animated great-circle arcs using globe.gl's arcsData API. Arc width is proportional to flow volume. Dashed animation (arcDashLength / arcDashGap / arcDashAnimateTime) visualises flow direction. Arcs remain visible across all filter states to maintain geographic context.

arcsData / arcStroke / arcColorarcDashLength + arcDashGaparcDashAnimateTime (animated)arcAltitudeAutoScale
05
05

Country Borders & Interaction

Country borders are fetched from the public /countries-110m.geojson endpoint and applied via globe.gl's polygonsData API. Hovering a country highlights its border; clicking flies to it and opens a country stats panel showing active conflicts, total displaced, conflict types, and displacement corridors originating from that country. Conflicts can also be filtered by type and intensity.

polygonsData / polygonStrokeColoronPolygonHover + onPolygonClickfeatureCentroid fly-toCountry stats paneluseMemo filtering
06
06

Data Attribution

All conflict data is hardcoded based on publicly available 2024-2025 reporting from ACLED (Armed Conflict Location & Event Data Project), UNHCR Global Trends, and OCHA situation reports. Casualty and displacement figures are estimates and subject to ongoing revision. The 117 million forcibly displaced figure is UNHCR's 2024 mid-year update.

ACLED 2024-2025UNHCR Global Trends 2024OCHA Humanitarian ReportsAll data hardcoded — no live API calls

Tech Stack

globe.gl (Three.js)

Globe renderer

useRef + dynamic import

React integration

pointsData API

Conflict zones

arcsData (animated dash)

Displacement flows

polygonsData GeoJSON

Country borders

setInterval (altitude)

Pulse animation

countries-110m.geojson

Data fetch

Next.js App Router

Framework

Data Notes & Methodology

  • Casualty figures are minimum estimates; actual totals are likely higher due to under-reporting.

  • Displacement figures represent cumulative displaced persons as of 2024-2025 reporting, not new displacements in 2024 alone.

  • The UNHCR 117 million figure covers refugees, asylum seekers, and internally displaced persons (IDPs) globally.

  • Conflict locations use a representative point (city or region capital) — actual conflict zones are geographically dispersed.

  • Ceasefire status does not indicate resolution; ceasefires can break down and are noted as of early 2025.

  • Territorial disputes marked as 'low intensity' reflect current non-kinetic posturing but carry significant escalation risk.

Sources: Armed Conflict Location & Event Data Project (ACLED) · UNHCR Global Trends 2024 · OCHA Humanitarian Situation Reports · UN Human Rights Council · Various news wire services

Explore the live conflict globe

Pan, zoom, and filter 24+ active conflicts by type and intensity. Click any conflict zone to view parties, displacement figures, and operational status.

Open Globe