Frondia
Un atlas de preuves pour cinq villes belges, qui distingue un vrai changement du vert urbain du bruit d’un été — avec un seuil mesuré, et non choisi, et le refus publié comme un résultat à part entière. Je l’ai conçu et construit avec Claude Code, et il a absorbé trois de mes prototypes cartographiques précédents
- Problème — Chaque été, une ville paraît un peu plus verte ou un peu plus brune. Comparés à leur propre passé, 263 des 668 secteurs bruxellois semblent « significativement plus verts » — c’est surtout la météo, pas des travaux
- Insight — Les couches officielles mesurent la quantité de vert d’une ville, pas s’il a changé ; personne ne publie de seuil calibré pour distinguer le changement du bruit. Ce seuil, c’est le produit
- Solution — Un atlas, trois questions par secteur : ce qui manque, quoi placer où, ce qui a changé — chaque effet comparé à 12 lieux appariés et au seuil de bruit propre à la ville
- Résultat — En ligne pour Bruxelles, Anvers, Gand, Liège et Charleroi : 16 secteurs bruxellois plus verts au-delà du bruit au lieu de 263, 212 tests. Projet personnel
Qu’est-ce qui a vraiment changé — et comment le savoir ?
Frondia est parti d’une question à laquelle je ne trouvais de réponse nulle part : quand une ville belge affirme avoir verdi un quartier, est-ce le sol qui a changé, ou l’été ? La verdure vue par satellite varie chaque année avec la pluie, la chaleur et les récoltes. Comparez chaque secteur à son propre passé et Bruxelles semble transformée : entre les étés 2017–19 et 2021–24, 263 de ses 668 secteurs comparables paraissent « significativement plus verts ». Comparez chacun à douze lieux qui se ressemblaient avant, et il n’en reste que 16.
La question n’a rien d’académique. Le règlement (UE) 2024/1991, le règlement relatif à la restauration de la nature, demande aux États membres qu’il n’y ait aucune perte nette d’espaces verts urbains ni de couvert arboré d’ici 2030 par rapport à une base de 2024 (article 8). La chaîne officielle mesure le niveau de vert une année donnée ; aucun des outils que j’ai examinés, du suivi du PBL et de Cobra aux Pays-Bas jusqu’à UpGreen et PlanIT Geo, ne publie de seuil calibré pour distinguer le changement du bruit. C’est ce manque que Frondia comble. C’est un projet personnel, sans client ni pitch : je l’ai conçu et construit avec Claude Code entre le 31 août et le 27 septembre 2026.
frondia.eu — la page elle-même légende le champ derrière la carte : « An illustration, not a measurement. »
Tout l’argument en une étape : 263 secteurs paraissent plus verts par rapport à leur passé, 16 le sont par rapport à douze lieux appariés
Le seuil est mesuré, pas choisi
Chaque secteur d’une ville joue une fois le rôle d’une intervention fictive. On l’apparie aux douze secteurs qui lui ressemblaient le plus avant, en verdure et en chaleur estivale, aucun à moins de 1,5 km, et on enregistre sa différence de différences. Il ne s’y est rien passé : la dispersion de tous ces effets est donc le bruit propre de la méthode, et le seuil se situe là où s’arrêtent 95 % de cette dispersion. La distribution est centrée sur zéro : la méthode n’invente pas d’effet là où rien ne s’est passé.
Un seuil appartient à un couple ville–instrument, et au calcul qui l’a produit. La calibration de l’instrument NDVI donne 0,0373 à Bruxelles, 0,0458 à Anvers, 0,0481 à Gand, 0,0536 à Liège et 0,0396 à Charleroi ; la couche de l’article 8, calibrée sur sa propre table, donne 0,0345 à Bruxelles. Un seuil ne passe jamais d’un schéma à un autre. Quand les douze lieux appariés s’écartaient du site de plus de 0,04 avant les travaux, il n’y a pas de verdict : « pas de comparaison équitable » est un résultat publié, dessiné en hachures grises.
La bande « méthode » de la page d’accueil : 668 secteurs bruxellois, chacun joué une fois comme intervention. Les pointillés marquent le seuil de ce calcul
Un refus est un résultat au même rang que « pas d’effet » : pas de comparaison équitable, pas d’emprise défendable, travaux hors des fenêtres, trop peu d’images
La plupart des règles sont nées d’erreurs que les données ont commises en premier. L’emprise d’une intervention n’est jamais tirée de la mesure : c’est un polygone OpenStreetMap d’un hectare ou plus, le polygone du maître d’ouvrage, ou un contour publié avant le chiffre, sinon c’est un refus. Les dates de fin de travaux sont relevées avant toute conclusion, et les fenêtres de comparaison sont découpées autour d’elles. Enfin, un modèle de langage ne calcule jamais un chiffre : les chiffres sortent d’un moteur déterministe testé, le modèle lit, rédige et explique.
Une carte, trois questions pour chaque secteur
L’atlas pose trois questions à chaque secteur statistique de Statbel, une à la fois. Ce qui manque : les services du quotidien pour une famille, le télétravail ou les seniors, les commerces à proximité, la chaleur estivale et la règle 3-30-300, chacun avec une lecture de qui en manque, par tiers de revenu, chez les enfants et chez les 65 ans et plus. Quoi placer où : quatorze types d’objets publics, quarante points classés pour chacun, les dix premiers nommés le 5 septembre 2026 avant que quiconque ne place quoi que ce soit, les dix suivants gardés comme groupe de comparaison. Ce qui a changé : la verdure et le sol bâti par rapport à douze lieux appariés, les communes au titre de l’article 8(1), et toute la ville avant et après.
Seule la troisième question mesure un changement ; les deux autres décrivent et recommandent, et l’atlas l’indique. Un manque a sa propre rampe de couleurs, YlOrBr de ColorBrewer, car le sarcelle et le rouge du gain et de la perte appartiennent au seul changement. La chaleur est montrée comme un état, jamais comme un effet.
La chaleur estivale à Bruxelles, où chaleur et couvert arboré évoluent ensemble avec r = −0,89. Un état, pas un effet : le plancher de bruit pour le rafraîchissement est de 1,32 °C
Les services du quotidien à Anvers, pondérés pour une famille : ici, le tiers le plus pauvre est mieux desservi que le plus riche, 75 contre 56
Quoi placer où à Gand : les toilettes publiques. Dix points nommés (pleins) face à dix points de comparaison (anneaux), et un curseur pour ce que couvriraient les objets suivants
4 des 19 communes bruxelloises passent l’exemption de l’article 8(1) ; la région dans son ensemble, à 39,3 % de vert dans ses centres et clusters urbains, est comptée
Toute la ville avant et après, les verdicts tracés en contours. Aucun chiffre n’est tiré des photographies
Quatre prototypes, un seul produit
Frondia a absorbé trois projets cartographiques qui faisaient auparavant l’objet d’études de cas distinctes sur ce site. City Planner classait les emplacements des prochaines toilettes publiques, du prochain banc ou du prochain défibrillateur, avec un algorithme glouton de couverture maximale sur une grille de demande pondérée vers les quartiers défavorisés. Neighbourhood Fit Score notait les secteurs pour trois modes de vie, de l’école et du médecin généraliste à l’arrêt de tram. SpotFinder mesurait la distance à la boulangerie, au café ou à la confiserie la plus proche. Chacun est devenu une lentille de l’atlas, et leur code vit désormais dans le dépôt de Frondia sous forme de pipelines.
Fusionner, c’était couper. Londres et Paris ont quitté City Planner, et Louvain a quitté SpotFinder : Frondia parle de la Belgique. Le score d’« opportunité » commerciale de SpotFinder est parti lui aussi, car Frondia lit la ville comme le ferait un habitant ou un pouvoir public : la distance au commerce le plus proche, pas la place laissée à un concurrent. Les portages sont allés dans l’autre sens. Fit Score a appris Anvers grâce au GTFS de De Lijn, SpotFinder a appris Bruxelles, et chaque lentille existe maintenant dans les cinq villes.
Les portages ont aussi appris aux pipelines à se méfier de leurs entrées. Overpass échoue avec le code de sortie 0 et renvoie un résultat plausible construit sur des données vides ; un calcul avec un avertissement de téléchargement ou zéro point de demande échoue donc désormais bruyamment, et les planificateurs lisent OpenStreetMap depuis un extrait Geofabrik. Une carte lacunaire est nommée, pas cachée : l’OpenStreetMap de Charleroi compte 11 toilettes, 6 défibrillateurs et 1 fontaine à boire pour 204 000 habitants, et l’atlas dit que la couverture « aujourd’hui » y mesure en partie la carte.
Trois lieux mesurés, chacun avec sa réserve imprimée
Un audit mesure l’emprise des travaux par rapport à douze secteurs nommés dans l’atlas, puis suit l’effet été après été. La Porte de Ninove à Bruxelles, un terrain vague au bord du canal devenu parc à l’automne 2019, atteint +0,246 pour un seuil de 0,036 dans son propre schéma, soit 6,8×, et reste au-dessus du bruit 7 étés sur 7. Un second instrument, Dynamic World, dit ce qui a changé : sol bâti −0,123, herbe +0,098, couvert arboré dans le bruit. C’est un parc-prairie, et le verdict le dit.
Le Droogdokkenpark à Anvers est la correction honnête. La fenêtre standard donne +0,289, mais ses étés « avant » contenaient déjà le chantier. Avec une base 2016, antérieure aux travaux, l’effet défendable est de +0,147 : la moitié du chiffre affiché, et toujours trois fois le seuil. En 2025, il est tombé dans le bruit, et le second instrument montre pourquoi : bâti +0,107 et couvert arboré divisé par deux en une saison, à cause de travaux sur les docks. Le Park Spoor Noord, une gare de triage devenue parc en 2008–2009, est antérieur à Sentinel-2 ; il est donc audité avec Landsat jusqu’en 2006 : +0,148 pour un seuil de 0,058, au-dessus du bruit 14 étés sur 15, la sécheresse de 2018 étant le seul dans le bruit.
Les audits sur la page d’accueil : un curseur avant/après sur l’emprise, l’effet en multiple du seuil propre à l’audit, et la série avec ses trous laissés visibles
L’audit dans l’atlas : l’effet, l’effet défendable, et les douze lieux appariés avec leur nom et leur distance
Un outil qui répond à tout par un chiffre ne sert à rien
Les décisions les plus importantes de Frondia portent sur ce qu’il refuse de dire. Le rafraîchissement : le plancher de bruit de la température de surface en été est de 1,32 °C, plus que ce que fait réalistement un nouveau parc ; nulle part un parc ne « rafraîchit la rue d’un degré ». Les restaurations : des allées et des étangs remis en état dans un parc déjà vert ne se voient pas depuis l’espace, et sept grandes restaurations, chacune mesurée avec sa propre fenêtre et son propre seuil, restent dans le bruit. Les plantations d’alignement dispersées se noient à l’échelle du secteur. Et une cause n’est jamais nommée sans document : le plus fort verdissement de Bruxelles, le Zavelenberg, est une réserve naturelle où le pâturage s’est arrêté après la mort de l’agriculteur.
Une perte sur une seule saison n’est publiée que si deux instruments concordent, le NDVI et Dynamic World, avec les documents comme troisième filtre, car le défrichement précède la construction. J’ai aussi voulu savoir à quelle fréquence le détecteur lui-même se trompe. La Groenkaart Vlaanderen, une carte à 1 m tirée de photographies aériennes, est passée par les mêmes lieux appariés et son propre seuil à Anvers et à Gand. Elle s’accorde avec le détecteur sur « dans le bruit » dans 98 % des secteurs (569 sur 583), et sur « changé » dans seulement 32 % (7 sur 22). Un changement au-delà du bruit est donc un candidat, pas une preuve, et le site le dit là même où l’affirmation est faite.
Ce que Frondia refuse d’affirmer. Chaque règle a été ajoutée après qu’un résultat convaincant mais faux est apparu sans elle
Chaque chiffre, et comment il a été produit
Autour de l’atlas se trouvent quatre pages-documents, bâties sur une seule mise en page mesurée, les articles de recherche d’anthropic.com : une colonne de lecture de 640 px et 880 pour les figures et les tableaux. Le dossier de secteur donne à chaque secteur un titre qui énonce un constat calculé, jamais rédigé, puis la tendance par rapport aux lieux appariés, qui en manque, ce que le planificateur y placerait et ce que la méthode ne mesure pas ; il s’imprime en A4. La page commune répond à l’article 8(1) pour chacune des 23 communes sur lesquelles le test de la Commission a tourné, avec la mesure zéro en hectares et le bilan depuis 2024. La page données propose chaque couche en CSV avec son manifeste, et le fichier de l’article 8 sous la forme du GeoPackage qu’un pays dépose auprès de la Commission.
Dans le dossier, trois cas mesurés remplacent les promesses
Anderlecht depuis la base 2024, en hectares au-delà du bruit, et ce que les bulletins de saison y signalent
Le registre des interventions est l’endroit où un modèle de langage fait son seul travail : lire. Claude Sonnet 5 a lu les pages des 98 contrats de quartier durables bruxellois et relevé chaque mesure de verdissement avec les mots sur lesquels elle repose ; les 110 citations se retrouvent toutes mot pour mot dans leur contrat. 41 pages ne décrivent rien et sont affichées comme « non décrites », jamais comme « aucune mesure ». Trente contrats de test ont été tirés par graine avant qu’aucun ne soit lu, et un second modèle, Claude Opus 5.5, les a relus dans un processus neuf : les deux lectures divergent sur 1 contrat sur 30 (3 %, intervalle 1–17 %). La page dit ce que ce contrôle ne prouve pas. Deux modèles d’une même famille peuvent mal lire une phrase de la même façon : c’est un accord, pas une exactitude, et chaque citation garde sa source pour qu’une personne puisse vérifier.
Le contrôle du registre : chaque taux avec son intervalle de Wilson à 95 %, le modèle face à une règle simple
Des preuves, pas du marketing : deux design systems et une métaphore
La page devait se lire comme une preuve. La métaphore, c’est le bruissement et le cerne : le champ bruisse (le bruit), un cerne est un fait, une étiquette est un document. La palette reprend la page crème et le texte presque noir d’une brochure Satoyama et y ajoute les verts et le lilas de CADRO, mesurés comme des groupes de couleurs plutôt que choisis à l’œil. La couleur signifie la mesure : aucun vert ni rouge de l’interface n’entre jamais dans une carte, un graphique ou un verdict ; le sarcelle du gain et le rouge de la perte marquent le seuil, 2× et 3× ; et « pas de comparaison équitable » est une hachure grise neutre, car une hachure verdâtre se lisait comme un gain. La typographie reprend le système de David Protein, les fontes payantes remplacées, sur la base du recouvrement mesuré des glyphes, par Instrument Serif, Geist et Fragment Mono.
La page d’accueil et l’atlas ont chacun leur système et ne partagent que les primitives de la marque. La page d’accueil est éditoriale, espacée sur la mise en page mesurée d’anthropic.com ; l’atlas est un outil dense, espacé sur celle de Felt. Chaque élément a sa propre référence, posée à côté de lui dans Figma. Le design system Figma compte 233 variables en quatre collections et 23 styles de texte, et sa collection Theme a deux modes : les mêmes onze écrans s’affichent en wireframes, en Inter et en gris, ou en hi-fi, avec les fontes du site.
Figma, mode Wireframe : l’écran d’audit construit à partir des composants du système
Le même écran, en ligne : la Porte de Ninove face à ses douze lieux nommés
Colour · data dans Figma : chaque token de données en paire Wireframe | Hi-fi. Les wireframes ne montrent le sens que par la clarté
L’accessibilité et la mise en page ont été vérifiées, pas supposées. Cinq tours de revérification après le premier déploiement ont trouvé le premier compteur des cartes jumelles à un contraste de 2,2 : 1 et des commandes mobiles de 28–32 px, désormais 40, et 44 quand elles sont seules ; après les corrections, axe n’a plus rien trouvé dans 12 états. Cinquante-trois états sur cinq largeurs ne montrent ni erreur, ni débordement, ni mot orphelin. Aucune ligne ne finit sur un mot court : une règle typographique pose les espaces insécables sur le texte rendu, si bien qu’une modification ultérieure du texte ne peut pas en réintroduire.
Moins d’affirmations, chacune défendable
Le produit évident, c’était une carte de verdure avec un avant et un après. C’est ce que donnent les données brutes, c’est spectaculaire, et c’est surtout la météo. Montrer les effets par rapport à un groupe témoin sacrifie le spectacle : Bruxelles passe de 263 secteurs plus verts à 16, et Liège, qui a à peine verdi entre les deux fenêtres, de 3 à 1. Chaque carte et chaque texte montre l’effet par rapport au témoin ; la vue brute ne survit que comme argument en faveur du témoin.
Le même arbitrage traverse tout le projet. Les hectares exigent une classification stricte ; le bilan depuis 2024 est donc un calcul à part, avec ses propres seuils : sans lieux appariés, Anvers aurait perdu 586 ha de vert et imperméabilisé 573 ha en deux étés. La règle du dossier ne trouve aucun secteur à Liège ni à Charleroi, toutes deux exemptées au titre de l’article 8(1), et elle n’a pas été assouplie : la page explique le refus. Quand l’archive Sentinel-2 a été retraitée et que les emprises des audits ont donné des mesures légèrement différentes, les effets publiés sont restés, parce qu’un effet et son seuil doivent venir d’un même calcul.
Certains verdicts dépendent de la lecture de la loi : celui de Gand bascule si les terres agricoles comptent comme vertes, celui de Liège si l’eau compte, et les deux lectures sont imprimées.
La décision la plus difficile est venue au bout d’un mois : en plein projet, j’ai fait passer le site de deux applications Vite + React à une seule application Next.js (App Router, TypeScript, rendu serveur). Le néerlandais et le français devaient être de vraies versions, chacune servie en HTML prêt à l’emploi à sa propre adresse /nl ou /fr, marquée nl-BE ou fr-BE avec hreflang et ses propres métadonnées, comme le font Stripe, Apple ou be.brussels ; une configuration Vite prérendue avec i18next était sur la table, et j’ai choisi à la place la voie des grands sites. Le même changement a apporté une mesure d’audience avec consentement : Umami sans cookies, et Clarity seulement après l’accord du visiteur. Le prix, c’est un portage page par page, chaque page comparée à la production sur son texte visible et sur des captures à 1440 et 390 px. La page d’accueil, avec la mesure d’audience, le consentement et le travail SEO, est en ligne sur frondia.eu ; les pages-documents sont en cours de portage, et les versions néerlandaise et française suivront.
En ligne dans cinq villes, reconstruit depuis un dossier vide
Frondia est en ligne : la page d’accueil sur frondia.eu, l’atlas et les pages-documents sur frondia.ontwrpn.com, pour Bruxelles (724 secteurs, 1 246 136 habitants), Anvers, Gand, Liège et Charleroi, les trois régions belges. Le moteur est en Python, avec Earth Engine pour Sentinel-2, Landsat et Dynamic World. Chaque ville est un paquet de couches, chaque couche porte un manifeste, et une couche sans manifeste n’est pas publiée. Chaque page se reconstruit depuis un dossier vide, et 212 tests vérifient le texte visible des pages et les données derrière les cartes par rapport aux réponses connues propres à chaque ville.
Le site a commencé sous la forme de deux applications Vite + React derrière nginx, déployées avec Coolify sur mon propre serveur. La page d’accueil tourne désormais sur la nouvelle application Next.js, sur frondia.eu ; l’atlas et les pages-documents sont encore servis par les applications Vite sur frondia.ontwrpn.com.

En ligne — l’atlas, cinq villes
Soustraire douze lieux restés identiques, c’est tout le produit en une étape
Sources
- Règlement (UE) 2024/1991 du Parlement européen et du Conseil relatif à la restauration de la nature, article 8 : écosystèmes urbains.
- Brown, C. F. et al. (2022). Dynamic World, near real-time global 10 m land use land cover mapping. Scientific Data 9:251. — des probabilités de classe, pas des parts du sol
- Konijnendijk, C. C. (2023). Evidence-based guidelines for greener, healthier, more resilient neighbourhoods: introducing the 3–30–300 rule. Journal of Forestry Research 34:821–830.
- Nemhauser, Wolsey & Fisher (1978). An analysis of approximations for maximizing submodular set functions. Mathematical Programming 14. — la garantie derrière le classement glouton de couverture maximale
