Saturday, November 14, 2009

Cidades Matemáticas



Dizem alguns teóricos do urbanismo que as cidades são como organismos vivos. Crescem de forma aparentemente aleatória e orgânica, estendendo-se pelos espaços verticais e horizontais. Mas as cidades são criadas casa a casa, prédio a prédio, rua a rua e arranha-céus a arranha-céus. É preciso deitar mãos à obra e construir.

No mundo do digital as cidades são um desafio. Quer na modelação e animação 3D quer nos jogos de computador, as cidades são ambientes ricos que trazem a promessa de interessantes espaços a explorar. Um bom exemplo disso é o jogo Grand Theft Auto, que faz da cidade o palco interactivo das aventuras. Teria o jogo um apelo tão grande se se concentrasse apenas no desafio do comportamento anti-social e não tivesse um ambiente imersivo tão abrangente, com tantas ruas, becos e edifícios para explorar? O problema é que no digital as cidades são difícieis de criar. Podem ser modeladas a partir de sólidos simples texturizados com imagens de edifícios, mas isso não cria espaços que podem ser explorados. Podem ser criadas edifício a edifício, mas modelar pormenorizadamente cada prédio com interiores e exteriores dá um enorme e caro trabalhão. Pegando novamente no exemplo do Grand Theft Auto, a parte mais complexa do jogo que demorou mais tempo a criar e foi mais cara a desenvolver foi precisamente o espaço da cidade.

Os computadores são máquinas abertas cujos limites estão na criatividade dos utilizadores. Perante um problema - por exemplo, como construir cidades realistas e apelativas com baixos custos de tempo, recursos do computador e dinheiro, existe sempre uma forma de encontrar uma solução. Para as cidades virtuais, a solução está nas cidades procedurais. Esta é uma tecnologia que permite criar edifícios e ruas a partir da manipulação de variáveis pré-definidas. Depois, o algoritmo faz o resto, e a finalização do trabalho fica-se por adicionar alguns graus de realismo. Ou seja, em vez de se criar uma cidade edifício a edifício, utiliza-se uma expressão matemática que gera automaticamente a cidade a partir de pequenas manipulações das variáveis disponíveis. Esta é uma tecnologia que está a a ser desenvolvida para a indústria dos jogos e para o campo da modelação e animação 3D.

Descobri esta tecnologia através de um post no BLDBLg intitulado Procedural Destruction and the Algorithmic Fiction of the City, que nos mostra projectos como o Pixel City (pode ser descarregado no Google Code), Substrate, criado na linguagem Processing mas experimentável através de uma aplicação em Java, e o intrigante Subversion, jogo para o qual está a ser desenvolvido um potente motor de geração procedural.

Para além destes projectos, existem o City Engine, um avançado motor de geração urbana; o City Gen para POVRay; City Gen; CityGen, que permite criar cidades exportáveis para vRML. Os utilizadores do programa de modelação 3D gratuito Blender podem utilizar o script Suicidator City Engine. Para Bryce, o City Generator 1.2 cria texturas que podem ser aplicadas em terrenos para gerar cidades aleatórias. Os utilizadores do 3DS Max podem contar com o Building Generator, um script que gera edifícios através da definição de variáveis. A página Building and City Notes apresenta alguns dos projectos a ser correntemente desenvolvidos nesta àrea.

No comments: