Monde (globe géopolitique en direct)
Un globe 3D des conflits et événements politiques alimenté par 20 sources ouvertes en direct, avec un moteur de rendu du terrain réécrit de zéro en Rust et un pipeline mesuré qui transforme des articles de presse en fiches d'événements vérifiables.
- Rust
- wgpu
- egui
- Axum
- React
- TypeScript
- GDELT
- LLM annotation
Monde est le projet dans lequel j'ai mis le plus de travail depuis juin 2026. C'est un globe 3D en direct des conflits et des événements politiques, avec un fil de renseignement, une perspective de tension par pays et, plus récemment, une fiche politique par pays (la France sert de pilote). Le code est en Rust et en TypeScript ; un dépôt de documentation distinct porte la recherche, les plans et les décisions (86 commits). J'ai travaillé avec des agents Claude du début à la fin, pour des recherches et une partie du code, et chaque chiffre ci-dessous renvoie à un fichier que je peux reproduire.
Le mode Conflict : le fil de renseignement à gauche, le globe avec ses marqueurs d'événements au centre, et les marchés de prédiction à droite.
Le problème
Il existe des tableaux de bord de conflits, mais les bonnes données d'événements sont derrière des licences payantes. Je voulais la même chose construite sur des sources ouvertes, où je sais sur quoi repose chaque marqueur affiché. L'exemple le plus net est ACLED : payant, et ses conditions interdisent de tracer ses données sur un globe, ce que son équipe de licences m'a confirmé par écrit. Je l'ai donc abandonné comme source et j'ai choisi d'en reproduire la méthode. Son codebook est public : j'adopte l'ontologie et je l'applique à des sources libres.
Trois couches
Sources. 20 sources actives (GDELT, UCDP, ReliefWeb, USGS, NASA FIRMS, OpenSky, navires AIS, Polymarket et d'autres) derrière des disjoncteurs qui déclarent chaque source en direct, en cache ou indisponible. Les événements sont notés selon la corroboration, la fraîcheur et la gravité.
Chaque marqueur ouvre une fiche avec sa catégorie, sa gravité, sa source et l'heure du signalement. Ici, un séisme de l'USGS, avec le niveau de fiabilité de sa source.
Rendu. Le client est un moteur de rendu natif en Rust et wgpu. Le sol n'est pas une photographie : il est synthétisé à partir de la couverture des sols de l'ESA (11 classes) croisée avec les zones climatiques, l'altitude, la pente et la latitude, avec des frontières de classes déformées pour qu'un bord ressemble à un coup de pinceau. Les frontières utilisent un cube d'identifiants et une table de couleurs : recolorer un pays écrit un texel au lieu de renvoyer un maillage de 45,6 Mo, et un champ de distance dessine le halo intérieur. Le design des signaux compte 77 types sur une seule grammaire (la forme dit quoi, la couleur dit à qui ou à quel point c'est grave, la taille dit combien) ; 73 glyphes sont dessinés.
Passe de codage. C'est la partie que j'ai le plus travaillé à mesurer, détaillée ci-dessous.
De l'article à la fiche d'événement
GDELT détecte qu'un article parle d'un événement, mais il ne le code pas. Mesurée par des humains, sa précision est de 53,7 % sur l'acteur, 51,2 % sur le lieu et 48,7 % sur la catégorie, et il n'a aucun champ de victimes. Je conçois donc une passe LLM sur l'article source. Les décisions qui comptent :
- Le LLM ne géocode jamais librement. Les tests de GDELT sur des LLM géocodeurs montrent des exécutions incohérentes et des lieux inventés : le gazetteer reste l'autorité, et le modèle choisit seulement parmi des candidats que je lui montre.
- Rendre la sortie vérifiable, et l'échec inoffensif. La sortie est un enregistrement typé : un sous-type inventé échoue au parsing. Puis des vérifications exactes contre la source (un chiffre ou une date doivent figurer dans le texte, une entité doit être une sous-séquence contiguë du titre).
- La confiance ne décroît pas, la saillance d'affichage si. Un fait corroboré par cinq sources n'est pas moins vrai plus tard.
- Mesurer la plomberie. Environ 3 340 articles cinétiques par jour ; grouper par article divise les appels par 2,63 ; 91 % des URL fraîches sont joignables avec une requête par hôte, contre 60 % en rafale. Sur 6 heures (52 774 mentions), les mentions par événement passent de 1,20 à 4,73, et 64 % des événements ne sont jamais repris par personne.
Sur un jeu de référence de 84 fiches issues de 26 articles, deux passes en aveugle ont donné un kappa de Cohen de base de 0,688 et 0,652 sur le type d'acteur, 0,519 sur la précision du lieu et 0,451 sur le ciblage de civils, calculé sur 42 % seulement des fiches que les deux passes ont pu apparier. Le reste, c'étaient des désaccords sur la décision même d'émettre une fiche. Quand j'ai lancé quatre codeurs indépendants sur le même corpus, ils ont produit entre 0,15 et 1,90 fiche par article, un facteur 12,7. Cette partie est la plus dure : obtenir une sortie reproductible. Cette partie est la plus dure. avoir une sortie reproduisible.
Limites
La passe de codage n'est pas en production : les événements GDELT arrivent aujourd'hui sur le globe avec le code de catégorie propre à GDELT. Le jeu silver contient 140 fiches et le petit modèle n'est pas entraîné. Le bureau natif a été parcouru avec une liste de 52 points : 21 passent, environ 18 défauts trouvés, 9 corrigés, et tous les défauts visuels qui comptaient ont été trouvés par moi en regardant une image, aucun par la suite de tests, restée verte malgré un bug de sélection.
La suite
Davantage de passes d'annotation pour mesurer l'accord réel, puis un premier petit modèle entraîné sur les phrases (un encodeur transformer avec une tête linéaire, exporté en ONNX). Côté Politique, en plus du globe des conflits décrit plus haut, Monde a un mode Politics, où un clic sur un pays ouvre une fiche institutionnelle (dirigeants, régime, pouvoirs, élections, appartenances) et où chaque information porte sa source. La France est le pilote et sa fiche est désormais branchée sur des données réelles ; les autres pays n'affichent qu'un avis de base et suivront. J'ai aussi étudié une autre piste, suivre l'argent public (corruption, aides d'État, marchés publics). Je réfléchis aussi à un mode Economics, qui ferait apparaître les données d'Atlas sur Monde. Je reflechi aussi a un monde Economics, pour faire apparaitre les donnees de Atlas sur Monde.
Le mode Politics : la fiche de la France avec l'Assemblée nationale ouverte. Le survol d'un siège affiche la carte du député, avec ses sources (texte et photo de Wikimedia, CC BY-SA).