ABM for Kids

把 NetLogo 里那些
"哇,原来是这样"的模型,
做成孩子愿意一直玩的东西。

这是一套现代界面的 Agent-Based Modeling(多主体模拟)小应用。 模型逻辑来自经典 NetLogo 模型库,界面、动效和叙事全部重做: 大按钮、能拖的滑块、实时的动画,还有"这说明什么"的儿童化解读。 纯静态网页,双击 HTML 就能跑,不需要安装 Conda / Java / NetLogo。

模型库

🐦

鸟群为什么一起飞?

三条小规则(别撞、跟着飞、别掉队)就能变出整片会流动的鸟群。拖滑块亲手制造一次"涌现"。

Flocking · 涌现
🏘️

消息几步传遍全村?

点一个小圆点,看消息一圈圈扩散。只要换掉几条线,全世界就突然"变近"了 —— 小世界网络。

Small Worlds · 网络
🐺

帮羊活下来

狼和羊的捕食游戏:调草地长多快、狼有多饿,看着种群数量一起一落。

开发中 · Wolf-Sheep
🏡

为什么大家住得越来越分开?

每个人都只想"邻居里有一半和我像"就够了 —— 结果整座城市分成了两半。Schelling 隔离模型。

开发中 · Schelling

怎么用它陪孩子玩

1. 先玩,别讲 让孩子自己去拖滑块,先玩出"咦?",再回答为什么。规则讲早了,乐趣就没了。
2. 一次只动一个旋钮 只改一条规则,其他不变,对比前后差别 —— 这本身就是科学方法的练习。
3. 让孩子预测再验证 "如果让鸟只能看见很近的邻居,它们还能一起飞吗?" 先猜,再拖滑块。
4. 观察"她愿不愿意再玩一次" 这是最真实的成功指标。愿意重玩 = 设计成立;不想碰 = 该换叙事而不是换技术。

技术说明(给大人)

纯前端 · 零依赖 HTML + CSS + 原生 Canvas 2D,没有第三方库,没有构建步骤,离线可用。
可移植 模型逻辑(agent / 规则 / 步进)与表现层分离,同一套逻辑后续可以平移到 Godot 4(GDScript)做游戏化版本,或做 Android 打包上 Rokid Max 头显。
模型来源 参数与规则对照 NetLogo 模型库:Flocking、Small Worlds(Watts–Strogatz)。 指标口径与 NetLogo 一致(平均最短路径 L、聚集系数 C)。
下一步 加 Wolf-Sheep 与 Schelling;把参数面板换成 NetTango 式积木; 做"任务关卡"(帮羊活过 200 步)把模拟变成游戏。