Como uma game engine pode ser usada para ajudar a desacelerar o avanço do Covid-19
A simulação por computador tem sido usada há décadas por pesquisadores, engenheiros, solucionadores de problemas e formuladores de políticas em muitos campos, incluindo o estudo de doenças infecciosas. A
Unity Simulation permite um tipo especial de simulação em tempo real que pode ser dimensionado na nuvem para estudar holisticamente sistemas grandes, complexos e incertos. Foi construído um projeto de demonstração simplificado para simular a disseminação do coronavírus em um supermercado fictício e explorado o impacto que a política da loja tem sobre as taxas de exposição. O código fonte completo deste projeto foi disponibilizado no
GitHub da
Unity para que qualquer pessoa possa estender.
Disclaimer: O projeto mencionado neste post (incluindo todas as informações e dados associados a ele) é "como está" e "conforme disponível". Você é o único responsável pelo uso do projeto, e a Unity Technologies e suas afiliadas não fazem representações ou garantias de qualquer tipo relacionadas ao projeto ou ao seu uso; consulte os termos da licença para obter detalhes.
Sem limitar o exposto, eles querem ser absolutamente claros: eles não são epidemiologistas ou médicos. Nada neste projeto pode ou deve ser tomado como orientação médica ou outro tipo de orientação ou conselho. Este é um modelo conceitual baseado em regras simplificadas. Não é validado cientificamente. Para obter orientação ou aconselhamento sobre o novo coronavírus, como ele é disseminado, que medidas você pode tomar para evitar a infecção ou qualquer outra coisa relacionada à saúde, consulte um profissional de saúde competente.
Simulação e coronavírus
A simulação por computador tem sido usada há décadas por pesquisadores, engenheiros, solucionadores de problemas e formuladores de políticas em muitos campos. É uma solução central para o problema de prever o que pode acontecer em condições complexas e incertas. A simulação desempenha um papel importante na pesquisa de doenças infecciosas e tem sido aplicada a doenças que variam da peste bubônica ao HIV / AIDS. Os pesquisadores iniciam o processo coletando primeiro dados relevantes do campo. Eles desenvolvem modelos matemáticos teóricos e heuristicamente informados usando os dados. Os modelos matemáticos são então incorporados a uma ferramenta de simulação que calcula os resultados de interesse, como a disseminação viral, a partir de vários parâmetros de entrada, como fatores de exposição à densidade populacional. Finalmente, a simulação permite observações gerais e estudos hipotéticos, levando a um entendimento conceitual das situações do mundo real que os especialistas podem usar para informar decisões políticas desafiadoras.
À medida que o novo coronavírus se espalhou pelo mundo, os governos tomaram medidas drásticas para conter a gravidade da pandemia. Enquanto isso, os principais institutos de pesquisa estão desenvolvendo rigorosas simulações científicas para ajudar a informar as políticas do governo. Um artigo do
The New York Times descreve algumas das projeções que o
Instituto para Modelagem de Doenças (IDM), uma instituição privada, está desenvolvendo para ajudar a informar políticas. Várias simulações conceitualmente orientadas foram recentemente projetadas para ajudar o público a visualizar e entender como o novo coronavírus progride e como nossas ações podem ajudar a impedir sua propagação. Aqui estão alguns exemplos interessantes que foram encontradas:
- Uma simulação conceitual publicada pelo The Washington Post demonstrando o impacto do "distanciamento social";
- Um estudo colaborativo da Katholieke Universiteit Leuven e da Universidade de Tecnologia de Eindhoven usando simulação detalhada de fluidos para mostrar o potencial de propagação durante situações de ciclismo e corrida;
- Um estudo da Finlândia usando simulação detalhada de fluidos para mostrar como uma tosse pode se espalhar em um supermercado.
Simulando ambientes espaciais na Unity
Pesquisadores e empresas usam a
Unity para simular com eficiência ambientes espaciais. A
Unity permite a simulação em tempo real no modo interativo e pode simular quadros ainda mais rápido do que o tempo real no modo offline. Desenvolvendo projetos na
Unity que representam ambientes do mundo real, parametrizando esses projetos para simulação e executando muitos cenários simulados na nuvem, eles podem entender holisticamente sistemas complexos para informar as principais políticas ou decisões de design. Vamos definir alguns destes termos:
- Um ambiente na Unity é uma representação espacial 3D de um espaço definido e de todos os objetos que ele contém. Esses objetos podem ser fixados em posição ou podem se mover e mudar de acordo com regras programadas, modelos físicos ou algoritmos de aprendizado de máquina. Objetos em um ambiente podem ser simplificados ou altamente detalhados visualmente;
- Um parâmetro é um aspecto identificado do ambiente da Unity que pode mudar de uma simulação para a seguinte. Como a Unity é uma estrutura altamente extensível baseada em C#, os parâmetros podem ser muito simples, como uma mudança na velocidade do movimento de um único objeto, ou podem ser mais complexos, como a lógica que lida com o comportamento da multidão;
- Um cenário é uma combinação de configurações de parâmetros a serem executadas em um ambiente ao longo de uma simulação. Cada simulação normalmente corresponde a um único cenário. Um trabalho em lotes de simulação na nuvem pode consistir em vários cenários.
Explorando essas definições por meio de um caso de uso relacionado: a disseminação do novo coronavírus em um sistema de compradores em uma mercearia. O ambiente em uma simulação como essa seria a representação espacial da loja, os compradores saudáveis ??e infectados que ela contém e as regras para transmissão de vírus. Os parâmetros podem incluir as regras da loja, como o número permitido de compradores ou o número de caixas registradoras abertas. Cada combinação desses valores de parâmetros compreenderia um cenário separado. À medida que cada cenário é simulado, os comportamentos emergentes do sistema dinâmico se desenrolam e fica claro como as regras de uma loja podem levar mais ou menos indivíduos a serem expostos ao vírus. Uma simulação como essa pode fornecer informações úteis sobre as variáveis ??que afetam a taxa de exposição, para que a gerência da loja possa desenvolver políticas e procedimentos para reduzir potencialmente a propagação da doença nesses ambientes.
A
Unity Technologies construiu um projeto de demonstração simplificado para ilustrar como isso poderia ser e inspirar a comunidade de usuários da
Unity e a comunidade de modelagem de doenças a pensar em novas maneiras de modelar a disseminação do coronavírus. O
IDM guiou a equipe ao longo deste projeto, referindo a eles vários modelos científicos existentes para transmissão do coronavírus que ajudaram a informar a visão.
A
Unity funciona bem para modelagem de sistemas, porque pode simular sistemas de forma eficiente em escalas de tempo mais longas do que alguns outros tipos de ferramentas de simulação. Isso significa que, em vez de simular um evento curto de tosse espalhada por vírus em um único segundo, usando muitas horas de computação em um simulador de dinâmica de fluidos, a
Unity pode simular um grupo de 50 indivíduos que se deslocam em um ambiente ao longo de 10 minutos usando dinâmica de propagação simplificada . Ao simular um período mais longo, as tendências de expansão em larga escala se tornam evidentes. Aproveitando os recursos de simulação de nuvem em lote, a simulação pode ser acelerada para calcular mais rápido que o tempo real e executar dezenas ou centenas de milhares de cenários em um lote em questão de horas.
Simulação em nuvem de todo o espaço de parâmetros
Depois de construída a simulação, foi amostrado cada parâmetro em vários valores e executado um trabalho de simulação em lote na nuvem usando 10.000 instâncias de simulação para testar todas as combinações dos valores de parâmetros amostrados em apenas três horas. Cada combinação de valores de parâmetros foi simulada cinco vezes para contabilizar a aleatoriedade e a média da saída. Este trabalho em lotes produziu um arquivo de resultados contendo o número de compradores íntegros e o número de compradores expostos a cada execução. Foi calculada facilmente a taxa de exposição como o número de compradores expostos dividido pelo número total de compradores após o processamento dos dados em uma planilha.
Conclusão
Usando os dados de saída da simulação de todas as execuções, conseguiram produzir uma visão resumida de alto nível da taxa de exposição em função da política da loja. Na figura abaixo, é mostrada a relação entre o número de registros abertos para diferentes números de compradores permitidos. Quando apenas um registro é aberto, as taxas de exposição são muito altas, especialmente quando a loja está lotada com 30 ou 40 compradores, devido a backups na área de
checkout. A abertura de um segundo registro tem o maior impacto na redução da taxa de exposição. Os benefícios se nivelam após esse momento em que a loja possui 20 compradores, mas abrir até cinco registros é útil quando a loja possui 30 ou 40 compradores.
Estenda este projeto por conta própria
Esta simulação é apenas um ponto de partida. Os parâmetros que foram usados no modelo matemático para transmissão têm um grande impacto nos resultados e precisam ser rigorosamente desenvolvidos usando dados reais. O projeto está sendo disponibilizado, incluindo seu código-fonte completo, via
GitHub para qualquer pessoa experimentar. Você pode executar a demonstração descrita acima usando a versão gratuita da
Unity Game Simulation beta, que aproveita a
Unity Simulation e a
Unity Remote Config.
Fonte: Unity Blog
Responsáveis: James Fort, Adam Crespi, Chris Elion, Rambod Kermanizadeh, Priyesh Wani e Danny Lange
Tradução e adaptação: Eliyud