五个亮格子能前进,却没有任何一个格子真的移动。
实验从空网格上的三个小图案开始:方块、闪烁器、滑翔机。每格遵循同一规则,只看周围八个邻居。一种保持静止,一种交替变化,一种以平移后的位置恢复原形。差别来自初始排列,而不是给不同格子不同指令。
规则只看局部,图案却能远行。
邻居决定下一步
每格只有活或死两种状态,邻域包括周围八格和对角线。活格少于两个活邻居则死亡,有两个或三个则保留,多于三个则死亡。死格恰有三个活邻居则出生,其他死格仍死。
出生、生存只是二元状态的比喻,模型没有生物、意图或资源。规则也写成B3/S23,即三邻居出生、二或三邻居生存。名字便于记忆,实际运算只是计数后决定状态。
先读旧世界,再写新世界
所有格子的下一状态必须从同一旧代计算。若改完一格,就让邻格读取新值,动力学会改变。因此脚本先从当前活格集合统计邻居,再另外建立下一代集合,整个网格同步前进。
实现用无界稀疏平面的整数坐标,只存活格,并检查可能出生的相邻位置。没有边缘环绕,也没有固定矩形在图案碰边时杀死它。图片裁出的是观察窗口,不是世界边界。
两种小图案可以亲手推理
填满的2×2方块一步后不变:每个活格有三个活邻居,附近死格没有哪个恰好有三个。脚本比较完整集合。更新确定性意味着相同状态总产生相同下一状态,所以它是静物,不是移动得很慢。
横排三格则不同:中心保留,两端死亡,上下各生一格,变成竖排;下一步又转横。测试确认周期为2,并确认中间状态不同。只看活格数量相同,不足以证明振荡。

滑翔机是被替换,不是被搬运
四次更新后,五格滑翔机恢复原形,但x、y各移动一格,按图中坐标即右下方。展示的每代都有五个活格,却不是同样五个个体在格子之间移动,而是固定位置不断亮灭。
脚本把最后集合与起始集合平移(1, 1)后的副本精确比较,比凭外观觉得相似更有力。这也说明,某个层次上的对象可以持续存在,同时另一层次的组成状态不断被替换。

演示也有边界
三个图案只确认同一规则下三种行为,不描述全部起点。有些排列会消失,有些相互作用,有些产生漫长复杂历史。改变出生规则、邻域或更新顺序,就变成另一种自动机,即使画面仍像一堆方格。
吸引力在于,规则一句话就能写完,后续却可能很难预测。这种差距不需要隐藏随机性,本实验完全没有随机。一旦初始集合与规则固定,未来就确定了。惊讶属于尚未逐步算出结果的观察者。
