Sobre o projeto

SwarmingLilMen é um motor experimental para sistemas multi‑agente emergentes, atualmente baseado em uma simulação 2D de boids/enxame construída a partir de princípios fundamentais em C#/.NET 8.0. Ele prioriza a emergência em vez de scripts: algumas regras simples e composáveis de direção geram padrões macro ricos. O projeto está em desenvolvimento inicial (GPL‑3.0‑only) e passando por uma transição arquitetural de uma abordagem baseada em agregados para regras de direção ao estilo Reynolds, testáveis independentemente. Existem duas implementações lado a lado: um pipeline padrão Legacy (sistemas de direção SoA dirigidos por agregados com boids em grade uniforme e renderizador interativo Raylib) e um caminho Canonical (andaime mais três regras de direção, ativado via --canonical). O contrato canônico de percepção/índice espacial e a aplicação do orçamento de força estão concluídos, mas a UX de instrumentação, os cenários comportamentais prescritos, a semântica multi‑grupo e os benchmarks canônicos ainda permanecem abertos. Capacidades demonstradas incluem layout de dados Structure‑of‑Arrays (SoA) para eficiência de cache; caminhos legacy e canonical com passo de tempo fixo e semente, cobrindo exatamente 500 ticks de hash cinemático ordenado; estruturas de dados de genoma de agente e API de mutação; parâmetros de simulação configuráveis com presets (balanced, strong‑separation, tight‑flocking, fast‑loose, slow‑cohesive); pipeline legacy de boids em grade uniforme e renderizador interativo Raylib; renderizador opcional canonical de grupo único com instrumentação de direção; e uma suíte de testes xUnit cujo subconjunto não‑de‑desempenho forma o portão de CI. Existe também uma suíte BenchmarkDotNet para medição de desempenho. O pipeline de sistemas reconstrói uma grade uniforme e então executa, a cada tick, os sistemas Sense, Behavior, Wander e Integrate. Princípios de desempenho incluem caminhos críticos conscientes de alocação, ausência de LINQ/delegates/boxing nos loops internos, loops for apertados com invariantes içados e chamadas diretas/estáticas em vez de despacho virtual. Metas de desempenho de 50 k‑100 k agentes a 60 FPS interativo e mais de 1 M headless são explicitamente declaradas como não atingidas; a medição de 50 k falha em cumprir o orçamento de 16,67 ms/tick por mais de uma ordem de magnitude, e o throughput canonical, FPS do renderizador e alocações por tick permanecem não medidos. O projeto também fornece demos autônomas em JavaScript para navegador: Boids Basic (algoritmo de Reynolds com ajuste de parâmetros em tempo real), Self‑Propelled Particles/Vicsek Model (transições de fase em matéria ativa com rastreamento de parâmetro de ordem), Ant Colony Optimization (busca de caminho baseada em estigmergia com trilhas de feromônio) e Particle Swarm Optimization (otimização global contínua com visualização de paisagem de fitness). Essas demos não requerem instalação e servem para iteração rápida, demonstrações, aprendizado e prototipagem. As fases do roadmap incluem interações/combate/metabolismo multi‑grupo (Fase 3), reprodução/evolução/deriva de traços (Fase 4), otimização SIMD/paralelização/NativeAOT (Fase 5) e presets de cenário adicionais/replay/métricas avançadas (Fase 6). O stack tecnológico compreende C# 12 sobre .NET 8.0, Raylib‑cs 7.0.2 para renderização, xUnit 2.9.3 para testes e BenchmarkDotNet 0.15.6 para benchmarking.