TERMINAL FIELD个人站
MAGI-PATTERN1184 字约 3 分钟

把生命游戏和兰顿蚂蚁装进 MAGI 的观测台

发布 2026-10-17细胞自动机canvas观测终端

2026-10-17 那天,站上第三个浏览器实验上线了:/pattern/, 一台模仿 MAGI 观测台样式的细胞自动机观测终端。跟前两个实验一样, 它完全跑在浏览器里,产物是一个自包含的单文件 HTML——不过这次是我自己写的。

为什么是细胞自动机

MAGI 在《新世纪福音战士》里的日常工作是「样式分析」:雷达上出现不明回波, MAGI 报出「模式青」(PATTERN BLUE),然后全站开始紧张。 细胞自动机正好是同一件事的数学版——用极简单的规则,观测图案如何从无中生有。

所以我干脆给三个节点各安排了一台自动机。节点的名字没有沿用 MAGI 的三贤人 (这是独立 app,不顶着 MAGI 的牌子),而是直接致敬三位自动机先驱:

节点 自动机 为什么是它
CONWAY-1(规则) 康威生命游戏 最经典的科研对象,规则、预设、参数都给它
LANGTON-2(行进) 兰顿蚂蚁 蚂蚁是货真价实的「建造者」——万步之后铺出高速公路
BRIAN-3(波场) 布莱恩大脑 三态波前,像一场永不落幕的神经放电

三个节点各持独立的观测域:你在 CONWAY-1 里画的东西,切到 BRIAN-3 再切回来还在。 切换用卡片点击或键盘 1/2/3。

每个节点能玩什么

CONWAY-1 内置五种规则:生命游戏 B3/S23、HighLife、Seeds、Day & Night、Maze, 外加六个坐标经过独立脚本验证的预设(滑翔机炮、R-五连块、脉冲星、轻量飞船、橡子、滑翔机)。 画布可以拖拽绘制、右键擦除。

LANGTON-2 支持任意 L/R 规则串(2–12 态),从经典的 RL 到铺满平面的 RRLLLRLLLRRR 都能跑;点画布投放蚂蚁,上限 16 只。 不同状态用橙→绿的色阶区分,蚂蚁本体是一枚发光的小三角。

BRIAN-3 是布莱恩大脑:静默 → 激发 → 不应期,静默格恰有两个激发邻居时被点燃。 它是最不适合「干预」的一个——播一次种,然后看波前自己生长、碰撞、熄灭。

两个值得一提的实现细节

周期检测。 系统日志里时不时会蹦出一句「检测到周期性样式 · P = n」。 做法很朴素:每一代对整个网格算一个 FNV-1a 滚动哈希,塞进哈希表; 一旦某个哈希再次出现,当前世代 − 首次出现的世代 就是周期。 第一版有个 bug:哈希表里每次覆盖为最新世代,于是重复间隔永远恰好等于周期, 间隔 > 3 的判定对 P=3 的脉冲星永远不成立——改成保留最早世代就好了。 静止样式会报 P = 1,检测到一次后冷却 180 代,免得刷屏。

环面与渲染。 画布是环面(上下左右回绕),所以滑翔机飞出右缘会从左缘回来。 渲染走脏格子路线:每代只重画发生变化的格子(滑翔机炮每代通常只动十几个格子), 全量重绘只发生在切换节点、改格宽和改窗口尺寸的时候。 改窗口尺寸时按旧内容的包围盒重新居中,横竖怎么拉都不会把图案弄丢。

来源声明

这台终端是本站原创代码,视觉上致敬 MAGI 决策系统(SEELE0/EVA-Magi-AI 的二创)的美学: 暖黑底、橙色、三角几何、steps() 启动动画。启动序列约四秒半,点击任意处跳过; 开了「减少动态效果」的浏览器会直接跳过。但它是独立的作品——命名、代码与图形 都不含 MAGI/EVA 的素材,节点名来自 Conway、Langton 和 Brian 三位先驱。

MAGI 是《新世纪福音战士》的非商业粉丝二创;EVA 相关的名称与素材著作权 归原权利人所有,与 Khara 及任何相关权利方无关。


打开 /pattern/,等自检打完,滑翔机炮已经在打了。 试试给 CONWAY-1 换上 Seeds 规则,再切到 BRIAN-3 播一次种——三个节点的脾气完全不同。

BACK 回到文章列表