Las catacumbas de parís: recreando el laberinto de seis millones de esqueletos en cityengine

Las catacumbas de parís: recreando el laberinto de seis millones de esqueletos en cityengine
Bajo el suelo de la Ciudad de la Luz se extiende uno de los mayores osarios del mundo: las Catacumbas de París. Esta vasta red subterránea, que originalmente fueron canteras de piedra caliza, fue transformada entre 1786 y 1814 en el último reposo para seis millones de parisinos, cuyos restos fueron trasladados desde cementerios abarrotados. Lo que comenzó como una solución de saneamiento urbano se convirtió en un laberinto mortal que ha capturado la imaginación popular y atrae a valientes exploradores urbanos. 💀
El laberinto donde la ciudad se encuentra con la muerte
El verdadero misterio de las Catacumbas no son solo los millones de cráneos y fémures que adornan sus paredes, sino la escala laberíntica de su diseño. Con más de 300 kilómetros de túneles que serpentean bajo París, solo una pequeña fracción está abierta al público oficialmente. A lo largo de los años, numerosos exploradores se han perdido en esta oscura red, algunos permanentemente. La abrumadora presencia de la muerte se manifiesta no solo visualmente, sino a través de una atmósfera opresiva que ha generado incontables relatos de fenómenos paranormales y encuentros fantasmales. 🌫️
Características únicas de las Catacumbas:- Paredes compuestas por patrones geométricos de cráneos y huesos largos
- Túneles que se extienden 300+ km bajo París
- Atmósfera constante de 14°C con 95% de humedad
Una red subterránea donde los visitantes se han perdido irremediablemente, rodeados por la densidad de la muerte
Configuración inicial del proyecto en cityengine
Para recrear las Catacumbas en CityEngine, comenzamos creando un nuevo proyecto con un terrain plano que represente el nivel del suelo de París. Establecemos el sistema de coordenadas en metros y definimos un área de trabajo de 2000x2000 metros para cubrir la extensión aproximada de las catacumbas. En el Inspector de Escena, configuramos las unidades en metros y activamos el sistema de snapping para un diseño preciso de los túneles. 🗺️
Configuración base del proyecto:- Área de trabajo: 2000x2000 metros
- Unidades: Métricas (metros)
- Sistema de coordenadas: Y-up para consistencia
Diseño del grafo de calles laberíntico
El corazón de la generación procedural en CityEngine es el grafo de calles. Creamos un patrón de calles orgánico usando la herramienta Street Growth con parámetros de angle variation alto (45-90°) y length variation medio. Aplicamos múltiples seed points distribuidos aleatoriamente para generar un laberinto naturalista que imite el crecimiento orgánico de las antiguas canteras. Los nodos de intersección deben tener radio mínimo para crear esquinas cerradas. 🕸️
Parámetros del grafo de calles:- Angle Variation: 45°-90° para patrones irregulares
- Street Length: 10-50 metros variación
- Segment Curvature: 0.3 para curvas suaves
Reglas CGA para generación de túneles
Las reglas CGA (Computer Generated Architecture) son el alma de CityEngine. Creamos una regla llamada CatacombTunnel.cga que comienza con:
@StartRule
Tunnel -->
offset(-0.5)
comp(f) { side : Wall | top : Ceiling | bottom : Floor }
Esta regla básica extruye la forma del túnel y separa las caras para aplicar diferentes texturas y geometrías a paredes, techo y suelo. El offset negativo crea el volumen excavado del túnel. 🏗️
Estructura básica de reglas:- @StartRule: Punto de entrada de la generación
- comp(f): Descompone la forma en caras
- offset: Crea el volumen del túnel
Generación procedural de paredes de huesos
Para las icónicas paredes de huesos, desarrollamos reglas CGA complejas:
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")
Este sistema divide las paredes en patrones regulares y alterna filas de cráneos y huesos largos basándose en el área disponible. Las condiciones case permiten variación según el contexto geométrico. 💀
Componentes del sistema óseo:- SkullRow: Fila de cráneos organizados
- BoneRow: Fila de fémures y tibias
- Stone sections: Áreas de piedra natural
Sistema de iluminación y atmósfera
La iluminación es crucial para la atmósfera opresiva. En CityEngine, configuramos luces puntuales estratégicas que simulen iluminación artificial antigua:
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])
Estas luces se distribuyen proceduralmente cada 20-30 metros a lo largo de los túneles principales, creando zonas de penumbra intercaladas con oscuridad profunda. La temperatura de color cálida replica lámparas de aceite históricas. 💡
Parámetros de iluminación:- Color: Cálido #ffcc99 para antorchas
- Intensidad: 0.5-0.8 para efecto tenue
- Distribución: Cada 20-30 metros
Variación y aleatoriedad controlada
Para evitar repeticiones evidentes, implementamos variación procedural usando funciones de ruido y condiciones contextuales:
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")
Este sistema crea patrones únicos pero coherentes, con variaciones en densidad y estado de conservación de los huesos que reflejan la realidad histórica. 🎲
Elementos de variación:- Densidad de huesos: 60-80% cobertura
- Estados de conservación: Intacto, erosionado, roto
- Patrones: Regular, agrupado, disperso
Exportación para motores de juego
Una vez generadas las catacumbas, las exportamos a formatos estándar usando el CityEngine Exporter. Para Unity, exportamos como FBX con LOD groups. Para Unreal Engine, usamos Datasmith format que preserva los materiales y la organización de la escena. Las reglas CGA se compilan en geometría estática optimizada para real-time rendering. 📤
Opciones de exportación:- FBX: Para Unity y otros motores
- glTF: Para aplicaciones web y móviles
- OBJ: Como formato universal de respaldo
Aplicaciones del modelo generado
El modelo de las Catacumbas generado en CityEngine tiene múltiples aplicaciones: desde entornos para videojuegos de terror hasta herramientas educativas de realidad virtual que permiten explorar este sitio histórico sin riesgos. La naturaleza parametrica del modelo permite generar variaciones infinitas para diferentes propósitos, manteniendo siempre la esencia laberíntica y opresiva del original. 🎮
El futuro del patrimonio cultural procedural
La recreación de las Catacumbas de París en CityEngine representa la vanguardia en preservación digital. Al capturar no solo la geometría, sino las reglas subyacentes de su construcción, creamos un modelo vivo que puede evolucionar y adaptarse a diferentes necesidades. Este enfoque democratiza el acceso a sitios históricos peligrosos o inaccesibles, permitiendo a estudiantes, investigadores y artistas experimentar estos espacios de manera segura mientras se preserva su legado para las generaciones futuras. ✨