Relacionado com a cidade

By | Junho 18, 2022
Relacionado com a cidade

Um jogo de construção de cidades que usa modelos microscópicos para simulação vívida organismo da cidade surgindo a partir de interações de milhões indivíduos.

Pessoas em movimento, negócios no comércio, bairros estão mudando. Todo morador luta, se adapta, faz escolhas de vida. A cidade está evoluindo, a cidade está crescendo. Nós somos a cidade.

Veja e revise todos os aspectos da vida da cidade, em muitas escalas de tempo e espaço.

Projete sua cidade esboçando planos de projeto detalhados para infraestrutura e zonas.

Implementa projetos, decide orçamentos e toma decisões governamentais.

Citybound tem uma visão ambiciosa e foi desenvolvido principalmente como um homem esforço de código aberto. Acompanhe meu processo de criação no DevBlog e Câmara Municipal do Reddit. Se você for corajoso, tente performances experimentais ao vivo. Citybound é orgulhosamente financiado pela comunidade.

Simulação de microeconomia

No Citybound, cada domicílio individual (família ou empresa) é simulado individualmente. Todo lar tem um lar, e as atividades diárias de seus familiares ou funcionários são pautadas pelos recursos que o lar necessita e oferece. Cada família mantém um inventário preciso de seus recursos em tempo real, que inclui não apenas bens materiais como mantimentos, matérias-primas ou dinheiro, mas também conceitos intangíveis como sono, saúde, recreação, trabalho, interesses turísticos ou serviços empresariais.

Os padrões econômicos surgem diretamente das interações domésticas. Para satisfazer as suas necessidades humanas ou empresariais, cada agregado familiar procura encontrar “parceiros comerciais” atraentes para cada recurso, tendo em conta as diferenças de preço e qualidade, mas também a disponibilidade local com base nas condições de transporte. As famílias mudam as prioridades de suas necessidades durante o dia, levando a padrões naturais de deslocamento, compras ou viagens logísticas.

Trabalho futuro: Simulação preliminar das condições do comércio local para determinar a atratividade dos imóveis, afetando a imigração, o desenvolvimento e o crescimento da cidade. Escalar o sistema para edifícios de alta densidade e uma grande população na casa dos milhões.

Detalhes e inspiração ▾

  • A inspiração original para simular cidades ao nível dos indivíduos e das suas interações (e sobretudo o lançamento de Citybound) veio de SimCity (2013)que, no entanto, implementou apenas uma versão muito superficial dela (modelando as pessoas mais como líquidos com molas e drenos)

Funciona:

  • Kim, D. (2012). Modelagem do crescimento urbano: rumo a uma abordagem microeconômica baseada em agentes da dinâmica urbana e simulação de políticas espaciais.
  • Koomen, E., Diogo, V., Dekkers, J. e Rietveld, P. (2015). Estrutura de adequação baseada em utilidades para modelagem integrada de uso da terra local.
  • Waddell, P., Borning, A., Noth, M., Freier, N., Becke, M., & Ulfarsson, GF (2003). Microsimulação de desenvolvimento urbano e seleção de locais: Projeto e implementação do UrbanSim.
  • Park, IK e von Rabenau, B. (2011). Desmontagem das economias de aglomeração: agentes, fontes e dependência espacial.
  • Tiglao, NCC (2005). Modelagem domiciliar e seleção de localização na região metropolitana de Manila.
  • Weidner, T., Moeckel, R. e Brinckerhoff, P. (2011). SILO: Modelo de uso do solo para modelagem integrada.
  • Beckmann, KJ, Brüggemann, U., Gräfe, J., Huber, F., Meiners, H., Mieth, P.,… Wegener, M. (2007). Modelagem integrada do uso do solo e simulação do sistema de transporte da ILUMAS.

Simulação de transporte microscópico

O fluxo eficiente de tráfego através da infraestrutura de transporte é vital para a saúde da cidade. O tráfego é determinado espontaneamente pelos objetivos microeconômicos de seus participantes – e eventos caóticos estão no centro do tráfego. Porque em Citybound cada jornada individual de cada pessoa é simulada microscopicamente. Centenas de milhares de carros estão se movendo fisicamente nas estradas e precisam quebrar, acelerar e mudar de faixa no trânsito para chegar ao seu destino com segurança.

Trabalho futuro: Outros modos de transporte (pedestres, ferroviários leves e pesados, aeroportos, etc.). Pesquisa de rotas multimodal (combinando caminhada, transporte público, táxis e condução até os destinos).

Detalhes e inspiração ▾

  • A simulação microscópica de tráfego foi a primeira parte do Citybound que implementei – minha estratégia foi mostrar que posso fazer essa parte muito intensa da simulação de cidades em uma escala de cidades com milhões de habitantes. Dado que os protótipos já iniciais podiam simular até 400.000 carros em tempo real, isso seria suficiente para cidades com cerca de 4 milhões de habitantes.
  • Como a rede rodoviária está sujeita a mudanças frequentes no Citybound, muitos métodos de pesquisa de rotas estáticas que exigem estimativas longas, mas oferecem pesquisa rápida sob demanda, não são apropriados. As informações de localização de rotas na cidade são armazenadas na própria rede rodoviária e são atualizadas e disseminadas dinamicamente pela rede, semelhante às tabelas de roteamento online.

Funciona:

  • Blatnig, S. (2008). Simulação microscópica de tráfego com agentes inteligentes.
  • Liberti, L. (2014). 14º workshop sobre abordagens algorítmicas para modelagem, otimização e sistemas de tráfego.
  • Sturtevant, N. e Buro, M. (2004). Parcialmente encontrando um caminho usando abstração e finalizando o mapa.

