Um simulador de física comum responde a uma pergunta simples, que é o que acontece com o tecido se eu soltar ele sobre o personagem. O DiffGIPC, descrito no artigo publicado no arXiv em 13 de outubro, responde à pergunta contrária, o que eu preciso mudar no começo para chegar neste resultado. É isso que "diferenciável" quer dizer na prática, porque o sistema calcula o gradiente, a direção em que cada parâmetro deve mudar, mesmo atravessando contatos e atrito.
O trabalho é de Kemeng Huang, Bowen Ren e Taku Komura, da Universidade de Hong Kong, com Xinyu Lu e Minchen Li, professor da Carnegie Mellon, um dos nomes por trás do IPC, a técnica de contato sem interpenetração que virou referência em simulação. O truque para ganhar velocidade foi tratar objetos quase rígidos como corpos afins, com só 12 graus de liberdade cada, e resolver tudo numa única etapa por quadro na GPU. Contra o DiffIPC, o pico de aceleração foi de cerca de 150 vezes com malhas deformáveis completas e de 4.133 vezes com corpos afins. O código, segundo os autores, será liberado.
Os exemplos dizem muito sobre para onde isso pode ir. Num deles, o sistema ajusta a escala de repouso de um vestido para que ele caia no corpo do jeito de um alvo definido. Em outros, redesenha os ombros de um cabide para segurar melhor uma peça, ajuda dois braços robóticos a pegar uma toalha.
Para quem trabalha com efeitos visuais, a ideia mexe num hábito antigo. Hoje o artista de simulação ajusta parâmetros, roda, olha, ajusta de novo, num ciclo que pode consumir dias numa cena de roupa difícil. A simulação de cabelo da Meta e da NVIDIA, publicada há poucos dias, já mostrava o tamanho do ganho de velocidade possível, e o DiffGIPC soma a isso a capacidade de descobrir sozinho qual ajuste fazer.
Fico pensando no artista que passou anos aprendendo a ler um tecido errado e adivinhar qual número mexer. Esse olhar treinado continua sendo o que define o alvo, já que a máquina só otimiza o que alguém disse que estava bom. Quem, num estúdio, vai ter a palavra final sobre como um vestido deve cair quando calcular o caminho até ele deixar de ser trabalho de alguém?