
Les catacombes de Paris : recréant le labyrinthe de six millions de squelettes en CityEngine
Sous le sol de la Ville Lumière s'étend l'un des plus grands ossuaires du monde : les Catacombes de Paris. Ce vaste réseau souterrain, qui fut à l'origine des carrières de pierre calcaire, fut transformé entre 1786 et 1814 en dernier repos pour six millions de Parisiens, dont les restes furent transférés depuis des cimetières surpeuplés. Ce qui commença comme une solution d'assainissement urbain devint un labyrinthe mortel qui a capturé l'imagination populaire et attire des explorateurs urbains courageux. 💀
Le labyrinthe où la ville rencontre la mort
Le véritable mystère des Catacombes ne réside pas seulement dans les millions de crânes et de fémurs qui ornent ses murs, mais dans l'échelle labyrinthique de sa conception. Avec plus de 300 kilomètres de tunnels qui serpentent sous Paris, seule une petite fraction est officiellement ouverte au public. Au fil des ans, de nombreux explorateurs se sont perdus dans ce sombre réseau, certains de manière permanente. La présence écrasante de la mort se manifeste non seulement visuellement, mais à travers une atmosphère oppressante qui a généré d'innombrables récits de phénomènes paranormaux et de rencontres fantomatiques. 🌫️
Caractéristiques uniques des Catacombes :- Murs composés de motifs géométriques de crânes et d'os longs
- Tunnels s'étendant sur 300+ km sous Paris
- Atmosphère constante de 14°C avec 95% d'humidité
Un réseau souterrain où les visiteurs se sont perdus irrémédiablement, entourés par la densité de la mort
Configuration initiale du projet en CityEngine
Pour recréer les Catacombes en CityEngine, nous commençons par créer un nouveau projet avec un terrain plat représentant le niveau du sol de Paris. Nous établissons le système de coordonnées en mètres et définissons une zone de travail de 2000x2000 mètres pour couvrir l'étendue approximative des catacombes. Dans l'Inspecteur de Scène, nous configurons les unités en mètres et activons le système de snapping pour un design précis des tunnels. 🗺️
Configuration de base du projet :- Zone de travail : 2000x2000 mètres
- Unités : Métriques (mètres)
- Système de coordonnées : Y-up pour la cohérence
Conception du graphe de rues labyrinthique
Le cœur de la génération procédurale en CityEngine est le graphe de rues. Nous créons un motif de rues organique en utilisant l'outil Street Growth avec des paramètres de variation d'angle élevé (45-90°) et de variation de longueur moyenne. Nous appliquons plusieurs points de seed distribués aléatoirement pour générer un labyrinthe naturaliste qui imite la croissance organique des anciennes carrières. Les nœuds d'intersection doivent avoir un rayon minimum pour créer des coins fermés. 🕸️
Paramètres du graphe de rues :- Angle Variation : 45°-90° pour des motifs irréguliers
- Street Length : 10-50 mètres de variation
- Segment Curvature : 0.3 pour des courbes douces
Règles CGA pour la génération de tunnels
Les règles CGA (Computer Generated Architecture) sont l'âme de CityEngine. Nous créons une règle appelée CatacombTunnel.cga qui commence par :
@StartRule
Tunnel -->
offset(-0.5)
comp(f) { side : Wall | top : Ceiling | bottom : Floor }
Cette règle de base extrude la forme du tunnel et sépare les faces pour appliquer différentes textures et géométries aux murs, au plafond et au sol. L'offset négatif crée le volume excavé du tunnel. 🏗️
Structure de base des règles :- @StartRule : Point d'entrée de la génération
- comp(f) : Décompose la forme en faces
- offset : Crée le volume du tunnel
Génération procédurale de murs d'os
Pour les iconiques murs d'os, nous développons des règles CGA complexes :
Wall -->
setupProjection(0, scope.xy, 1.5, 1.5)
texture("stone_base.jpg")
split(x) { ~1 : BonePattern }*
BonePattern -->
case geometry.area > 0.5:
split(y) { ~0.3: SkullRow | ~0.7: BoneRow }*
else:
texture("stone_dark.jpg")
Ce système divise les murs en motifs réguliers et alterne des rangées de crânes et d'os longs en fonction de l'aire disponible. Les conditions case permettent une variation selon le contexte géométrique. 💀
Composants du système osseux :- SkullRow : Rangée de crânes organisés
- BoneRow : Rangée de fémurs et de tibias
- Sections de pierre : Aires de pierre naturelle
Système d'éclairage et d'atmosphère
L'éclairage est crucial pour l'atmosphère oppressante. En CityEngine, nous configurons des lumières ponctuelles stratégiques qui simulent un éclairage artificiel ancien :
LightFixture -->
s('0.2, '0.2, '0.5)
t(0, 0, 2.5)
i("light_point_01.obj")
set(material.light.emissive, 0.8)
set(material.light.color, [1.0, 0.8, 0.6])
Ces lumières sont distribuées de manière procédurale tous les 20-30 mètres le long des tunnels principaux, créant des zones de pénombre intercalées d'obscurité profonde. La température de couleur chaude reproduit des lampes à huile historiques. 💡
Paramètres d'éclairage :- Couleur : Chaude #ffcc99 pour les torches
- Intensité : 0.5-0.8 pour un effet tamisé
- Distribution : Tous les 20-30 mètres
Variation et aléatoricité contrôlée
Pour éviter des répétitions évidentes, nous implémentons une variation procédurale en utilisant des fonctions de bruit et des conditions contextuelles :
SkullRow -->
case rand(0.0, 1.0) < 0.7:
split(x) { ~0.25: Skull | ~0.1: Gap }*
else:
split(x) { ~0.2: Skull | ~0.15: Gap }*
Skull -->
case rand(0.0, 1.0) < 0.3:
i("skull_broken.obj")
else:
i("skull_intact.obj")
Ce système crée des motifs uniques mais cohérents, avec des variations en densité et en état de conservation des os qui reflètent la réalité historique. 🎲
Éléments de variation :- Densité d'os : 60-80% de couverture
- États de conservation : Intact, érodé, brisé
- Motifs : Régulier, groupé, dispersé
Exportation pour les moteurs de jeu
Une fois les catacombes générées, nous les exportons vers des formats standards en utilisant l'Exporter de CityEngine. Pour Unity, nous exportons en FBX avec des groupes LOD. Pour Unreal Engine, nous utilisons le format Datasmith qui préserve les matériaux et l'organisation de la scène. Les règles CGA sont compilées en géométrie statique optimisée pour le rendu en temps réel. 📤
Options d'exportation :- FBX : Pour Unity et autres moteurs
- glTF : Pour applications web et mobiles
- OBJ : Comme format universel de sauvegarde
Applications du modèle généré
Le modèle des Catacombes généré en CityEngine a de multiples applications : des environnements pour jeux vidéo d'horreur aux outils éducatifs de réalité virtuelle qui permettent d'explorer ce site historique sans risques. La nature paramétrique du modèle permet de générer des variations infinies pour différents usages, en conservant toujours l'essence labyrinthique et oppressive de l'original. 🎮
L'avenir du patrimoine culturel procédural
La recréation des Catacombes de Paris en CityEngine représente l'avant-garde en préservation numérique. En capturant non seulement la géométrie, mais les règles sous-jacentes de sa construction, nous créons un modèle vivant qui peut évoluer et s'adapter à différents besoins. Cette approche démocratise l'accès à des sites historiques dangereux ou inaccessibles, permettant aux étudiants, chercheurs et artistes d'expérimenter ces espaces de manière sûre tout en préservant leur legs pour les générations futures. ✨