EcoSim 是一个空间显式(Spatially Explicit)的植被动力学模拟系统,旨在通过数学模型模拟从地衣(Lichen)到成熟森林(Tree),乃至农田生态系统的全过程。
- 核心目标:模拟并可视化生态系统的演替序列(地衣 → 苔藓 → 草本 → 灌木 → 乔木 → 农作物)。
- 作者:由 liusonwood 和 yanyi-lin 最初制作。
- 项目地址:https://github.com/liusonwood/ecosimulator
- 技术栈:
- 前端:Vue 3 (全局脚本版) + Tailwind CSS + Lucide Icons。
- 计算引擎:采用三级自动降级机制:GPU (GPU.js) > 多线程 (Blob Inlined Workers) > 串行 CPU。
- 零依赖运行:逻辑完全封装在
main.js中,无需本地服务器,支持file://协议双击运行。
模型基于以下四个核心生态学过程:
-
种子传播与种子库 (Dispersal & Seed Bank):
- 局部传播:物种根据生物量产生种子,通过高斯核(Gaussian Kernel)模拟空间扩散。
- 背景种子雨:模拟远距离随机落入的种子,确保即使局部灭绝也能重新复苏。
- 种子生存:未萌发种子的年存活率(s)和库萌发率(ν)动态平衡。
-
空间异质性与土壤逻辑 (Soil Dynamics):
- 保证比例分布:采用平滑势场分位数映射算法。系统生成连续的地貌势场并自动排序,严格确保网格中存在 30% 浅土、40% 中性土和 30% 深土。
- 自然斑块:通过 3 轮均值模糊处理,使不同深度的土壤形成自然的地理斑块,而非随机噪声。
- 演替门槛:高等植物的萌发受总生物量门槛限制,模拟有机质积累过程。
-
非对称竞争 (Asymmetric Competition):
- 基于 Lotka-Volterra 竞争模型。
- 模拟层级压制:高层物种对底层物种有极强的抑制作用,而底层物种对高层的反馈影响较小。
-
气候模式与农场特色:
- 动态环境:支持热带雨林、温带草原、寒带苔原、荒漠等多种模式。
- 农场模式:特殊的人为干预状态,中心预置农作物,边界存在自然入侵带。
- 高效并行:Worker 逻辑已通过 Blob 方式内联,在保证多线程性能的同时维持了单文件的便携性。
- 调试接口:控制台输入
setMode('GPU'|'Worker'|'Serial'|'Auto')可手动切换引擎。 - 实时监控:集成 Chart.js 实时绘制各种群盖度的动态演变曲线。
- FIRE (火灾):优先杀伤草本和灌木,清空部分种子库。
- VOLCANO (火山):区域性毁灭打击,重置为裸岩状态。
- DROUGHT (干旱):全局性生长抑制。
- 手动干扰:鼠标点击网格可触发局部火灾,悬停可查看该点的土壤深度及物种盖度。
本项目遵循 GNU AGPL-3.0 开源协议。在任何衍生作品中,请保留原作者署名及项目链接。