Loading repository data…
Loading repository data…
GutBla / repository
Simulador interactivo de ecosistema presa-depredador basado en el modelo de Lotka-Volterra, que permite visualizar y analizar la dinámica poblacional mediante ecuaciones diferenciales y simulación basada en agentes en tiempo real.
El Predator-Prey Ecosystem Simulator es una aplicación web interactiva que modela la dinámica de un ecosistema simplificado compuesto por dos especies: presas (conejos) y depredadores (linces). El sistema está basado en el modelo matemático de Lotka-Volterra, ampliamente utilizado en ecología para estudiar las interacciones entre especies.
El objetivo principal del proyecto es proporcionar una herramienta didáctica que permita visualizar y comprender cómo evolucionan las poblaciones a lo largo del tiempo en función de diferentes parámetros, como tasas de crecimiento, depredación y mortalidad.
El simulador permite al usuario experimentar modificando estos parámetros en tiempo real, observando fenómenos como:
Este proyecto está orientado a estudiantes y personas interesadas en áreas como matemática aplicada, ecología, simulación de sistemas dinámicos y programación.
Para ejecutar el simulador solo necesitas un navegador web moderno (Chrome, Firefox, Edge, Safari). No requiere instalación de servidores ni dependencias externas más allá de los recursos gráficos que acompañan al proyecto.
assets/ completa con todas las imágenes y sprites (debe estar presente en la misma ruta que los archivos HTML/JS).Sigue estos pasos para ejecutar el proyecto en tu entorno local:
Clona el repositorio:
git clone https://github.com/GutBla/PROJECT_Predator_Prey_Ecosystem_Simulator.git
Accede al directorio del proyecto:
cd PROJECT_Predator_Prey_Ecosystem_Simulator
Abre el archivo principal:
index.html
Ejecuta el proyecto:
index.htmlo Ábrelo con tu navegador web (recomendado: Chrome o Edge)Al abrir la aplicación se muestra una pantalla de inicio con tres opciones:
| Acción | Tecla / Interacción |
|---|---|
| Pausar / Reanudar | P o Espacio |
| Aumentar velocidad | + |
| Disminuir velocidad | - |
| Reiniciar simulación | R |
| Mostrar / Ocultar gráfico | G |
| Agregar depredador | Clic izquierdo en el canvas |
| Agregar presa | Clic derecho en el canvas |
| Regresar al menú principal | Desde pantalla de pausa o resumen |
Durante la ejecución, el panel izquierdo superior muestra el tiempo transcurrido (días), conteos actuales de presas, depredadores y porcentaje de pasto vivo, así como la velocidad actual. A la derecha aparece un gráfico en tiempo real que compara las poblaciones reales con las predichas por el modelo Lotka‑Volterra.
Si una especie se extingue, el simulador muestra un mensaje de advertencia y, tras un breve período, presenta una pantalla de resumen con dos gráficos:
Desde allí puedes reiniciar o volver al menú principal.
El comportamiento del sistema se basa en el modelo clásico de Lotka-Volterra, el cual describe la interacción entre dos poblaciones mediante un sistema de ecuaciones diferenciales no lineales de primer orden:
Presa:
$$ \frac{dP}{dt} = \alpha P - \beta P D $$
Depredador:
$$ \frac{dD}{dt} = \delta P D - \gamma D $$
Donde:
En este simulador, las ecuaciones se integran numéricamente en paralelo con la simulación basada en agentes para ofrecer una referencia teórica (representada como línea discontinua en la gráfica) y permitir al usuario comparar el comportamiento emergente real con el modelo idealizado.
El sistema presenta un punto de equilibrio no trivial, obtenido al igualar ambas ecuaciones a cero:
$$ P^* = \frac{\gamma}{\delta}, \qquad D^* = \frac{\alpha}{\beta} $$
Alrededor de este punto, el sistema tiende a exhibir órbitas cerradas, lo que implica un comportamiento oscilatorio periódico de ambas poblaciones. Esto se puede visualizar directamente en el espacio de fase generado al finalizar la simulación.
Algunas propiedades importantes del sistema:
Dado que el sistema no posee solución analítica general, se utiliza el método de Euler para aproximar las soluciones en tiempo discreto. La implementación en simulation.js aplica las siguientes iteraciones cada 10 ticks de simulación, con un paso de tiempo $\Delta t = 0.5$:
$$ P_{t+1} = P_t + (\alpha P_t - \beta P_t D_t),\Delta t $$
$$ D_{t+1} = D_t + (\delta P_t D_t - \gamma D_t),\Delta t $$
Ambos valores se restringen a $\geq 0$ para evitar poblaciones negativas. Los resultados acumulados se almacenan en el arreglo lvData y se grafican como línea discontinua superpuesta al comportamiento real de los agentes, permitiendo una comparación directa entre la teoría y la dinámica emergente.
Cada entidad del ecosistema (presa, depredador, pasto) opera de forma autónoma con las siguientes reglas:
Pasto:
Presas (conejos):
Depredadores (linces):
Este enfoque permite visualizar fenómenos emergentes como la formación de agrupaciones, el efecto de la distribución espacial y la influencia de la heterogeneidad del entorno, que el modelo continuo de Lotka-Volterra no puede capturar.
El simulador genera tres representaciones gráficas diferenciadas:
La combinación de dos enfoques complementarios permite analizar el sistema desde dos perspectivas:
| Perspectiva | Modelo | Características |
|---|---|---|
| Teórica | Ecuaciones diferenciales (Lotka-Volterra) | Comportamiento idealizado, continuo |
| Computacional | Simulación basada en agentes | Comportamiento emergente con interacción espacial y energía |
Esta dualidad facilita la comprensión de conceptos clave en cálculo y sistemas dinámicos: