Física + IA: Como um Agente Autônimo (Reasonix) Transformou 4 Equações em uma Simulação Web em Minutos
O Projeto
Partindo de uma base já consolidada em Rust/WASM (uma calculadora de testes estatísticos T), expandi o sistema para criar um Mapeador de Campo Elétrico Interativo rodando 100% no navegador.
O usuário insere um JSON com cargas elétricas — cada uma com posição (x, y) e carga q (positiva ou negativa) — e o sistema renderiza um mapa de cores onde:
- A direção do vetor campo elétrico define a Matiz (Hue)
- A intensidade define o Brilho (Value)
A Física Traduzida para Lógica de Programador
O grande diferencial foi que eu não precisei descrever equações abstratas para a IA. Eu traduzi cada conceito físico em uma instrução imperativa clara. Foi essa "ponte de tradução" que fez o agente acertar de primeira.
| O que eu sabia (Física) | O que passei para a IA (Lógica / Instrução) |
|---|---|
| O campo elétrico é a soma vetorial de todas as cargas. | Faça um for para cada pixel e, dentro dele, outro for para cada carga, somando Ex e Ey. |
| A força diverge quando a distância é zero (( r \to 0 )). | Use max(r, 0.1) para evitar divisão por zero (Softening Parameter). |
| A direção do campo é um ângulo no plano. | Use atan2(Ey, Ex) para obter o ângulo e converta para Matiz (0° a 360°). |
| A intensidade cai com ( 1/r^2 ), criando áreas muito escuras. | Aplique brightness = sqrt(magnitude) para clarear o fundo sem perder os picos (correção de gamma). |
| O Canvas do navegador espera pixels no formato RGBA. | Monte um Vec<u8> com [R, G, B, 255] e devolva como Uint8ClampedArray. |
Com essa tabela em mãos, o agente não precisou "inventar" física — ele só precisou saber escrever Rust e WASM.
O Papel do Agente de IA (Reasonix)
Com o domínio da física claro, o agente foi acionado para fazer o que ele faz de melhor: traduzir lógica em código compilável e integrado. Em uma sequência de 4 prompts, o Reasonix executou:
-
Arquitetura de Módulos
Criou o arquivosimulation.rs, definiu a structChargecom derivesSerialize/Deserialize, e integrou aolib.rssem quebrar a funcionalidade estatística existente. -
Motor de Cálculo (Solver)
Escreveu o loop aninhado que percorre 240 mil pixels (600×400) calculando a contribuição vetorial de cada carga para cada pixel, gerando um vetorVec<u8>no formato RGBA. -
Ponte WASM de Alta Performance
Em vez de serializar a imagem em JSON (lento e pesado), o agente usoujs_sys::Uint8ClampedArray, criando uma ponte direta com oImageDatado Canvas do navegador — com zero overhead de parsing. -
Interface Frontend
Construiu a seção HTML/CSS/JS com textarea para JSON, slider para a constante ( k ), botão de renderização, tratamento de erros, toggle de tema claro/escuro (com persistência emlocalStorage) e um botão "Adicionar Carga Aleatória" que preserva as cargas existentes.
A Eficiência (O Ganho Real)
| Métrica | Sem IA (estimativa) | Com IA (realizado) |
|---|---|---|
| Tempo gasto | 3 a 5 horas | Menos de 30 minutos |
| Tarefas manuais | Lembrar sintaxe exata do wasm-bindgen para arrays, ajustar Cargo.toml sem conflitos de versão, escrever parser JSON manualmente, debugar ordem dos canais RGBA. | O agente gerou o código pronto, compilando sem warnings e funcionando de primeira. |
| Interações humanas | Dezenas de tentativa e erro. | 4 prompts + 1 ajuste fino (para a correção de brilho). |
A Conclusão do Experimento
A IA não substitui o conhecimento físico. Se eu não soubesse que:
- O campo elétrico é um vetor,
- Precisamos de softening para evitar singularidades,
- A percepção humana de brilho é logarítmica (por isso a raiz quadrada),
o resultado seria um amontoado de cores sem sentido ou um programa quebrado.
O grande trunfo do agente foi:
- Absorver a arquitetura do projeto existente,
- Gerenciar as dependências (
Cargo.toml) sem conflitos, - Escrever a cola sintática (bindings WASM/JS) que consome 80% do tempo de um desenvolvedor,
permitindo que eu focasse apenas na validação física e na experiência do usuário.
Essa é a nova dinâmica da programação científica:
O humano dita a física; a IA dita a máquina.
#RustLang #WebAssembly #WASM #Fisica #Eletromagnetismo #IA #Programacao #CienciaDeDados