As catacumbas de Paris: recriando o labirinto de seis milhões de esqueletos no CityEngine

Publicado em 25 de January de 2026 | Traduzido do espanhol
Vista de CityEngine mostrando la generación procedural de las Catacumbas de París, con el editor de reglas CGA abierto y la vista 3D de túneles laberínticos y paredes de huesos generadas automáticamente.

As catacumbas de Paris: recriando o labirinto de seis milhões de esqueletos no CityEngine

Sob o solo da Cidade da Luz se estende um dos maiores ossuários do mundo: as Catacumbas de Paris. Esta vasta rede subterrânea, que originalmente foram pedreiras de calcário, foi transformada entre 1786 e 1814 no último repouso para seis milhões de parisienses, cujos restos foram transferidos de cemitérios superlotados. O que começou como uma solução de saneamento urbano se tornou um labirinto mortal que capturou a imaginação popular e atrai valentes exploradores urbanos. 💀

O labirinto onde a cidade encontra a morte

O verdadeiro mistério das Catacumbas não são apenas os milhões de crânios e fêmures que adornam suas paredes, mas a escala labiríntica de seu design. Com mais de 300 quilômetros de túneis que serpenteiam sob Paris, apenas uma pequena fração está aberta ao público oficialmente. Ao longo dos anos, numerosos exploradores se perderam nesta rede escura, alguns permanentemente. A presença avassaladora da morte se manifesta não apenas visualmente, mas através de uma atmosfera opressiva que gerou incontáveis relatos de fenômenos paranormais e encontros fantasmagóricos. 🌫️

Características únicas das Catacumbas:
  • Paredes compostas por padrões geométricos de crânios e ossos longos
  • Túneis que se estendem 300+ km sob Paris
  • Atmosfera constante de 14°C com 95% de umidade
Uma rede subterrânea onde os visitantes se perderam irremediavelmente, rodeados pela densidade da morte

Configuração inicial do projeto no CityEngine

Para recriar as Catacumbas no CityEngine, começamos criando um novo projeto com um terreno plano que represente o nível do solo de Paris. Estabelecemos o sistema de coordenadas em metros e definimos uma área de trabalho de 2000x2000 metros para cobrir a extensão aproximada das catacumbas. No Inspector de Cena, configuramos as unidades em metros e ativamos o sistema de snapping para um design preciso dos túneis. 🗺️

Configuração base do projeto:
  • Área de trabalho: 2000x2000 metros
  • Unidades: Métricas (metros)
  • Sistema de coordenadas: Y-up para consistência

Design do grafo de ruas labiríntico

O coração da geração procedural no CityEngine é o grafo de ruas. Criamos um padrão de ruas orgânico usando a ferramenta Street Growth com parâmetros de variação de ângulo alto (45-90°) e variação de comprimento médio. Aplicamos múltiplos seed points distribuídos aleatoriamente para gerar um labirinto naturalista que imite o crescimento orgânico das antigas pedreiras. Os nós de interseção devem ter raio mínimo para criar esquinas fechadas. 🕸️

Parâmetros do grafo de ruas:
  • Angle Variation: 45°-90° para padrões irregulares
  • Street Length: 10-50 metros variação
  • Segment Curvature: 0.3 para curvas suaves

Regras CGA para geração de túneis

As regras CGA (Computer Generated Architecture) são a alma do CityEngine. Criamos uma regra chamada CatacombTunnel.cga que começa com:

@StartRule
Tunnel -->
   offset(-0.5)
   comp(f) { side : Wall | top : Ceiling | bottom : Floor }

Esta regra básica extruda a forma do túnel e separa as faces para aplicar diferentes texturas e geometrias a paredes, teto e chão. O offset negativo cria o volume escavado do túnel. 🏗️

Estrutura básica de regras:
  • @StartRule: Ponto de entrada da geração
  • comp(f): Decompõe a forma em faces
  • offset: Cria o volume do túnel

Geração procedural de paredes de ossos

Para as icônicas paredes de ossos, desenvolvemos regras CGA complexas:

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 as paredes em padrões regulares e alterna fileiras de crânios e ossos longos baseando-se na área disponível. As condições case permitem variação conforme o contexto geométrico. 💀

Componentes do sistema ósseo:
  • SkullRow: Fileira de crânios organizados
  • BoneRow: Fileira de fêmures e tíbias
  • Seções de pedra: Áreas de pedra natural

Sistema de iluminação e atmosfera

A iluminação é crucial para a atmosfera opressiva. No CityEngine, configuramos luzes pontuais estratégicas que simulam iluminação artificial antiga:

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 luzes são distribuídas proceduralmente a cada 20-30 metros ao longo dos túneis principais, criando zonas de penumbra intercaladas com escuridão profunda. A temperatura de cor quente replica lâmpadas de óleo históricas. 💡

Parâmetros de iluminação:
  • Cor: Quente #ffcc99 para tochas
  • Intensidade: 0.5-0.8 para efeito tênue
  • Distribuição: A cada 20-30 metros

Variação e aleatoriedade controlada

Para evitar repetições evidentes, implementamos variação procedural usando funções de ruído e condições contextuais:

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 cria padrões únicos mas coerentes, com variações na densidade e estado de conservação dos ossos que refletem a realidade histórica. 🎲

Elementos de variação:
  • Densidade de ossos: 60-80% cobertura
  • Estados de conservação: Intacto, erodido, quebrado
  • Padrões: Regular, agrupado, disperso

Exportação para motores de jogo

Uma vez geradas as catacumbas, as exportamos para formatos padrão usando o CityEngine Exporter. Para Unity, exportamos como FBX com LOD groups. Para Unreal Engine, usamos formato Datasmith que preserva os materiais e a organização da cena. As regras CGA são compiladas em geometria estática otimizada para renderização em tempo real. 📤

Opções de exportação:
  • FBX: Para Unity e outros motores
  • glTF: Para aplicações web e móveis
  • OBJ: Como formato universal de backup

Aplicações do modelo gerado

O modelo das Catacumbas gerado no CityEngine tem múltiplas aplicações: desde ambientes para videogames de terror até ferramentas educacionais de realidade virtual que permitem explorar este sítio histórico sem riscos. A natureza paramétrica do modelo permite gerar variações infinitas para diferentes propósitos, mantendo sempre a essência labiríntica e opressiva do original. 🎮

O futuro do patrimônio cultural procedural

A recriação das Catacumbas de Paris no CityEngine representa a vanguarda na preservação digital. Ao capturar não apenas a geometria, mas as regras subjacentes de sua construção, criamos um modelo vivo que pode evoluir e se adaptar a diferentes necessidades. Esta abordagem democratiza o acesso a sítios históricos perigosos ou inacessíveis, permitindo que estudantes, pesquisadores e artistas experimentem estes espaços de maneira segura enquanto se preserva seu legado para as gerações futuras. ✨