colaborativo tátil
planejamento

O princípio básico da interação com o mundo dos jogos em Citybound é através do planejamento. Isso lhe dá a capacidade de revisar os efeitos até mesmo de grandes projetos em sua cidade, desfazer e refazer e combinar ideias diferentes. Gestos de imagens inteligentes tornam-se estradas lindamente curvas e zonas perfeitamente moldadas, oferecendo o poder e a expressividade das ferramentas CAD profissionais, ao mesmo tempo em que são muito mais intuitivos e divertidos de usar.

O gerenciamento preciso das atualizações do plano não apenas permite a edição interativa suave até mesmo de grandes cidades, mas também torna planejamento multijogador conjunto possível, onde várias pessoas podem jogar e trabalhar na mesma cidade em tempo real.

Trabalho futuro: Planejamento com recursos 3D, como pontes e túneis. Revisão do impacto financeiro e político dos projetos planejados.

Simulação distribuída baseada em atores

Para concretizar a visão da Citybound de simular grandes cidades e transmiti-las em navegadores para interação, tive que inventar e implementar uma arquitetura de computação bastante incomum. Atores e mensagens são conceitos-chave Kay, minha estrutura de sistema de atores que eleva a lógica de simulação do Citybound de suas bases de rede transparente e facilmente escaláveis. Implementado em Rust, ele permite atualizações de atores com segurança de tipo e alto desempenho e comunicação multi-ator, com baixos níveis de otimização de localização de cache, enquanto oferece recursos de alto nível, como transmissão e mensagens dinâmicas distribuídas.

Detalhes e inspiração ▾

  • A principal inspiração para minha abordagem foi minha experiência com Erlang linguagem de programação para sistemas distribuídos.
  • Kay tem relativamente poucos recursos e abstrações comparados, mas isso permite um foco em alto desempenho, com um número mínimo de atores e mensagens na memória.
  • A aparência consolidada do estado dos atores na memória e os mecanismos de tratamento de mensagens de broadcast que recebem até milhões de atores são muito inspirados Design de mecanismo de jogo orientado a dadosum componente-chave de um padrão muito bem-sucedido de sistemas de componentes de entidade.

Ponte RUSt-WASM-JS

A tradução de Kay para o WebAssembly permite que você execute um nó de ator de navegador totalmente desenvolvido, que pode se comunicar com o plano de fundo da simulação por meio de mensagens seguras de alto desempenho e realizar um trabalho de renderização computacionalmente intensivo antes da serialização eficiente e encaminhamento de informações de renderização, como objetos JavaScript para um Aplicativo React que implementa o restante da interface do usuário. O aplicativo React pode invocar ganchos Rust que são exportados para JavaScript, para enviar mensagens Kay de volta ao plano de fundo da simulação para impactar o mundo do jogo com base na entrada do jogador.

Quadro de interface do usuário 2D + 3D reativo

Definir uma interface de usuário 2D e 3D combinada para interagir com os objetos de planejamento e simulação bastante complexos do Citybound é uma tarefa difícil. Estruturas reativas baseadas em componentes com um fluxo claro de informações simplificaram muito o desenvolvimento da interface de usuário 2D nos últimos anos. Estou expandindo o React com meu próprio Moeda biblioteca, aplicando o princípio React (envolvendo atualizações de estado em uma API declarativa e funcional) para renderização WebGL e gerenciamento de recursos de GPU. Além disso, estou definindo um novo tipo de componente React que representa uma forma interativa no mundo 3D. Juntos, isso me permite definir totalmente o layout 2D e 3D e a interatividade de um objeto de jogo em um único componente React.

Kernel geométrico robusto de alto desempenho

Quase todos os objetos no mundo Citybound podem ser moldados arbitrariamente, sejam estradas, zonas ou terrenos de construção – e sua forma exata geralmente resulta de operações geométricas complexas entre outros objetos. Meu Descartes a biblioteca fornece tudo, desde operações simples de caminho até grandes tarefas de sobreposição de polígonos, com ênfase no desempenho e robustez topológica, apesar de aproximações e imprecisões.

Estrutura de cálculo incremental

Para permitir a edição interativa de planos de grandes cidades em tempo real e reduzir o uso de largura de banda entre a interface do usuário e o servidor durante a revisão dos resultados do fluxo do plano, é vital ter uma formalização precisa de como as mudanças na entrada do plano afetam os resultados do plano e então comunicar apenas diferenças. Atualmente implementada ad-hoc em um gerenciador de planejamento monolítico, essa abordagem será generalizada e traduzida em uma estrutura distribuída para permitir que os planos se estendam além de um único servidor em segundo plano.

Detalhes e inspiração ▾

Funciona:

  • Matthew A. Hammer, Joshua Dunfield, Kyle Headley, Nicholas Labich, Jeffrey S. Foster, Michael W. Hicks, David Van Horn. Cálculo incremental com nomes – Veja também adapton.org

Pipeline de geometria processual

O fato de que quase toda geometria em Citybound é uma oportunidade processual também é um desafio. Os primeiros trabalhos começaram no meu Michelangelo uma biblioteca que fornecerá gramáticas de formas expressivas para descrever estilos arquitetônicos ou formas naturais baseadas em extrusão, que podem então ser avaliadas sob demanda para gerar redes agregadas de forma otimizada e matrizes de instâncias com níveis dinâmicos de detalhes e componentes animados.

Detalhes e inspiração ▾

Funciona:

  • Kelly, T. e Wonka, P. (2011). Modelagem arquitetônica interativa com extrusões processuais.
  • Kelly, T. (2013). Modelagem procedural não escrita com esqueletos.

Deixe uma resposta

O seu endereço de email não será publicado.