Skip to content

liusonwood/ecosimulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EcoSim - 生态演替模拟器 (Ecological Succession Simulator)

EcoSim 是一个空间显式(Spatially Explicit)的植被动力学模拟系统,旨在通过数学模型模拟从地衣(Lichen)到成熟森林(Tree)的生态演替全过程。

🌍 项目概述

  • 核心目标: 模拟并可视化生态系统的演替序列(地衣 → 苔藓 → 草本 → 灌木 → 乔木)。
  • 技术栈:
    • 前端: Vue 3 (全局脚本版,非模块化) + Tailwind CSS (CDN)。
    • 计算引擎: 基于 GPU 优化的离散数学模型,使用预计算高斯核处理种子扩散。
    • 可视化: 使用 HTML5 Canvas (ImageData 像素级操作) 进行网格渲染,Chart.js 展示种群动态曲线。
  • 设计风格: 现代“磨砂玻璃”质感(Glassmorphism)UI 布局。

🧬 核心仿真逻辑

模型基于以下三个核心生态学过程:

  1. 种子扩散 (Dispersal):

    • 物种根据其生物量(盖度)产生种子。
    • 使用高斯核(Gaussian Kernel)模拟种子的空间传播。不同物种具有不同的扩散距离(λ)。
  2. 演替门槛 (Succession Barrier):

    • 模拟“土壤成熟”过程。高等植物(如乔木)无法在裸岩上萌发。
    • 只有当前格子的总生物量积累到一定比例(象征有机质和水分条件成熟)后,更高级别的物种才能成功萌发。
  3. 局部竞争 (Competition):

    • 采用 Lotka-Volterra 竞争模型。
    • 物种间存在不对称竞争:高等物种(乔木、灌木)通过遮荫等效应强烈抑制低等物种,而低等物种对高等物种的影响微乎其微。
    • 承载力 (K) 受环境异质性(土壤深度)和气候类型(雨林、草原、苔原等)的修正。

🚀 快速启动

该项目设计为本地零服务器运行,支持 file:// 协议。

  1. 准备库文件: 确保 ./lib/ 目录下包含以下文件:
    • vue.global.js
    • gpu-browser.min.js
    • chart.js
  2. 直接运行: 在现代浏览器中双击打开 index.html 即可启动模拟器。

🛠 交互与控制

  • 气候切换: 支持热带雨林、温带草原、寒带苔原、温带落叶林及荒漠五种模式,不同模式会动态调整物种的生长参数。
  • 演替速度: 通过“乌龟/兔子”滑块调节每帧执行的逻辑步数。
  • 人为干扰:
    • FIRE (火灾): 较大面积杀伤草本和灌木。
    • VOLCANO (火山): 毁灭性打击,清除所有生物量及种子库。
    • DROUGHT (干旱): 全局性限制,优先打击对水分敏感的物种。
  • 地图交互: 鼠标悬停在网格上可查看精确的物种盖度占比和土壤深度。

📂 文件结构

  • index.html: UI 结构、Vue 模板与样式定义。
  • main.js: EcoSimulator 核心类定义及 Vue 应用状态管理。
  • design/: 包含数学模型文档 (mathmodel.md)、UI 设计指南及参数 CSV 文件。
  • lib/: 存放本地引用的 JavaScript 库副本。
  • GEMINI.md: 供 AI 辅助开发使用的系统指令上下文。

🔑License

  • GNU AGPL-3.0

About

EcoSim 是一个空间显式的植被动力学模拟系统,旨在通过数学模型模拟从地衣到成熟森林的生态演替全过程。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors