Sobre el proyecto

SwarmingLilMen es un motor experimental para sistemas multi-agente emergentes, actualmente basado en una simulación de enjambres/boids 2D construida desde principios básicos en C#/.NET 8.0. Enfatiza la emergencia sobre el scripting: unas pocas reglas de dirección simples y componibles producen patrones macro ricos. El proyecto se encuentra en una etapa temprana de desarrollo (GPL-3.0-only) y está atravesando una transición arquitectónica de un enfoque de sistemas impulsado por agregados hacia reglas de dirección estilo Reynolds que sean testeables independientemente. Existen dos implementaciones en paralelo: un pipeline Legacy predeterminado (sistemas de dirección SoA impulsados por agregados con boids de cuadrícula uniforme y renderizador interactivo Raylib) y una ruta Canonical (andamiaje más tres reglas de dirección, habilitadas mediante --canonical). El contrato de percepción/índice espacial y la aplicación del presupuesto de fuerza de la ruta canonical están completados, pero la UX de instrumentación, los escenarios de comportamiento prescritos, la semántica de grupos múltiples y los benchmarks canonical permanecen abiertos. Las capacidades evidenciadas incluyen la disposición de datos Structure-of-Arrays (SoA) para eficiencia de caché; rutas legacy y canonical con semilla y paso de tiempo fijo con una cobertura exacta de 500 ticks de hash-cinemático-ordenado; estructuras de datos de genoma de agente y API de mutación; parámetros de simulación configurables con ajustes preestablecidos (balanced, strong-separation, tight-flocking, fast-loose, slow-cohesive); pipeline de boids de cuadrícula uniforme legacy y renderizador interactivo Raylib; renderizador de grupo único canonical opcional con instrumentación de dirección; y una suite de pruebas xUnit cuyo subconjunto no relacionado con el rendimiento constituye la puerta de CI. Existe una suite BenchmarkDotNet para la medición del rendimiento. El pipeline de sistemas reconstruye una cuadrícula uniforme y luego ejecuta los sistemas Sense, Behavior, Wander e Integrate en cada tick. Los principios de rendimiento incluyen rutas críticas conscientes de la asignación, sin LINQ/delegados/boxing en los bucles internos, bucles for ajustados con invariantes elevados y llamadas directas/estáticas sobre el despacho virtual. Los objetivos de rendimiento de 50k-100k agentes a 60 FPS interactivos y más de 1M headless se declaran explícitamente como metas no alcanzadas; la medición de 50k falla el presupuesto de 16.67 ms/tick por más de un orden de magnitud, y el rendimiento canonical, los FPS del renderizador y las asignaciones por tick no han sido medidos. El proyecto también incluye demos independientes para navegador en JavaScript: Boids Basic (algoritmo de Reynolds con ajuste de parámetros en tiempo real), Self-Propelled Particles/Vicsek Model (transiciones de fase en materia activa con seguimiento de parámetros de orden), Ant Colony Optimization (búsqueda de rutas basada en estigmergia con rastros de feromonas) y Particle Swarm Optimization (optimización global continua con visualización del paisaje de aptitud). Estas demos no requieren instalación y sirven para la iteración rápida, demostraciones, aprendizaje y prototipado. Las fases de la hoja de ruta incluyen interacciones de grupos múltiples/combate/metabolismo (Fase 3), reproducción/evolución/deriva de rasgos (Fase 4), optimización SIMD/paralelización/NativeAOT (Fase 5) y ajustes de escenarios adicionales/repetición/métricas avanzadas (Fase 6). El stack tecnológico comprende C# 12 en .NET 8.0, Raylib-cs 7.0.2 para el renderizado, xUnit 2.9.3 para pruebas y BenchmarkDotNet 0.15.6 para benchmarking.