Un générateur procédural de mondes : tectonique, relief, érosion, climat, fleuves et biomes, puis villes, pays, cultures, religions et routes commerciales. Chaque graine produit une planète différente et reproductible, rendue comme un atlas peint.
- Rôle
- Conception & développement
- Période
- 2026
- TypeScript
- WebGL2
- Web Worker
- Vite
- Canvas 2D
Aperçus

Le monde fini. Les biomes naissent du croisement température × aridité, de l’altitude et de la pente — la forêt est peinte dans le terrain, pas posée dessus. 
Les plaques tectoniques, au commencement. Chaque frontière est classée convergente, divergente ou transformante d’après la vitesse relative des deux plaques. 
Le relief qui en découle : collisions, subductions, arcs insulaires, dorsales, points chauds. Le niveau de la mer est ensuite fixé pour obtenir exactement la part de terres demandée. 
Les précipitations. Cellules de Hadley, courants océaniques, pluies orographiques — et l’ombre pluviométrique derrière chaque relief. 
Les pays. Capitales espacées parmi les grandes villes, puis expansion sur le graphe des provinces, que montagnes, fleuves frontaliers et détroits freinent. 
Le commerce. Routes tracées par A* sur le terrain, lignes maritimes entre ports, et flux entre toutes les paires de villes cumulés tronçon par tronçon.
Un générateur de mondes : on donne une graine, il rend une planète complète — plaques tectoniques, montagnes, climats, fleuves, forêts, puis villes, pays, cultures, religions et routes commerciales. Le rendu est celui d’un atlas peint, dans la lignée des cartes de Hearts of Iron.
Rien n’y est dessiné à la main, et rien n’y est tiré au sort non plus : chaque couche découle de la précédente. Les chaînes de montagnes naissent là où deux plaques se rencontrent, les déserts là où l’air redescend sec, les villes aux confluences et aux embouchures, les frontières sur les crêtes et les grands fleuves. C’est cette chaîne de causes qui fait qu’un monde paraît vrai — pas la quantité de détail.
Tout tient dans un onglet. La simulation complète monte à vingt-sept millions de cellules dans un Web Worker, le rendu passe par un seul shader WebGL2, et la graine tient dans l’adresse : un lien suffit à partager un monde.
Le parti pris
Un générateur de cartes peut tricher de deux façons : dessiner à la main ce qu’il n’arrive pas à simuler, ou empiler du bruit jusqu’à ce que le résultat ait l’air riche. Les deux produisent des mondes qui ne tiennent pas au second regard — un fleuve qui remonte une pente, un désert sous le vent d’un océan, une capitale au milieu d’une banquise.
Ici chaque couche est la conséquence de la précédente, et le réalisme vient de cet enchaînement plutôt que du détail. C’est aussi ce qui rend le monde explorable : une montagne a une raison d’être là, et la fiche d’un pays peut la raconter.
De la tectonique au climat
La grille est équirectangulaire et bouclée en longitude, mais tous les bruits sont échantillonnés sur la sphère en trois dimensions : pas de couture au méridien, et une déformation polaire juste. Le reste s’enchaîne dans un Web Worker.
- Des plaques tectoniques en rotation rigide autour d’un pôle d’Euler, dont chaque frontière est classée convergente, divergente ou transformante selon la vitesse relative.
- Un relief qui en découle : collision et plateau, subduction avec cordillère et fosse, arcs insulaires, dorsales médio-océaniques, rifts, points chauds alignés sur le mouvement de la plaque, vieilles chaînes érodées.
- Une circulation atmosphérique complète — cellules de Hadley, Ferrel et polaire, courants océaniques, upwellings froids, advection de l’humidité, pluies orographiques et continentalité.
- Une érosion fluviale par loi de puissance, résolue avec le schéma implicite de Braun & Willett, l’aire drainée étant pondérée par la pluie.
- Une hydrographie à bilan hydrique : lacs d’eau douce à exutoire, ou lacs salés endoréiques dont le niveau baisse jusqu’à l’équilibre — jusqu’au salar.
Le niveau de la mer n’est pas choisi, il est résolu : on le fixe pour obtenir exactement la part de terres demandée. C’est le seul moyen de garder un réglage lisible — « 40 % de terres » — sur un relief qu’on ne contrôle pas directement.
Ce que la grille fait au hasard
Deux fois, le résultat a trahi la grille sous-jacente au lieu de la cacher. La croissance des plaques se faisait d’abord par sommes de pas entre voisins : les frontières, les rifts et les lacs sortaient rectilignes, alignés sur les huit directions de la grille. Il a fallu une priorité fondée sur la distance réelle au germe, décalée par un bruit propre à chaque plaque, pour obtenir des frontières sinueuses à toutes les échelles.
Le second piège était plus discret : chaque point d’une frontière imposait ses propriétés à un rayon de terrain, ce qui laissait des crêtes rectilignes perpendiculaires à la frontière. Lisser les profils tectoniques sur une quarantaine de kilomètres avant d’ajouter la rugosité les a fait disparaître. Dans les deux cas, le hasard n’était pas en cause — c’est la façon de mesurer les distances qui transparaissait.
Des peuples avant des frontières
La géopolitique se recalcule seule, sans toucher au terrain. Elle part du peuplement — habitabilité par biome, altitude, pente, fleuves et côtes — puis pose les villes sur les sites favorables, découpe les provinces, et fait croître les pays sur leur graphe.
L’ordre compte : les cultures sont diffusées depuis des foyers historiques **avant** que les États n’existent, donc indépendamment des frontières actuelles. On obtient des minorités et des peuples transfrontaliers, et des États qui suivent de préférence les lignes culturelles sans jamais les épouser exactement. Les religions se propagent de la même façon, par le commerce et l’affinité culturelle, avec religions d’État, conversions partielles et schismes régionaux.
- Des langues procédurales par famille et par dialecte : les toponymes d’un peuple partagent sa phonologie.
- Des dynasties avec lignée, numéros de règne, branches cadettes, unions, devise et armoiries blasonnées en français héraldique.
- Des États et des régions historiques à la manière de HOI4, nommés dans la langue du peuple — « Haute- », « Val de », « Monts de ».
L’histoire déroulée à rebours
La frise historique ne simule pas des siècles pour voir où l’on arrive : elle part de la carte actuelle et remonte le temps. On défait les conquêtes, on dissout les pays fondés cette année-là — retour dans celui dont ils ont fait sécession, ou éclatement en principautés qu’ils avaient unifiées — et l’on recrée les pays disparus.
Relue dans l’ordre, la suite de transferts aboutit exactement à la carte actuelle. C’est vérifié, et c’est tout l’intérêt de la méthode : une simulation en avant doit être rattrapée pour retomber sur le monde qu’on voulait, alors qu’à rebours la cohérence est acquise par construction. Environ cent soixante-dix pays à l’origine, avec guerres nommées, unifications, indépendances, héritages et schismes.
Un seul atlas peint
Le terrain tient dans un unique fragment shader : altitude bicubique, micro-relief procédural révélé au zoom, ombrage, couleur de végétation continue, roche et neige selon la pente et la température, bathymétrie, banquise, côtes par champ de distance signée.
La règle d’identité tient en une phrase : les forêts et les eaux font partie de la peinture du terrain, seules les œuvres humaines sont des illustrations. Une forêt dessinée par-dessus se lit comme un autocollant ; peinte dans le shader, avec ses houppiers éclairés comme le relief et son ombre portée, elle reste visible même sous les teintes politiques.
- Des villes en perspective cavalière dont la forme suit le peuple — pignon, croupe, terrasses au désert, colombages au nord — et le lieu de culte la religion.
- Des fleuves en rubans dont la largeur croît avec le débit, chaque affluent raccordé exactement à la rivière qui le reçoit.
- Des frontières lissées par vote majoritaire bilinéaire : pas d’escaliers de pixels.
- Un ciel à part entière : nuages advectés par les vents dominants, cycle jour / nuit avec terminateur et halos des villes selon leur population.
Ce qui tient dans un onglet
La simulation complète monte à 8 192 × 3 277, soit vingt-sept millions de cellules, environ quatre minutes et trois gigaoctets pour le worker ; les textures partent au GPU par bandes pour ne pas doubler la mémoire. Au-delà, soixante millions de cellules et sept gigaoctets, ce n’est plus un onglet — mais l’export grave quand même le monde en 12 288 pixels, par tuiles WebGL.
- Terrain calculé en demi-résolution pendant un geste, net à l’arrêt.
- Fleuves simplifiés selon le zoom et gardés en cache le temps du geste ; icônes de villes regroupées par paliers de taille et conservées en ImageBitmap, avec un budget de création par image.
- Environ 17 ms par image pendant un zoom continu, 60 images par seconde en déplacement, sur un M4 en retina simulé.
- Le dernier monde est sauvegardé dans le navigateur depuis le worker : un rafraîchissement le recharge en quelques secondes au lieu de tout régénérer.
L’export suit la même logique d’économie : sous Chrome et Edge, il demande où écrire puis grave chaque fichier dès qu’il est prêt, en flux. Une archive de plusieurs centaines de mégaoctets ne passe jamais par la mémoire JavaScript. Ailleurs, elle est téléchargée d’un bloc, parce que les navigateurs bloquent les téléchargements successifs.
Stack
- TypeScript, construit par Vite ; aucune dépendance de rendu.
- La génération entière dans un Web Worker, l’état sauvegardé en IndexedDB depuis le worker.
- WebGL2 pour le terrain et le ciel, Canvas 2D pour les fleuves, les noms, les villes et le réseau commercial.
- Styles de warcraftcn/ui (MIT) repris en CSS pur pour l’interface.
Autres projets
Plum — L’assistant mémoire qui rassure
Une application mobile double-interface conçue pour l’autonomie des personnes ayant des troubles de la mémoire, sécurisée par un mode aidant.
Lire le cas d’étudeFinalytics — Générer des rapports financiers automatiquement
Un SaaS qui transforme des données financières brutes en rapports lisibles, structurés et prêts à être partagés. Automatiser un processus long, répétitif et source d’erreurs.
Lire le cas d’étudeCorpus Delta — L’annuaire de la recherche climatique
Un annuaire de publications scientifiques sur le climat et les risques naturels : cent une études référencées avec leurs métadonnées d’origine, un glossaire de cinquante et un termes, et des parcours de lecture pour entrer dans la littérature sans s’y perdre.
Lire le cas d’étude